📄 htmlstr.pas
字号:
unit HtmlStr;
interface
uses
Classes, DB;
type
THtmlStrings = class (TStringList)
public
procedure AddHeader (Title: string);
procedure AddFooter;
procedure OutputTable (Data: TDataSet);
private
procedure AddTableContents (Data: TDataSet);
end;
implementation
uses
SysUtils;
procedure THtmlStrings.AddHeader (Title: string);
begin
Clear;
Add ('<HTML>');
Add ('<HEAD>');
Add ('<TITLE>' + Title + '</TITLE>');
Add ('</HEAD>');
Add ('<BODY>');
Add ('<H1><CENTER>' + Title + '</CENTER></H1>');
end;
procedure THtmlStrings.AddFooter;
begin
Add ('<HR>');
Add ('Generated by the program ' +
ExtractFilename (Application.Exename));
Add ('</BODY>');
Add ('</HTML>');
end;
procedure THtmlStrings.OutputTable (Data: TDataSet);
var
I: Integer;
begin
// start table with borders
Add('<table border>');
// new row, with the table headers (tag <th>)
Add('<tr>');
for I := 0 to Data.FieldCount - 1 do
if Data.Fields[I].Visible then
Add('<th>' + Data.Fields[I].FieldName + '</th>');
Add('</tr>');
// new row for each record, with the proper fields
AddTableContents (Data);
// done
Add('</table>');
end;
procedure THtmlStrings.AddTableContents (Data: TDataSet);
var
Bookmark: TBookmark;
I: Integer;
begin
// disable the UI
Data.DisableControls;
try
// store the current position
Bookmark := Data.GetBookmark;
try
// scan the database table
Data.First;
while not Data.EOF do
begin
Add('<tr>'); // new row, with table data (tag <td>)
for I := 0 to Data.FieldCount - 1 do
if Data.Fields[I].Visible then
Add('<td>' + Data.Fields[I].DisplayText + '</td>');
Add('</tr>');
Data.Next;
end;
finally
// go back to the bookmark and destroy it
Data.GotoBookmark (Bookmark);
Data.FreeBookmark (Bookmark);
end;
finally
// re-enable the controls
Data.EnableControls;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -