⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 phonebook.pas

📁 是一个手机功能的模拟程序
💻 PAS
字号:
unit phonebook;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, 
  Buttons, ExtCtrls, Dialogs,global;

type
  TForm_Phonebook = class(TForm)
    OKBtn: TButton;
    CancelBtn: TButton;
    Bevel1: TBevel;
    Edit_SN: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit_Name: TEdit;
    Label3: TLabel;
    Edit_phNo: TEdit;
    Label4: TLabel;
    Edit_hoNo: TEdit;
    Label5: TLabel;
    Edit_ofNo: TEdit;
    Label6: TLabel;
    Edit_Memo: TMemo;
    Timer_phb: TTimer;
    GroupBox_phblocation: TGroupBox;
    RadioButton_PHB_PC: TRadioButton;
    RadioButton_PHB_NVM: TRadioButton;
    RadioButton_PHB_SIM: TRadioButton;
    RadioButton_PHB_Del: TRadioButton;
    RadioButton_phb_sendsms: TRadioButton;
    Label_memo: TLabel;
    ComboBox_group: TComboBox;
    Label7: TLabel;
    procedure FormActivate(Sender: TObject);
    procedure Edit_phNoKeyPress(Sender: TObject; var Key: Char);
    procedure Edit_phNoChange(Sender: TObject);
    procedure Edit_ofNoExit(Sender: TObject);
    procedure Edit_NameChange(Sender: TObject);
    procedure Timer_phbTimer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure RadioButton_PHB_PCClick(Sender: TObject);
    procedure RadioButton_PHB_NVMClick(Sender: TObject);
    procedure RadioButton_PHB_SIMClick(Sender: TObject);
    procedure Edit_MemoChange(Sender: TObject);
  private
    { Private declarations }
  public
    phonenum:string;
    phonename:string;
    { Public declarations }
  end;


var
  Form_Phonebook: TForm_Phonebook;

implementation

uses main;
{$R *.dfm}

procedure TForm_Phonebook.FormActivate(Sender: TObject);
var temptext:string;
begin
//  RadioButton_PHB_PC.Enabled:=false;
//  RadioButton_PHB_NVM.Enabled:=false;
//  RadioButton_PHB_SIM.Enabled:=false;
  RadioButton_PHB_SIM.Checked:=true;
  RadioButton_PHB_SIM.Checked:=false;


  if form_main.ListView_phonebook_main.Selected<>nil then
  begin
    temptext:= form_main.ListView_phonebook_main.Selected.Caption;
    if temptext='PC' then
    begin
      RadioButton_PHB_PC.Enabled:=true;
      RadioButton_PHB_PC.Checked:=true;
      ComboBox_group.ItemIndex:=0;
    end else
      if temptext='手机' then
      begin
        RadioButton_PHB_NVM.Enabled:=true;
        RadioButton_PHB_NVM.Checked:=true;
        ComboBox_group.ItemIndex:=strtoint(form_main.ListView_phonebook_main.Selected.SubItems[6]);
      end else
        if temptext='SIM' then
        begin
          RadioButton_PHB_SIM.Enabled:=true;
          RadioButton_PHB_SIM.Checked:=true;
          ComboBox_group.ItemIndex:=0;
        end;
    RadioButton_PHB_Del.Enabled:=true;
    RadioButton_phb_sendsms.Enabled:=true;
    edit_SN.Text:=form_main.ListView_phonebook_main.Selected.SubItems[0];
    edit_Name.Text:=form_main.ListView_phonebook_main.Selected.SubItems[1];
    edit_phNo.Text:=form_main.ListView_phonebook_main.Selected.SubItems[2];
    edit_HoNo.Text:=form_main.ListView_phonebook_main.Selected.SubItems[3];
    edit_OfNo.Text:=form_main.ListView_phonebook_main.Selected.SubItems[4];
    edit_memo.Text:=form_main.ListView_phonebook_main.Selected.SubItems[5];
  end else
  begin
    RadioButton_PHB_PC.Enabled:=true;
    RadioButton_PHB_NVM.Enabled:=true;
    RadioButton_PHB_SIM.Enabled:=true;
    RadioButton_PHB_Del.Enabled:=false;
    RadioButton_phb_sendsms.Enabled:=false;
    edit_sn.Text:=format('%.3d',[0]);
    edit_Name.Text:='';
    edit_phNo.Text:='';
    edit_HoNo.Text:='';
    edit_OfNo.Text:='';
    edit_memo.Text:='';
    ComboBox_group.ItemIndex:=0;
    if trim(phonenum)<>'' then
    begin
      edit_Name.Text:=phonename;
      edit_phNo.Text:=phonenum;
      phonenum:='';
      phonename:='';
    end;
  end;
  Timer_phb.Enabled:=true;
end;

procedure TForm_Phonebook.Edit_phNoKeyPress(Sender: TObject;
  var Key: Char);
begin
  if not(key in NumberSet) then key:=#0;
end;

procedure TForm_Phonebook.Edit_phNoChange(Sender: TObject);
var i:integer;
    temptext:string;
begin
  temptext:=(sender as TEdit).Text;
  for i:=1 to length(temptext) do
  begin
    if not(temptext[i] in NumberSet) then
    begin
      showmessage('输入有不合法字符');
      (sender as TEdit).SetFocus;
      (sender as TEdit).SelStart:=i-1;
      (sender as TEdit).SelLength:=length(temptext)-(i-1);
//      (sender as TEdit).SelText:='';
      break;
    end;
  end;
end;

procedure TForm_Phonebook.Edit_ofNoExit(Sender: TObject);
var i:integer;
    temptext:string;
begin
  temptext:=(sender as TEdit).Text;
  for i:=1 to length(temptext) do
  begin
    if not(temptext[i] in NumberSet) then
    begin
      showmessage('输入有不合法字符');
      (sender as TEdit).SetFocus;
      (sender as TEdit).SelStart:=i-1;
      (sender as TEdit).SelLength:=length(temptext)-(i-1);
//      (sender as TEdit).SelText:='';
      break;
    end;
  end;
end;

procedure TForm_Phonebook.Edit_NameChange(Sender: TObject);
var i:integer;
    isdoublebyte:boolean;
    s:string;
begin
  isdoublebyte:=false;
  for i:=1 to length(Edit_name.Text) do
  begin
    if ByteType(Edit_name.text,i)<>mbSingleByte	 then
    begin
      isdoublebyte:=true;
      break;
    end;
  end;
    s:=Edit_name.text;
  if isdoublebyte then
  begin
    Edit_name.Text:=copy(s,1,12);
    Edit_name.MaxLength:=12;
  end else
  begin
     Edit_name.Text:=copy(s,1,13);
     Edit_name.MaxLength:=13;
  end;
end;

procedure TForm_Phonebook.Timer_phbTimer(Sender: TObject);
begin
  if (trim(Edit_Name.text)<>'')and(trim(Edit_phNo.text)<>'')
    and (RadioButton_PHB_PC.Checked or RadioButton_PHB_NVM.Checked or RadioButton_PHB_SIM.Checked
         or RadioButton_PHB_Del.Checked or RadioButton_phb_sendsms.Checked) then
  begin
    OKBtn.Enabled:=true
  end else
    OKBtn.Enabled:=false;
end;

procedure TForm_Phonebook.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Timer_phb.Enabled:=false;
  OKBtn.Enabled:=false;
end;

procedure TForm_Phonebook.RadioButton_PHB_PCClick(Sender: TObject);
begin
  edit_HoNo.Visible:=true;
  edit_OfNo.Visible:=true;
  Edit_memo.Visible:=true;
  label4.Visible:=true;
  label5.Visible:=true;
  label6.Visible:=true;
  Label_memo.Visible:=true;
  label7.Visible:=false;
  ComboBox_group.ItemIndex:=0;
  ComboBox_group.Visible:=false;
  edit_sn.Text:=format('%.3d',[0]);
end;

procedure TForm_Phonebook.RadioButton_PHB_NVMClick(Sender: TObject);
begin
  edit_HoNo.Visible:=true;
  edit_OfNo.Visible:=true;
  Edit_memo.Visible:=true;
  label4.Visible:=true;
  label5.Visible:=true;
  label6.Visible:=true;
  Label_memo.Visible:=true;
  label7.Visible:=true;
  ComboBox_group.ItemIndex:=0;
  ComboBox_group.Visible:=true;
  edit_sn.Text:=format('%.3d',[0]);
end;

procedure TForm_Phonebook.RadioButton_PHB_SIMClick(Sender: TObject);
begin
  label4.Visible:=false;
  label5.Visible:=false;
  label6.Visible:=false;
  edit_HoNo.Visible:=false;
  edit_OfNo.Visible:=false;
  Edit_memo.Visible:=false;
  Label_memo.Visible:=false;
  label7.Visible:=false;
  ComboBox_group.ItemIndex:=01;
  ComboBox_group.Visible:=false;
  edit_sn.Text:=format('%.3d',[0]);
end;

procedure TForm_Phonebook.Edit_MemoChange(Sender: TObject);
var i:integer;
    ts,ts1:string;
    singlebytecount:integer;
    doublebytecount:integer;
    isdoublebyte:boolean;
begin
  ts:=edit_memo.Text;
  singlebytecount:=0;
  doublebytecount:=0;
  isdoublebyte:=false;
  for i:=1 to length(ts) do
  begin
    if ByteType(ts,i)=mbSingleByte then inc(singlebytecount)
    else isdoublebyte:=true;
  end;
  if isdoublebyte then
  begin
    doublebytecount:=(length(ts)-singlebytecount)div 2;
    if doublebytecount+singlebytecount>PHB_MaxUnicode then
    begin
      ts1:=copy(ts,1,PHB_MaxUnicode*2-singlebytecount);
      edit_memo.Text:=ts1;
      edit_memo.MaxLength:=PHB_MaxUnicode*2;
      Label_memo.Caption:='(还可输入0个双字节字符)';
    end else
    begin
      edit_memo.MaxLength:=PHB_MaxUnicode*2-singlebytecount;
      Label_memo.Caption:='(还可输入'+inttostr(PHB_MaxUnicode-doublebytecount-singlebytecount)+'个双字节字符)';
    end;
  end else
  begin
    Label_memo.Caption:='(还可输入'+inttostr(PHB_MaxASC-singlebytecount)+'个单字节字符)';
    edit_memo.MaxLength:=PHB_MaxASC;
  end;  
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -