📄 dbhform.pas
字号:
unit DBHForm;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics,
Controls, Forms, DBCtrls, StdCtrls, DBTables,
ExtCtrls, Mask, Db, Dialogs;
type
TNavigator = class(TForm)
BtnPrint: TButton;
DBEdit3: TDBEdit;
Label3: TLabel;
Label2: TLabel;
DBEdit2: TDBEdit;
DBEdit1: TDBEdit;
Label1: TLabel;
DBNavigator1: TDBNavigator;
Table1: TTable;
DataSource1: TDataSource;
SaveDialog1: TSaveDialog;
Memo1: TMemo;
Label4: TLabel;
BtnSave: TButton;
CheckStart: TCheckBox;
BtnLine: TButton;
procedure BtnPrintClick(Sender: TObject);
procedure BtnSaveClick(Sender: TObject);
procedure BtnLineClick(Sender: TObject);
public
procedure AddHeader (Str: TStrings; Title: string);
procedure AddFooter (Str: TStrings);
procedure AddAllLines (Str: TStrings);
end;
var
Navigator: TNavigator;
implementation
{$R *.DFM}
uses
ShellAPI;
procedure TNavigator.AddHeader (
Str: TStrings; Title: string);
begin
Str.Add ('<HTML>');
Str.Add ('<HEAD>');
Str.Add ('<TITLE>' + Title + '</TITLE>');
Str.Add ('</HEAD>');
Str.Add ('<BODY>');
Str.Add ('<H1><CENTER>' + Title + '</CENTER></H1>');
end;
procedure TNavigator.AddFooter (Str: TStrings);
begin
Str.Add ('<HR>');
Str.Add ('Generated by the program ' +
ExtractFilename (Application.Exename));
Str.Add ('</BODY>');
Str.Add ('</HTML>');
end;
procedure TNavigator.BtnPrintClick(Sender: TObject);
begin
Memo1.Clear;
AddHeader (Memo1.Lines,
'Table: ' + Table1.TableName);
AddAllLines (Memo1.Lines);
AddFooter (Memo1.Lines);
BtnSave.Enabled := True;
end;
procedure TNAvigator.AddAllLines (Str: TStrings);
var
Bookmark: TBookmark;
begin
// disable the UI
Table1.DisableControls;
try
// store the current position
Bookmark := Table1.GetBookmark;
try
// scan the database table
Table1.First;
while not Table1.EOF do
begin
// send the two fields
Str.Add (Format ('The capital of %s is %s<p>',
[Table1.FieldByName ('Name').AsString,
Table1.FieldByName ('Capital').AsString]));
Table1.Next;
end;
finally
// go back to the bookmark and destroy it
Table1.GotoBookmark (Bookmark);
Table1.FreeBookmark (Bookmark);
end;
finally
// re-enable the controls
Table1.EnableControls;
end;
end;
procedure TNavigator.BtnSaveClick(Sender: TObject);
begin
if SaveDialog1.Execute then
begin
Memo1.Lines.SaveToFile (SaveDialog1.FileName);
if CheckStart.Checked then
ShellExecute (Handle, 'open',
PChar (SaveDialog1.FileName),
'', '', sw_ShowNormal);
end;
end;
procedure TNavigator.BtnLineClick(Sender: TObject);
var
I: Integer;
begin
Memo1.Clear;
AddHeader (Memo1.Lines, Table1.Fields[0].AsString);
for I := 1 to Table1.FieldCount - 1 do
Memo1.Lines.Add (Table1.Fields [I].FieldName + ': ' +
Table1.Fields [I].AsString + '<p>');
AddFooter (Memo1.Lines);
BtnSave.Enabled := True;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -