1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| THTMLtable = class
private
St: TStringBuilder;
public
Titre: string;
Bordure: Byte;
constructor Create(Titre: string = ''; Bordure: Byte = 1);
destructor Destroy; override;
procedure CommenceLigne;
procedure AjouteTitre(Texte: string);
procedure AjouteColonne(Texte: string; Titre: Boolean = False);
procedure TermineLigne;
procedure Termine;
function AsString: string;
end;
implementation
{ THTMLtable }
procedure THTMLtable.AjouteColonne(Texte: string; Titre: Boolean);
begin
St.AppendLine(Format('<%1:s>%0:s</%1:s>', [Texte, IfThen(Titre, 'th', 'td')]));
end;
procedure THTMLtable.AjouteTitre(Texte: string);
begin
St.AppendLine(Format('<caption>%s</caption>', [Texte]));
end;
function THTMLtable.AsString: string;
begin
Result := St.ToString;
end;
procedure THTMLtable.CommenceLigne;
begin
St.AppendLine('<tr>');
end;
constructor THTMLtable.Create(Titre: string; Bordure: Byte);
begin
St := TStringBuilder.Create;
St.AppendLine(Format('<table border="%dpx">', [Bordure]));
if not Titre.IsEmpty then
AjouteTitre(Titre);
end;
destructor THTMLtable.Destroy;
begin
St.Free;
inherited;
end;
procedure THTMLtable.Termine;
begin
St.AppendLine('</table>');
end;
procedure THTMLtable.TermineLigne;
begin
St.AppendLine('</tr>');
end; |