![]() |
AW: Einzelne Wörter in TListBox fett zeichnen
Das mit dem PChar liegt daran, dass du Delphi 7 hast, darauf hatte ich nicht weiter geachtet. Damals (ist ja nun immerhin 11 Jahre alt) gab es die Stringversion von DrawText noch nicht.
Das mit der Markierung war noch ein Fehler, da fehlte ein FillRect um die Markierung aufzuräumen. Mit Delphi 7 funktioniert es bei mir so:
Delphi-Quellcode:
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; MyListBox.Canvas.FillRect(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, PChar(CurrentItem), Length(CurrentItem), CurrentRect, FormatValue); // erst den Text dahinter MyListBox.Canvas.Font.Style := [fsBold]; DrawText(MyListBox.Canvas.Handle, PChar(TextToHighlight), Length(TextToHighlight), CurrentRect, FormatValue); // nun den Namen vorne end else DrawText(MyListBox.Canvas.Handle, PChar(CurrentItem), Length(CurrentItem), CurrentRect, FormatValue); end; |
AW: Einzelne Wörter in TListBox fett zeichnen
Liste der Anhänge anzeigen (Anzahl: 1)
Ehm, zumindest danke für die Mühe bis hierher.
Zuerst die gute Nachricht: Die optischen "Zwischenfälle" sind nun behoben, es funktioniert nun wieder alles. Nur leider wird auch nichts ge-highlighted (siehe Screenshot). |
AW: Einzelne Wörter in TListBox fett zeichnen
Naja, die Abfrage, ob der Text in der Zeile vorkommt, musst du schon anpassen...
Delphi-Quellcode:
Das war ja nur ein Beispiel, in dem wie im Screenshot zu sehen der Text "Dennis:" am Anfang der Zeile steht...
if AnsiSameText(Copy(CurrentItem, 1, Length(TextToHighlight)), TextToHighlight) then
// ... |
AW: Einzelne Wörter in TListBox fett zeichnen
Hey, danke, jetzt hat alles funktioniert.
Habe gerade noch mal ~6h dran gesessen, und es scheint alles zu funktionieren. Vielen Dank für die Hilfe. MFG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 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