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

📄 newuser.pas

📁 一个由Tlistview写的通讯录
💻 PAS
字号:
unit NewUser;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  QDialogs, StdCtrls, ExtCtrls;

type
  TNewUserf = class(TForm)
    Image1: TImage;
    Label1: TLabel;
    Bevel1: TBevel;
    Label2: TLabel;
    NameEdit: TEdit;
    Label3: TLabel;
    MoveTelEdit: TEdit;
    Label4: TLabel;
    OfficeEdit: TEdit;
    Label5: TLabel;
    CompanyEdit: TEdit;
    Label11: TLabel;
    BirthdayEdit: TEdit;
    Label12: TLabel;
    HomeTelEdit: TEdit;
    Label13: TLabel;
    FaxEdit: TEdit;
    PostCodeEdit: TEdit;
    Label15: TLabel;
    Panel1: TPanel;
    Label6: TLabel;
    Label7: TLabel;
    Label14: TLabel;
    WebEdit: TEdit;
    EmailEdit: TEdit;
    Button1: TButton;
    Button2: TButton;
    AddressEdit: TComboBox;
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure NameEditChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure NameEditKeyPress(Sender: TObject; var Key: Char);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    Labels:Array of TLabel;
    Edits:Array of TEdit;
    procedure SaveMessages;
  public
    { Public declarations }
    procedure LoadMessages;
  end;

var
  NewUserf: TNewUserf;

implementation

uses Note;

{$R *.dfm}

procedure TNewUserf.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  Release;
end;

procedure TNewUserf.Button2Click(Sender: TObject);
begin
  Close;
end;

procedure TNewUserf.Button1Click(Sender: TObject);
begin
 if Caption='联系人属性' then Close
 else begin
  if NameEdit.Text<>'' then
  begin
   if EmailEdit.Text<>'' then
   begin
    if (Pos('@',EmailEdit.Text)<=1)or(Pos('.',EmailEdit.Text)<Pos('@',EmailEdit.Text))or(copy(EmailEdit.Text,Length(EmailEdit.Text),1)='.')
     or(Pos('.',EmailEdit.Text)<=1) then
      if MessageDlg('属性','您输入的电子邮件地址不是有效的Internet电子邮件地址。仍要继续吗?',
         mtWarning,[mbYes,mbNo],0,mbNo,nil)=4 then Exit;
   end;
   if Length(WebEdit.Text)>7 then
   begin
    if (Pos('http://',WebEdit.Text)<>1)or(Pos('.',WebEdit.Text)<7) then
     if MessageDlg('属性','您输入的网页网址不是有效的Internet网址。仍要继续吗?',
         mtWarning,[mbYes,mbNo],0,mbNo,nil)=4 then Exit;
   end;
   SaveMessages;
  end;
  Close;
 end;
end;

procedure TNewuserf.SaveMessages;
var
  i:Byte;
begin
  NoteMess.Name:=NameEdit.Text;
  NoteMess.Birthday:=BirthdayEdit.Text;
  NoteMess.MoveTel:=MoveTelEdit.Text;
  NoteMess.HomeTel:=HomeTelEdit.Text;
  NoteMess.OfficeTel:=OfficeEdit.Text;
  NoteMess.Fax:=FaxEdit.TExt;
  NoteMess.Company:=CompanyEdit.TExt;
  NoteMess.PostCode:=PostCodeEdit.Text;
  NoteMess.Address:=AddressEdit.Text;
  NoteMess.Email:=EmailEdit.Text;
  NoteMess.Web:=WebEdit.Text;
  if FieldCount>0 then
  begin
    for i:=0 to CustomCount-1 do
    begin
     if i<FieldCount then
      FieldText[i]:=Edits[i].Text
     else FieldText[i]:='';
    end;
    FileSeek(CfgFile,1000+1000*TheList.IndexOf(MainForm.ListView.Selected.Caption),0);
    FileWrite(CfgFile,FieldText,1000);
  end;
  if IsModify then
  begin
    FileSeek(MainFile,-NoteSize,1);
    FileWrite(MainFile,NoteMess,NoteSize);
    MainForm.ListViewLoadData(True,TheList.IndexOf(MainForm.ListView.Selected.Caption));
    IsModify:=False;
  end
  else
  begin
    FileSeek(MainFile,5+NoteSize*TotalUser,0);
    FileWrite(MainFile,NoteMess,NoteSize);
    Inc(TotalUser);
    FileSeek(MainFile,1,0);
    FileWrite(MainFile,TotalUser,4);
    MainForm.ListViewLoadData(True,TotalUser-1);
  end;
