![]() |
Problem mit TListview-OnDrawItem
Hi,
ich versuche gerade einzelne Items der Listview zu im Stil zu verändern. Ich versuche das so: Ich habe ein kleines Record, in dem ich den stil (z.B. fsbold oder was auch immer) eintragen kann. Wenn ich nun ein Item hinzufüge, dann füge ich per AddObject als erstes SubItem praktisch einen Pointer auf das Object, also auf das Record. Das funktioniert auch soweit. Nur versuche ich jetzt dementsprechend zu "malen". Doch das wiederum klappt nicht so ganz :Sad: Ich mal das Record und die OnDraw-Methode der Listview:
Delphi-Quellcode:
Ich glaube das war alles. Es gibt auch keine Fehler bis auf, dass halt nicht funktioniert... :mrgreen:
TToDo = record
Style: TFontStyle; end; PToDo = ^TToDo; { Ein Item hinzufügen: } procedure TEditorWND.Button2Click(Sender: TObject); var ToDo1 : PToDo; begin new(ToDo1); Item := MainForm.EDIT_ToDo.Items.Add; Item.Caption := Editor.Text; Item.SubItems.AddObject(Editor.Text, TObject(ToDo1)) end; {...} procedure TMainForm.Edit_ToDoDrawItem(Sender: TCustomListView; Item: TListItem; Rect: TRect; State: TOwnerDrawState); begin with Sender as TListview do begin Canvas.Brush.Color := clYellow; Canvas.FillRect(Rect); Canvas.Font.Style := [PToDo(Item.SubItems.Objects[0])^.Style]; Canvas.TextOut(Rect.Left + 2, Rect.Top, Item.Caption); end; end; Ich hoffe ihr könnt mir helfen |
Re: Problem mit TListview-OnDrawItem
was genau funktioniert nicht?? Werden nur die Einstellungen aus dem Record nicht verwendet oder wird auch gelb nicht gesetzt??
|
Re: Problem mit TListview-OnDrawItem
Also wie gesagt gibt es keine Fehler, das eintragen ins Record klappt auch wunderbar, nur das ändern des Styles, klappt nicht :?
Wäre nett wenn du mir helfen könntest. |
Re: Problem mit TListview-OnDrawItem
laut deiner Anweisung sieht es so aus als ob du den hintergrund vom Item gelb machen willst?!
wenn ich in die Ereignisprocedure "ListView1CustomDrawItem" bekommt das Item auch den entsprechenden Hintergrund und Style
Delphi-Quellcode:
wenn ich allerdings was in OnDrawItem schreibe wird das komplett ignoriert... probiers also mal mit "ListView1CustomDrawItem"
with Sender as TListview do
begin Canvas.Brush.Color := clGreen; Canvas.Font.Style := [fsItalic]; end; |
Re: Problem mit TListview-OnDrawItem
Jupp, du hast recht. Danke :-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00: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