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

📄 u_form1.pas

📁 很好地delphi书籍源码
💻 PAS
字号:
unit U_Form1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls, Buttons, ComCtrls,
  ToolWin, Spin, ImgList, DB, DBTables, RpCon, RpConDS, RpConBDE, RpDefine,
  RpRave;

type
  TFrmPhone = class(TForm)
    DBGrid1: TDBGrid;
    ToolBar1: TToolBar;
    AddTButton: TToolButton;
    ModTButton: TToolButton;
    DelTButton: TToolButton;
    AddGB: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    NameEdit: TEdit;
    AddOkButton: TButton;
    AddCancelButton: TButton;
    Label5: TLabel;
    RelationCB: TComboBox;
    ImageList1: TImageList;
    Label13: TLabel;
    NoteEdit: TEdit;
    ToolButton3: TToolButton;
    NextTB: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton1: TToolButton;
    Panel1: TPanel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    NameCB: TComboBox;
    Table1: TTable;
    SBar: TStatusBar;
    ToolButton2: TToolButton;
    HomePhoneEdit: TEdit;
    CompanyEdit: TEdit;
    HandsetEdit: TEdit;
    ModGB: TGroupBox;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    NameEdit1: TEdit;
    ModOkButton: TButton;
    ModCancelButton: TButton;
    RelationCB1: TComboBox;
    HomePhoneEdit1: TEdit;
    CompanyEdit1: TEdit;
    HandsetEdit1: TEdit;
    NoteEdit1: TEdit;
    DataSource1: TDataSource;
    StateCB: TComboBox;
    Label12: TLabel;
    Label14: TLabel;
    H_PhoneCB: TComboBox;
    Label18: TLabel;
    HandsetCB: TComboBox;
    Label19: TLabel;
    C_PhoneCB: TComboBox;
    RvProject1: TRvProject;
    RvTableConnection1: TRvTableConnection;
    procedure FormCreate(Sender: TObject);
    procedure AddTButtonClick(Sender: TObject);
    procedure AddOkButtonClick(Sender: TObject);
    procedure AddCancelButtonClick(Sender: TObject);
    procedure ModTButtonClick(Sender: TObject);
    procedure DelTButtonClick(Sender: TObject);
    procedure ToolButton7Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure NextTBClick(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure NameCBChange(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
 //   procedure ToolButton2Click(Sender: TObject);
    procedure ModOkButtonClick(Sender: TObject);
    procedure ModCancelButtonClick(Sender: TObject);
    procedure H_PhoneCBChange(Sender: TObject);
    procedure C_PhoneCBChange(Sender: TObject);
    procedure HandsetCBChange(Sender: TObject);
    procedure StateCBChange(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
  private
    procedure SelectAll;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmPhone: TFrmPhone;

implementation

//uses  DynamicFormUnit, Dy_QReport;
const Title:array[0..6] of String=('编号','姓名','住宅电话',' 单位电话 ',
   '手机','关系','  备注 ');
{$R *.dfm}
procedure TFrmPhone.FormCreate(Sender: TObject);
begin
  Table1.Close;
  Table1.DatabaseName:=GetCurrentDir+'\Database';
  Table1.TableName :='电话号码簿.db';
  SelectAll;
end;

procedure TFrmPhone.SelectAll;
var
  i:word;
begin
   with Table1 do
   begin
     Close;
     Filter:='';
     Filtered:=true;
     Open;
   end;
  for i:=0 to 6 do
  begin
    DBGrid1.Columns[i].Title.caption:=Title[i];
    DBGrid1.Columns[i].Title.Alignment:=taCenter;
    DBGrid1.Columns[i].Alignment:=taCenter;
  end;
  DBGrid1.Columns[0].Visible:=false;
end;

procedure TFrmPhone.AddTButtonClick(Sender: TObject);
begin
  AddGB.Visible:=true;
  ModGB.Visible:=false ;
end;

procedure TFrmPhone.AddOkButtonClick(Sender: TObject);
var
  Date:TDateTime;
  ID:  Longint;
begin
  Date:=now;
  ID:=StrToInt(format('%10.0f',[50000*Date]));
  if (NameEdit.Text='') then
  begin
    Showmessage('需要提供用户姓名');
    exit;
  end;
  try
    Table1.AppendRecord([ID,NameEdit.Text,HomePhoneEdit.Text,
       CompanyEdit.Text,HandsetEdit.Text,RelationCB.Text,NoteEdit.Text]);
  except On E:Exception do
        Application.MessageBox(PChar('5秒钟后再试一次!'),'提示:',MB_ICONINFORMATION);
  end;
  SelectAll;
  AddGB.Visible:=false;
end;

procedure TFrmPhone.AddCancelButtonClick(Sender: TObject);
begin
  AddGB.Visible:=false;
end;

procedure TFrmPhone.ModTButtonClick(Sender: TObject);
begin
  ModGB.Visible:=true;
  AddGB.Visible:=false;
  with Table1 do
  begin
   NameEdit1.Text:=Fields[1].AsString;
   HomePhoneEdit1.Text:=Fields[2].AsString;
   CompanyEdit1.Text:=Fields[3].AsString;
   HandsetEdit1.Text:=Fields[4].AsString;
   RelationCB1.Text:=Fields[5].AsString ;
   NoteEdit1.Text:=Fields[6].AsString;
 end;
end;

procedure TFrmPhone.DelTButtonClick(Sender: TObject);
begin
   if Application.MessageBox('确实需要删除记录吗!',
       '提示',MB_YesNo+MB_IconExclamation+MB_SystemModal)=IDYES then
     Table1.Delete;
end;

procedure TFrmPhone.ToolButton7Click(Sender: TObject);
begin
  Table1.First;
end;

procedure TFrmPhone.ToolButton3Click(Sender: TObject);
begin
  Table1.Prior;
end;

procedure TFrmPhone.NextTBClick(Sender: TObject);
begin
  Table1.Next;
end;

procedure TFrmPhone.ToolButton6Click(Sender: TObject);
begin
  Table1.Last;
end;

procedure TFrmPhone.NameCBChange(Sender: TObject);
begin
   with Table1 do
   begin
     if NameCB.Text='' then  SelectAll
     else
       Filter:='GuestName ='+QuotedStr(NameCB.Text+'*');
       Filtered:=true;
       StateCB.ItemIndex:=0;
   end;

end;

procedure TFrmPhone.ToolButton1Click(Sender: TObject);
begin
  Close;
end;

procedure TFrmPhone.DBGrid1CellClick(Column: TColumn);
var
  ID:integer;
begin
  ID:=Column.Grid.Fields[0].AsInteger;
  SBar.SimpleText:='该用户信息最新修订时间是:'+ DateTimeToStr(ID/50000) ;
end;

{procedure TFrmPhone.ToolButton2Click(Sender: TObject);
var
 DynamicForm:TDynamicForm;
 GridPrint:TGridPrint;
begin
  DynamicForm:=TDynamicForm.Create(Application);
  with DynamicForm do
  begin
    GridPrint:=TGridPrint.Create(QuickRep,DBGrid1,TitleB,HeaderB,DetailB,
                      '电话号码簿');
    GridPrint.DoPreview();
    GridPrint.Free;
  end;
end;  }

procedure TFrmPhone.ModOkButtonClick(Sender: TObject);
var
  Date:TDateTime;
  ID:  Longint;
begin
  if Application.MessageBox('确实需要保存记录吗!',
       '提示',MB_YesNo+MB_IconExclamation+MB_SystemModal)=IDYES then
  begin
    Date:=now;
    ID:=StrToInt(format('%10.0f',[50000*Date]));
    with Table1 do
    begin
      Edit;
      Fields[0].AsInteger:=ID;
      Fields[1].AsString:=NameEdit1.Text;
      Fields[2].AsString:=HomePhoneEdit1.Text;
      Fields[3].AsString:=CompanyEdit1.Text;
      Fields[4].AsString:=HandsetEdit1.Text;
      Fields[5].AsString:=RelationCB1.Text ;
      Fields[6].AsString:=NoteEdit1.Text;
      try
        Post
      except On E:Exception do
        Application.MessageBox(PChar('5秒钟后再试一次!'),'提示:',MB_ICONINFORMATION);
      end;
    end;
  end;
  ModGB.Visible:=false;
end;

procedure TFrmPhone.ModCancelButtonClick(Sender: TObject);
begin
  ModGB.Visible:=false;
end;

procedure TFrmPhone.H_PhoneCBChange(Sender: TObject);
begin
  if not Table1.Locate('H_Phone',H_PhoneCB.Text,[loPartialKey]) then
    Showmessage('没有发现符合条件的记录');
end;

procedure TFrmPhone.C_PhoneCBChange(Sender: TObject);
begin
  if not Table1.Locate('C_Phone',C_PhoneCB.Text,[loPartialKey]) then
    Showmessage('没有发现符合条件的记录');
end;

procedure TFrmPhone.HandsetCBChange(Sender: TObject);
begin
  if not Table1.Locate('Handset',HandsetCB.Text,[loPartialKey]) then
  Showmessage('没有发现符合条件的记录');

end;

procedure TFrmPhone.StateCBChange(Sender: TObject);
begin
  with Table1 do
   begin
     if StateCB.Text='' then  SelectAll
     else
       Filter:='Relation ='+QuotedStr(StateCB.Text);
     Filtered:=true;
    end;
end;

procedure TFrmPhone.ToolButton2Click(Sender: TObject);
begin
  RvProject1.Execute;
end;

end.

⌨️ 快捷键说明

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