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

📄 input.pas

📁 软件类别: 数据库 软件大小: 1.24M 运行环境: DELPHI 精巧的DELPHI通讯录程序
💻 PAS
字号:
unit Input;
{输入界面,用ShowInputFrm调用,包括增加及修改资料}

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DBCtrls, Mask, ExtCtrls,TinyDB;

type
  TFrmInput = 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;
    CmdOK: TButton;
    CmdExit: TButton;
    ComboBox1: TComboBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Memo1: TMemo;
    Memo2: TMemo;
    procedure CmdExitClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure CmdOKClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmInput: TFrmInput;
  TTAb:TTinyTable;
  SName:string;
  TPList:Tstringlist;
  TmpType:string;      //用来判断是否修改过了通信录类型用的临时变量
  TmpModify:boolean;   //用来判断是否新增或更新过类型、姓名资料;

function ShowInputFrm(Title:string;ModifyName:string):boolean;

implementation

uses Main;

{$R *.dfm}

function ShowInputFrm(Title:string;ModifyName:string):boolean;
//根据Title来判断是新录入数据还是修改数据
var
  Frm:TFrmInput;
begin
  Frm:=TFrmInput.Create(Application);
  Frm.Caption:=Title;
  SName:=Trim(ModifyName);
  Result:=Frm.ShowModal=mrOk;
  Frm.Free;
end;

procedure TFrmInput.CmdExitClick(Sender: TObject);
begin
  Close;
end;

procedure TFrmInput.FormCreate(Sender: TObject);
begin
  TPList:=Tstringlist.Create;
  TmpModify:=False;
  TTAB:=TTinyTable.Create(self);
  FrmMain.DBOpen_AdTypes(TTAB);
  while not TTAB.Eof do
    begin
      TPList.Append(TTAB.FieldValues['TypeName']);
      TTAB.Next;
    end;
  FrmMain.DBOpen_ADBK(TTAB);
end;

procedure TFrmInput.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 TFrmInput.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 TFrmInput.CmdOKClick(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  }
         CmdExitClick(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 TFrmInput.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 + -