Hallo!
Ich habe eine TListBox, dabei ist
Anchors := [akLeft,akTop,akRight,akBottom] und
Style := lbOwnerDrawFixed. Ich möchte nun, dass in Prozedur DrawItem die Darstellung der Items immer an der gleichen Stelle abgeschnitten wird, unabhängig von der Textlänge und der Breite der Zeichen. Die Anzeige der Items soll bis kurz vor
Rect.Right gehen und sich an
ClientWidth anpassen.
Also so und soviele Pixel zählen und dort abschneiden.
Ich könnte nun natürlich mit
Copy arbeiten, das berücksichtigt aber nicht die Breite einzelner Zeichen, so ist ja zB. ein W breiter als ein i.
//Edit: Lösung gefunden:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| FillRect(Rect);
Rect.Right := TJvListBox(Control).ClientWidth-10;
TextRect(Rect, Rect.Left, Rect.Top + (Rect.Bottom - Rect.Top - TextHeight(item)) div 2, item); |
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!