end;

procedure TNewUserf.LoadMessages;
var
  i,j:Byte;
  Y:Integer;
begin
  NameEdit.Text:=NoteMess.Name;
  BirthdayEdit.Text:=NoteMess.Birthday;
  MoveTelEdit.Text:=NoteMess.MoveTel;
  HomeTelEdit.Text:=NoteMess.HomeTel;
  OfficeEdit.Text:=NoteMess.OfficeTel;
  FaxEdit.Text:=NoteMess.Fax;
  CompanyEdit.Text:=NoteMess.Company;
  PostCodeEdit.Text:=NoteMess.PostCode;
  AddressEdit.Text:=NoteMess.Address;
  EmailEdit.Text:=NoteMess.Email;
  WebEdit.Text:=NoteMess.Web;
  Canvas.Font.Size:=Label2.Font.Size;
  Y:=169+35;
  j:=8;
  if FieldCount>0 then
  begin
    Setlength(Labels,FieldCount);
    SetLength(Edits,FieldCount);
    for i:=0 to FieldCount-1 do
    begin
      Labels[i]:=TLabel.Create(NewUserf);
      Labels[i].Font:=Label2.Font;
      Labels[i].Caption:=Fields[i];
      if (Pos(':',Fields[i])<=0)and(Pos(':',Fields[i])<=0)then
        Labels[i].Caption:=Labels[i].Caption+':';
      Labels[i].Top:=y;
      Edits[i]:=TEdit.Create(newUserf);
      Edits[i].Font:=NameEdit.Font;
      Edits[i].Top:=Y;
      Edits[i].Width:=NameEdit.Width;
      Edits[i].OnChange:=NameEditChange;
      Edits[i].OnKeyPress:=NameEditKeyPress;
      Labels[i].Parent:=NewUserf;
      Edits[i].Parent:=newUserf;
      Edits[i].TabOrder:=j;
      Inc(j);
      if i mod 2=0 then
      begin
        Edits[i].Left:=NameEdit.Left;
        Labels[i].Left:=NameEdit.Left-Canvas.TextWidth(Labels[i].Caption)-4;
      end
      else begin
        Edits[i].Left:=BirthdayEdit.Left;
        Labels[i].Left:=BirthdayEdit.Left-Canvas.TextWidth(Labels[i].Caption)-4;
      end;
      Edits[i].Text :=FieldText[i];
      if (i mod 2=1)or((i=FieldCount-1)and(i mod 2=0)) then
        Inc(Y,35);
    end;
  end;
  i:=FieldCount div 2;
  if FieldCount mod 2>0 then Inc(i);
  Height:=Height+35*i;
  Panel1.Top:=Y;
end;

procedure TNewUserf.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#27 then
    Close;
end;

procedure TNewUserf.NameEditChange(Sender: TObject);
begin
  Button1.Enabled:=True;
end;

procedure TNewUserf.FormShow(Sender: TObject);
var
  i:word;
begin
  if Caption='联系人属性' then
  begin
    Label1.Caption:='联系人的详细信息';
    for i:=0 to ComponentCount-1 do
    begin
      if Components[i] is TEdit then
      begin
        TEdit(Components[i]).ReadOnly:=True;
        TEdit(components[i]).Color:=clBtnFace;
        TEdit(components[i]).BevelInner:=bvNone;
        TEdit(components[i]).BevelOuter:=bvNone;
        TEdit(components[i]).Ctl3D:=False;
//        TEdit(Components[i]).BorderStyle:=bsNone;
      end;
      if Components[i] is TComboBox then
      begin
        TComboBox(Components[i]).Enabled:=False;
        TComboBox(components[i]).Color:=clBtnFace;
        TComboBox(components[i]).BevelInner:=bvNone;
        TComboBox(components[i]).BevelOuter:=bvNone;
        TComboBox(components[i]).Ctl3D:=False;
        TComboBox(Components[i]).Style:=csSimple;
      end;
    end;
  end
  else Button1.Enabled:=False;
end;

procedure TNewUserf.NameEditKeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
    Perform(WM_NEXTDLGCTL,0,0);
end;

procedure TNewUserf.FormClose(Sender: TObject; var Action: TCloseAction);
var
  i:Byte;
begin
  for i:=0 to FieldCount-1 do
  begin
    Edits[i].Free;
    Labels[i].Free;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -