![]() |
Graphics32 Render Text??
Hallo, :hi:
Ich möchte meine ListBox Einträge auf der image321(Graphics32) untereinander Auflisten. Hier mal mein Code:
Delphi-Quellcode:
Nur leider schreibt er alle einträge Übereinander, Was muss ich ändern????
Image321.Bitmap.Clear;
for i := 0 to Listbox1.Count-1 do Image321.Bitmap.RenderText(10 ,10 ,ListBox1.Items.Strings[ListBox1.Itemindex], i, $FFFFFFFF); Bitte Helft :wall: Gruss Bernd |
Re: Graphics32 Render Text??
Wie wäre es denn mit der y-Koordinate? :zwinker:
edit: Die Stelle an der du dein "i" stehen hast definiert das Antialiasing - also völlig falsch dort. Aber auch ein einfaches "i" an Stelle von "10" bei der y-Koordinate wird nicht viel besser aussehen. Besser wäre da ein "i*Schrifthöhe". (Die Schrifthöhe bekommst du auch über TBitmap32 heraus.) nochmaledit: Du wirst im Übrigen nur den aktuell angewählten ListBox-Eintrag n mal untereinander bekommen, wenn du nicht i als Index für das Stringarray der ListBox verwendest. Irgendwie ist da bei dir alles durcheinander geraten :) Gruss, Fabian |
Re: Graphics32 Render Text??
Hi Dizzy,
Könnstest du mir das mal bitte näher erklären. wäre echt nett von dir. Gruss Bernd |
Re: Graphics32 Render Text??
Das müsste z.B. so gehen:
Delphi-Quellcode:
Für die Funktion "Color32" musst du noch GR32 zu deinem uses Abschnitt hinzufügen.
procedure TForm1.Button1Click(Sender: TObject);
var i:Integer; begin Image321.Bitmap.Clear; for i := 0 to Listbox1.Count-1 do begin Image321.Bitmap.RenderText(10,i*Image321.Bitmap.TextHeight(ListBox1.Items.Strings[i]),ListBox1.Items.Strings[i],0,Color32(255,255,255)); end; end; |
Re: Graphics32 Render Text??
Zitat:
Zitat:
Dein "i" steht an der Stelle von "AALevel", womit du die Stärke des Antialiasing angibst, und bei deiner Angabe von "Text" hast du einen festen Index für die Stringlist angegeben - statt dessen wäre dort das "i" angebracht um über alle Strings zu wandern. "$FFFFFFFF" als "Color" ist okay, das wäre voll deckendes Weiss. Einfacher ist hier das Verwenden der Funktion GR32.Color32(). Dort kannst du die Farbanteile als Bytes angeben, und optional noch die Transparenz. Im übrigen ist "RenderText" erheblich langsamer als "TextOut"! Somit also kaum geeignet um längere Text zu zeichnen, sondern eher für Teile bei denen es wichtig ist, dass sie a) Transparent sind, und/oder b) mit Kantenglättung gezeichnet werden. Für alle anderen Fälle empfehle ich TBitmap32.TextOut(). Gruss, Fabian |
Re: Graphics32 Render Text??
Hallo,
Vielen Dank, hat echt super geklappt. :thumb: Gruss Bernd |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz