![]() |
Einzelne ListView Einträge fett machen
Gibts da ne Möglichkeit? So wie bei Outlook und den ungelesenen Mails, die Fett sind.
|
Re: Einzelne ListView Einträge fett machen
Das erste sollte bei solchen Standardfragen eigentlich immer die Suche sein. Auf Anhieb nach 10 Sekunden habe ich z.B.
![]() |
Re: Einzelne ListView Einträge fett machen
Hat mir leider nicht wirklich weitergeholfen.
Habe jetzt folgenden Code:
Delphi-Quellcode:
Ich möchte es aber eher so (das ganze sollte sich auch direkt nach dem Einfügen des Items färben):
procedure TForm1.Button1Click(Sender: TObject);
begin listview1.Items.Add; listview1.Items[0].Caption:='xx'; listview1.Items.Add; listview1.Items[1].Caption:='xx'; listview1.Items.Add; listview1.Items[2].Caption:='xx'; listview1.Repaint; end; procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); begin IF item.Index=2 THEN // färbe 3. Zeile begin Sender.Canvas.Font.Style:=[fsbold]; DefaultDraw := True; // item normal zeichnen end; end; Pseudocode:
Code:
Natürlich geht Listview1.Items[2].Font.Style:=[fsbold]; nicht, aber ist das irgendwie möglich?procedure TForm1.Button1Click(Sender: TObject); begin listview1.Items.Add; listview1.Items[0].Caption:='xx'; listview1.Items.Add; listview1.Items[1].Caption:='xx'; listview1.Items.Add; listview1.Items[2].Caption:='xx'; Listview1.Items[2].Font.Style:=[fsbold]; end; Wäre ja sonst eine Wahnsinns arbeit, das alles mit CustomDrawItem zu synchronisieren, garnicht denkbar bei einer Liste mit tausenden Einträgen. |
Re: Einzelne ListView Einträge fett machen
Zitat:
|
Re: Einzelne ListView Einträge fett machen
Zitat:
|
Re: Einzelne ListView Einträge fett machen
|
Re: Einzelne ListView Einträge fett machen
Zitat:
|
Re: Einzelne ListView Einträge fett machen
Probier es doch aus
|
Re: Einzelne ListView Einträge fett machen
Hi,
ansonsten könntest du
Delphi-Quellcode:
zum Beispiel einen Record zuweisen, der dann beim Zeichnen des Items ausgelesen wird.
item.Data
Delphi-Quellcode:
type
PMyFont = ^TMyFont; TMyFont = Record Fett: boolean; FontSize: integer; end; ... private pItemFont: PMyFont; ... //zuweisen New(pItemFont); pItemFont^.Fett:= true; ListItem.Data:= pItemFont; ... procedure TForm1.LvCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); var ItemRect: TRect; begin ItemRect:= item.DisplayRect(drBounds); with TCustomListView(Sender) do begin ... Canvas.FillRect(ItemRect); if not PMyFont(item.Data)^.Fett then Canvas.Font.Style:=[] else Canvas.Font.Style:=[fsbold]; Canvas.TextOut(0,ItemRect.Top,Item.Caption); ... end; end; //wieder freigeben procedure TForm1.FormDestroy(Sender: TObject); var loop : integer; begin for loop := 0 to pred(lv.Items.Count) do begin pItemFont:= lv.Items.Item[loop].Data; DisPose(pItemFont); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:18 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