![]() |
AW: Einzelne Wörter in TListBox fett zeichnen
Danke, das hat (zumindest für WinAero) schonmal geholfen.
Der Grund, weshalb ich den einen Pixel abziehen musste war, dass es sonst auf WinXP im Klassischen Design zu genau dem umgekehrten Fehler kam. MFG |
AW: Einzelne Wörter in TListBox fett zeichnen
Könnte mir evtl. jemand mal ein beispiel zu den fetten Wörtern in der TListBox geben, irgendwie kriege ich das nicht mal in ansätzen richtig hin.
Danke ;D |
AW: Einzelne Wörter in TListBox fett zeichnen
Hallo, kann mir denn keiner hier helfen?
Außerdem stehe ich nach wie vor vor dem Problem mit den Tabsprüngen, die beim Draw-en nicht richtig angezeigt werden. Meine Suchen bisher waren leider erfolglos. MFG |
AW: Einzelne Wörter in TListBox fett zeichnen
Liste der Anhänge anzeigen (Anzahl: 1)
Mach es dir doch nicht so schwer... ich habe dir oben schon eine sehr einfache Lösung gepostet... ein Beispiel, folgender Text in der TJvHTListBox:
Zitat:
Delphi-Quellcode:
Heraus kommt dann das (links: TJvHTListBox mit obigem Text, rechts: selbst gezeichnet):
procedure TForm246.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
const TextToHighlight = 'Dennis:'; var MyListBox: TListBox; CurrentItem: string; CurrentRect: TRect; CurrentPaintLeft: Integer; FormatValue: Integer; begin MyListBox := Control as TListBox; CurrentItem := MyListBox.Items[Index]; CurrentRect := Rect; FormatValue := DT_LEFT or DT_EXPANDTABS or DT_TABSTOP; LongRec(FormatValue).Bytes[1] := 14; // Tabbreite in Buchstaben if AnsiSameText(Copy(CurrentItem, 1, Length(TextToHighlight)), TextToHighlight) then begin Delete(CurrentItem, 1, Length(TextToHighlight)); DrawText(MyListBox.Canvas.Handle, CurrentItem, Length(CurrentItem), CurrentRect, FormatValue); // erst den Text dahinter MyListBox.Canvas.Font.Style := [fsBold]; DrawText(MyListBox.Canvas.Handle, TextToHighlight, Length(TextToHighlight), CurrentRect, FormatValue); // nun den Namen vorne end else DrawText(MyListBox.Canvas.Handle, CurrentItem, Length(CurrentItem), CurrentRect, FormatValue); end; Anhang 39164 |
AW: Einzelne Wörter in TListBox fett zeichnen
Hm, danke schonmal.
Wieso erstellst du eine neue TListBox ("MyListbox")? Wir haben doch schon eine? |
AW: Einzelne Wörter in TListBox fett zeichnen
Die TListBox wird im Sender als TWinControl übergeben, das hat aber keinen Canvas. Also caste ich den Sender auf TListBox, wobei as vorher prüft, ob das auch wirklich eine TListBox ist.
So kann der Code benutzt werden ohne eine bestimmte TListBox anzusprechen, ich bekomme sie ja im Sender. Eine neue erstellt wird da nirgends. |
AW: Einzelne Wörter in TListBox fett zeichnen
hm, kann ich nicht einfach statt dem MyListBox da die Listbox einsetzen, mit der ich das mache?
Also ich habe ja schon im OI eine Listbox platziert, und mit der will ich das auch machen. Wenn ich die also mit Namen anspreche, wird diese ja nicht als WinControl übergeben, sondern als TListBox. Falls das der Grund für die neue TListBox war, so müsste dies eigentlich auch funktionieren, oder? |
AW: Einzelne Wörter in TListBox fett zeichnen
Zitat:
Ich habe die auch im OI gesetzt. Das OnDrawItem bekommt diese Listbox als Sender übergeben, aber als Vorfahrtyp, nicht konkret als TListBox. Deshalb muss der Typ noch auf TListBox gecastet werden, damit man als TListBox damit arbeiten kann. Das bleibt dabei aber immer noch die selbe Listbox. |
AW: Einzelne Wörter in TListBox fett zeichnen
Achso, das war mir noch nicht so ganz klar gewesen.
Werde ich gleich morgen ausprobieren, danke. MFG |
AW: Einzelne Wörter in TListBox fett zeichnen
Liste der Anhänge anzeigen (Anzahl: 1)
Hm, also entweder habe ich beim copy&paste erheblich was falsch gemacht, oder es funktioniert nicht.
Der Quelltext, so wie beschrieben, kann gar nicht funktionieren, da DrawText den HighlightText als PChar benötigt. Und selbst wenn man das Problem dann behoben hat, so hat das Resultat kaum etwas mit dem gemeinsam, was ich brauche. 1. Der Text wird nicht ge-highlighted. 2. Das einzige, was sich ändert ist, dass ich nun so hässliche permanente FocusRects überall habe, und der Selected-Hintergrundfokus nicht über die Gesamte Breite verläuft. (Screenshot beiliegend) Danke trotzdem bis hierher. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:51 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