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

📄 uinput.pas

📁 一个把具有名片功能的通讯录
💻 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 + -