📄 uinput.pas
字号:
unit uInput;
{输入界面,用ShowInputFrm调用,包括增加及修改资料}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, Mask, ExtCtrls,TinyDB;
type
TInputFrm = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
OKBtn: TButton;
CancelBtn: TButton;
ComboBox1: TComboBox;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Memo1: TMemo;
Memo2: TMemo;
procedure CancelBtnClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure OKBtnClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
InputFrm: TInputFrm;
TTAb: TTinyTable;
SName: string;
TPList: TStringList;
TmpType: string; //用来判断是否修改过了通信录类型用的临时变量
TmpModify: Boolean; //用来判断是否新增或更新过类型、姓名资料;
function ShowInputFrm(Title, ModifyName: string): Boolean;
implementation
uses uInfoCard;
{$R *.dfm}
{根据Title来判断是新录入数据还是修改数据}
function ShowInputFrm(Title, ModifyName: string): Boolean;
var
Frm: TInputFrm;
begin
Frm := TInputFrm.Create(Application);
Frm.Caption := Title;
SName := Trim(ModifyName);
Result := Frm.ShowModal = mrOk;
Frm.Free;
end;
procedure TInputFrm.CancelBtnClick(Sender: TObject);
begin
Close;
end;
procedure TInputFrm.FormCreate(Sender: TObject);
begin
TPList := TStringList.Create;
TmpModify := False;
TTAB := TTinyTable.Create(Self);
InfoCardFrm.OpenDBAdTypes(TTAB);
while not TTAB.Eof do
begin
TPList.Append(TTAB.FieldValues['TypeName']);
TTAB.Next;
end;
InfoCardFrm.OpenDBInfoCard(TTAB);
end;
procedure TInputFrm.FormActivate(Sender: TObject);
var
I: Integer;
begin
ComboBox1.Items.Clear;
for I := 0 to TPList.Count - 1 do
Combobox1.Items.Add(TPList[i]);
ComboBox1.ItemIndex := 0;
if Length(SName) <> 0 then //即提供姓名,为修改模式
begin
TTAB.Locate('Name',SName,[]);
for i:=0 to ComboBox1.Items.Count-1 do
if Trim(ComboBox1.Items.Strings[i]) = Trim(TTAB.FieldValues ['ADType'])
then ComboBox1.ItemIndex := I;
TmpType := Trim(TTAB.FieldValues['ADType']); //临时变量--通信录类型
Edit1.Text := TTAB.FieldValues['Name'];
Edit2.Text := TTAB.FieldValues['Mobile'];
Edit3.Text := TTAB.FieldValues['Email'];
Edit4.Text := TTAB.FieldValues['QQ'];
Edit5.Text := TTAB.FieldValues['OffTel'];
Edit6.Text := TTAB.FieldValues['HomeTel'];
Edit7.Text := TTAB.FieldValues['Fax'];
Edit8.Text := TTAB.FieldValues['ZipCode'];
Memo1.Lines.Text := TTAB.FieldValues['ContAdd'];
Memo2.Lines.Text := TTAB.FieldValues['Memo'];
end;
end;
procedure TInputFrm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #13) and
((ActiveControl is TEdit) or
(ActiveControl is TComboBox) or
(ActiveControl is TMemo)) then
begin
Key := #0;
SendMessage(Handle, WM_NEXTDLGCTL, 0, 0);
end;
end;
procedure TInputFrm.OKBtnClick(Sender: TObject);
begin
if Length(SName) <> 0 then //修改模式
if Length(Trim(Edit1.Text)) <> 0 then //姓名不为空
with TTAB do
try
Edit;
FieldValues['ADType'] := Trim(ComboBox1.Text);
FieldValues['Name'] := Trim(Edit1.Text);
FieldValues['Mobile'] := Trim(Edit2.Text);
FieldValues['Email'] := Trim(Edit3.Text);
FieldValues['QQ'] := Trim(Edit4.Text);
FieldValues['OffTel'] := Trim(Edit5.Text);
FieldValues['HomeTel'] := Trim(Edit6.Text);
FieldValues['Fax'] := Trim(Edit7.Text);
FieldValues['ZipCode'] := Trim(Edit8.Text);
FieldValues['ContAdd'] := Trim(Memo1.Text);
FieldValues['Memo'] := Trim(Memo2.Text);
Post;
showmessage('修改 ['+Trim(Edit1.Text)+'] 资料成功!');
if (Trim(Edit1.Text)=SName) and
(Trim(ComboBox1.Text)=TmpType) then
TmpModify:=False else TmpModify:=true;
{ 假如没修改过姓名或类型,无需刷新FrmMain下的Treeview
如TmpModify:=true,ModalResult:=mrOk
当ModalResult=mrOk时,ShowInputFrm函数返回True
根据返回的Boolean值,返回True表示要刷新TreeView }
CancelBtnClick(Sender);
except
showmessage('数据库写入资料不成功,请检查!');
end
else //姓名为空
showmessage('没名字?不可以的哦!');
if Length(SName)=0 then //新增模式
if Length(Trim(Edit1.Text))<>0 then
try
TTAB.AppendRecord([Trim(ComboBox1.Text),
Trim(Edit1.Text),
Trim(Edit2.Text),
Trim(Edit3.Text),
Trim(Edit4.Text),
Trim(Edit5.Text),
Trim(Edit6.Text),
Trim(Edit7.Text),
Trim(Edit8.Text),
Trim(Memo1.Text),
Trim(Memo2.Text)]);
ShowMessage('新增 ['+Trim(Edit1.Text)+'] 资料成功!');
TmpModify:=True;
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
Edit6.Clear;
Edit7.Clear;
Edit8.Clear;
Memo1.Clear;
Memo2.Clear;
ComboBox1.SetFocus;
except
ShowMessage('数据库写入资料不成功,请检查!');
end
else ShowMessage('没名字?不可以的哦!');
end;
procedure TInputFrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
TPList.Free;
TTAB.Close;
TTAB.Free;
if TmpModify then ModalResult := mrOk
else ModalResult := mrCancel;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -