📄 phonebook.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 + -