Strings in einem Bitmap ausgeben |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
Dieser Artikel zeigt, wie Sie Strings als Bitmap ausgeben können.
Die Prozedur erwartet 4 Parameter, wobei die letzten beiden optional sind. Dem ersten Parameter müssen die Strings übergeben werden. Diese können z.B. in einer Stringlist stehen. Mehrzeilige Texte können so ohne Probleme verarbeitet werden. Dem zweiten Parameter wird das Zielbitmap übergeben, worauf der Text ausgegeben wird. Über AMarginX und AMarginY wird gesteuert, wo die Prozedur an der linken, oberen Ecke mit dem Zeichnen beginnen soll.
var
Y: Integer;
LineH, LineW: Integer;
begin
ATarget.Width := 0;
LineH := ATarget.Canvas.TextHeight('Wg');
ATarget.Height := (AText.Count*LineH) + (AMarginY*2);
for Y := 0 to AText.Count-1 do
begin
LineW := ATarget.Canvas.TextWidth(AText.Strings[Y] + AMarginX*2;
if ATarget.Width < LineW then
ATarget.Width := LineW;
ATarget.Canvas.TextOut(AMarginX, AMarginY+LineH*Y, AText.Strings[Y]);
end;
end;
Folgender Beispielaufruf lädt eine Textdatei in eine Stringlist und gibt diese in einem Image aus:
var
Strings: TStringList;
begin
Strings := TStringList.Create;
try
Strings.LoadFromFile('C:\WINDOWS\wmsetup.log');
TextToBitmap(Strings, Image1.Picture.Bitmap, 1, 0);
finally
Strings.Free;
end;
end;
Achten Sie darauf, dass der String nicht zu groß wird, da es sonst zu einer EOutOfResources-Exceptionen kommen kann.