📄 setmess.pas
字号:
unit SetMess;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
QDialogs, StdCtrls, ExtCtrls;
type
TSetupf = class(TForm)
GroupBox1: TGroupBox;
NameCheck: TCheckBox;
BirthdayCheck: TCheckBox;
MoveTelCheck: TCheckBox;
HomeTelCheck: TCheckBox;
OfficeTelCheck: TCheckBox;
FaxCheck: TCheckBox;
CompanyCheck: TCheckBox;
PostcodeCheck: TCheckBox;
AddressCheck: TCheckBox;
EmailCheck: TCheckBox;
WebCheck: TCheckBox;
Panel1: TPanel;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
AddBtn: TButton;
GroupBox2: TGroupBox;
ListBox: TListBox;
NewFieldEdit: TEdit;
DelBtn: TButton;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure ListBoxClick(Sender: TObject);
procedure AddBtnClick(Sender: TObject);
procedure DelBtnClick(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
FieldList:TStringList;
TabOrderIndex:Byte;
CheckBoxX,CheckboxY:Word;
CheckBoxs:Array of TCheckBox;
public
{ Public declarations }
end;
var
Setupf: TSetupf;
implementation
uses Note;
{$R *.dfm}
procedure TSetupf.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Release;
end;
procedure TSetupf.ListBoxClick(Sender: TObject);
begin
if ListBox.Selected[ListBox.ItemIndex] then DelBtn.Enabled:=True
else DelBtn.Enabled:=False;
end;
procedure TSetupf.AddBtnClick(Sender: TObject);
begin
if NewFieldEdit.Text<>'' then
begin
ListBox.Items.Append(NewFieldEdit.Text);
Inc(FieldCount);
Setlength(CheckBoxs,FieldCount);
CheckBoxs[FieldCount-1]:=TCheckBox.Create(Setupf);
CheckBoxs[FieldCount-1].Font:=NameCheck.Font;
CheckBoxs[FieldCount-1].Parent:=GroupBox1;
// CheckBoxs[i].Width:=NameEdit.Width;
CheckBoxs[FieldCount-1].Left:=CheckBoxX;
CheckBoxs[FieldCount-1].Top:=CheckBoxY;
CheckBoxs[FieldCount-1].Caption :=NewFieldEdit.Text ;
CheckBoxs[FieldCount-1].TabOrder:=TabOrderIndex;
Inc(TabOrderIndex);
Inc(CheckBoxX,99);
if CheckBoxX>322 then
begin
Inc(CheckBoxY,26);
CheckBoxX:=25;
Height:=Height+26;
GroupBox1.Height:=GroupBox1.Height+26;
end;
NewFieldEdit.Clear;
NewFieldEdit.SetFocus;
end;
end;
procedure TSetupf.DelBtnClick(Sender: TObject);
begin
if MessageDlg('警告','您确实要删除段的所有内容吗?',mtWarning,[mbYes,mbNo],0,mbNo,nil)=3 then
ListBox.Items.Delete(ListBox.ItemIndex);
end;
procedure TSetupf.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#27 then
Close;
end;
procedure TSetupf.Button1Click(Sender: TObject);
var
i:Byte;
j:Integer;
begin
i:=ListBox.Items.Count;
FileSeek(CfgFile,50,0);
FileWrite(CfgFile,i,1);
SetLength(Fields,i);
for j:=0 to CustomCount-1 do
begin
if j<ListBox.Items.Count then
begin
FieldName:=ListBox.Items.Strings[j];
Fields[j]:=FieldName;
end
else FieldName:='';
FileWrite(CfgFile,FieldName,20);
end;
if (i>FieldCount)and(FieldCount=0) then
begin
for j:=0 to MainForm.ListView.Items.Count-1 do
begin
for i:=0 to CustomCount-1 do
FieldText[i]:='';
FileSeek(CfgFile,1000+1000*j,0);
FileWrite(CfgFile,FieldText,1000);
end;
end
else begin
for j:=0 to MainForm.ListView.Items.Count-1 do
begin
FileSeek(CfgFile,1000+1000*j,0);
FileRead(CfgFile,FieldText,1000);
for i:=0 to CustomCount-1 do
begin
if FieldList.IndexOf(Fields[i])>=0 then
FieldText[i]:=FieldText[FieldList.IndexOf(Fields[i])]
else FieldText[i]:='';
end;
FileSeek(CfgFile,-1000,1);
FileWrite(CfgFile,FieldText,1000);
end;
end;
FieldCount:=ListBox.Items.Count;
for j:=0 to ComponentCount-1 do
if Components[j] is TCheckBox then
begin
if TCheckBox(Components[j]).Checked then
FieldShow[TCheckBox(Components[j]).TabOrder]:=0
else FieldShow[TCheckBox(Components[j]).TabOrder]:=1;
end;
FileSeek(Cfgfile,900,0);
FileWrite(CfgFile,FieldShow,11+CustomCount);
Close;
MainForm.SetListViewColume;
MainForm.ListViewLoadData(False,0);
end;
procedure TSetupf.FormShow(Sender: TObject);
var
i:Integer;
begin
ListBox.Clear ;
FieldList:=TStringList.Create;
FieldList.Clear ;
for i:=0 to FieldCount-1 do
begin
ListBox.Items.Add(Fields[i]);
FieldList.Add(Fields[i]);
end;
DelBtn.Enabled:=False;
for i:=0 to ComponentCount-1 do
if Components[i] is TCheckBox then
if FieldShow[TCheckBox(Components[i]).TabOrder]=0 then
TCheckBox(Components[i]).Checked:=True
else TCheckBox(Components[i]).Checked:=False;
end;
procedure TSetupf.FormCreate(Sender: TObject);
var
i:Byte;
begin
CheckBoxY:=75;
CheckBoxX:=321;
TabOrderIndex:=11;
if FieldCount>0 then
begin
SetLength(CheckBoxs,FieldCount);
for i:=0 to FieldCount-1 do
begin
CheckBoxs[i]:=TCheckBox.Create(Setupf);
CheckBoxs[i].Font:=NameCheck.Font;
CheckBoxs[i].Parent:=GroupBox1;
// CheckBoxs[i].Width:=NameEdit.Width;
CheckBoxs[i].Left:=CheckBoxX;
CheckBoxs[i].Top:=CheckBoxY;
CheckBoxs[i].Caption :=Fields[i];
CheckBoxs[i].TabOrder:=TabOrderIndex;
Inc(TabOrderIndex);
if (i mod 4=0)or((i=FieldCount-1)and(i mod 4=1)) then
begin
Inc(CheckBoxY,26);
CheckBoxX:=25;
end
else Inc(CheckBoxX,99);
end;
end;
i:=(FieldCount-1) div 4;
if (FieldCount-1) mod 4>0 then Inc(i);
Height:=Height+26*i;
GroupBox1.Height:=GroupBox1.Height+26*i;
end;
procedure TSetupf.Button2Click(Sender: TObject);
begin
FieldCount:=FieldList.Count;
end;
procedure TSetupf.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FieldList.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -