📄 card.pas
字号:
unit Card;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Menus, ExtCtrls, Buttons, DB, DBTables, Grids, DBGrids, Printers;
type
TCardForm = class(TForm)
CardMenu: TMainMenu;
CardManage: TMenuItem;
New: TMenuItem;
Open: TMenuItem;
Save: TMenuItem;
SaveAs: TMenuItem;
Separator1: TMenuItem;
Print: TMenuItem;
Separator2: TMenuItem;
Exit: TMenuItem;
Edit: TMenuItem;
Insert: TMenuItem;
Delete: TMenuItem;
Separator3: TMenuItem;
Find: TMenuItem;
Help: TMenuItem;
Content: TMenuItem;
UseHelp: TMenuItem;
Separator4: TMenuItem;
About: TMenuItem;
SpeedBarPanel: TPanel;
SpeedBtnOpen: TSpeedButton;
SpeedBtnSave: TSpeedButton;
SpeedBtnPrint: TSpeedButton;
SpeedBtnExit: TSpeedButton;
SpeedBtnInsert: TSpeedButton;
SpeedBtnDelete: TSpeedButton;
SpeedBtnFind: TSpeedButton;
SpeedBtnContent: TSpeedButton;
SpeedBtnAbout: TSpeedButton;
StatusBarPanel: TPanel;
StatusBarTitle: TPanel;
StatusBarTime: TPanel;
CardTimer: TTimer;
CardTable: TTable;
CardDataSource: TDataSource;
CardDBGrid: TDBGrid;
TempTable: TTable;
NewTable: TTable;
CardBatchMove: TBatchMove;
OpenCardDialog: TOpenDialog;
SaveCardDialog: TSaveDialog;
procedure FormCreate(Sender: TObject);
procedure ExitClick(Sender: TObject);
procedure NewClick(Sender: TObject);
procedure OpenClick(Sender: TObject);
procedure SaveClick(Sender: TObject);
procedure SaveAsClick(Sender: TObject);
procedure PrintClick(Sender: TObject);
procedure InsertClick(Sender: TObject);
procedure DeleteClick(Sender: TObject);
procedure FindClick(Sender: TObject);
procedure ContentClick(Sender: TObject);
procedure UseHelpClick(Sender: TObject);
procedure AboutClick(Sender: TObject);
procedure CardTimerTimer(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Procedure DisplayHint(Sender: TObject);
end;
var
CardForm: TCardForm;
SaveFileName : String;
NewOldCard: String;
implementation
uses
NewCard, DelCard, About;
{$R *.DFM}
Procedure TCardForm.DisplayHint(Sender: TObject);
begin
StatusBarTitle.Caption := Application.Hint;
end;
procedure TCardForm.FormCreate(Sender: TObject);
begin
Application.OnHint := DisplayHint;
try
Application.HelpFile := ExtractFilePath (Application.ExeName) + 'Card.Hlp';
except
if MessageDlg ('帮助文件路径或帮助文件名错误!', mtError, [mbOk], 0) = mrOk then
CardForm.Close;
end;
end;
procedure TCardForm.ExitClick(Sender: TObject);
begin
Close;
end;
procedure TCardForm.NewClick(Sender: TObject);
begin
Save.Enabled := False;
SaveAs.Enabled := False;
Print.Enabled := False;
Delete.Enabled := False;
Find.Enabled := False;
SpeedBtnSave.Enabled := False;
SpeedBtnPrint.Enabled := False;
SpeedBtnDelete.Enabled := False;
SpeedBtnFind.Enabled := False;
try
TempTable.DatabaseName := ExtractFilePath (Application.ExeName);
TempTable.TableName := 'Temp.db';
NewTable.Close;
NewTable.DatabaseName := ExtractFilePath (Application.ExeName);
NewTable.TableName := 'Untitled.db';
SaveFileName := 'Untitled.db';
CardForm.Caption := '大师名片--'+NewTable.DatabaseName+NewTable.TableName;
CardBatchMove.Execute;
CardDataSource.DataSet := NewTable;
NewTable.Open;
except
if MessageDlg ('数据库路径或数据表文件错误!', mtError, [mbOk], 0) = mrOk then
CardForm.Close;
end;
end;
procedure TCardForm.OpenClick(Sender: TObject);
begin
if OpenCardDialog.Execute then
begin
CardTable.Close;
CardTable.TableName := OpenCardDialog.FileName;
CardForm.Caption := '大师名片--' + OpenCardDialog.FileName;
SaveFileName := CardTable.TableName;
CardDataSource.DataSet := CardTable;
CardTable.Open;
Save.Enabled := True;
SaveAs.Enabled := True;
Print.Enabled := True;
Delete.Enabled := True;
Find.Enabled := True;
SpeedBtnSave.Enabled := True;
SpeedBtnPrint.Enabled := True;
SpeedBtnDelete.Enabled := True;
SpeedBtnFind.Enabled := True;
end;
end;
procedure TCardForm.SaveClick(Sender: TObject);
begin
if SaveFileName = 'Untitled.db' then
SaveAsClick(Sender);
end;
procedure TCardForm.SaveAsClick(Sender: TObject);
begin
SaveCardDialog.FileName := SaveFileName;
if SaveCardDialog.Execute then
begin
if SaveFileName = 'Untitled.db' then
Begin
NewTable.Close;
CardTable.Close;
RenameFile(SaveFileName, SaveCardDialog.Filename);
end
else
Begin
CardTable.Close;
RenameFile(SaveFileName, SaveCardDialog.Filename);
end;
CardTable.TableName := SaveCardDialog.Filename;
CardForm.Caption := '大师名片--' + CardTable.DataBaseName
+ ExtractFileName(CardTable.TableName);
CardDataSource.DataSet := CardTable;
CardTable.Open;
end;
end;
procedure TCardForm.PrintClick(Sender: TObject);
var
I : Integer;
begin
Printer.BeginDoc;
CardDataSource.DataSet.First;
I := 0;
while not CardDataSource.DataSet.EOF do
begin
Printer.Canvas.TextOut(100,100 + 60*I, CardDataSource.DataSet.FieldByName('Name').AsString);
Printer.Canvas.TextOut(280,100 + 60*I, CardDataSource.DataSet.FieldByName('OfficeTel').AsString);
Printer.Canvas.TextOut(640,100 + 60*I, CardDataSource.DataSet.FieldByName('HomeTel').AsString);
Printer.Canvas.TextOut(1000,100 + 60*I, CardDataSource.DataSet.FieldByName('BP').AsString);
CardDataSource.DataSet.Next;
I := I + 1;
end;
Printer.EndDoc;
end;
procedure TCardForm.InsertClick(Sender: TObject);
begin
NewOldCard := 'New';
NewCardForm.ShowModal;
end;
procedure TCardForm.DeleteClick(Sender: TObject);
begin
DelCardForm.ShowModal;
end;
procedure TCardForm.FindClick(Sender: TObject);
begin
NewOldCard := 'Old';
NewCardForm.ShowModal;
end;
procedure TCardForm.ContentClick(Sender: TObject);
begin
Application.HelpCommand (HELP_CONTENTS, 0);
end;
procedure TCardForm.UseHelpClick(Sender: TObject);
begin
Application.HelpCommand (HELP_HELPONHELP, 0);
end;
procedure TCardForm.AboutClick(Sender: TObject);
begin
AboutBox.ShowModal;
end;
procedure TCardForm.CardTimerTimer(Sender: TObject);
begin
StatusBarTime.Caption := TimeToStr(Time);
end;
procedure TCardForm.FormShow(Sender: TObject);
begin
try
CardTable.DatabaseName := ExtractFilePath (Application.ExeName);
CardTable.TableName := 'Demo.db';
SaveFileName := CardTable.TableName;
CardTable.Open;
except
if MessageDlg ('数据库路径或数据表文件错误!', mtError, [mbOk], 0) = mrOk then
CardForm.Close;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -