Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Font-settings bei TListView.Items ändern?
Mike_C - Fr 24.09.04 17:51
Titel: Font-settings bei TListView.Items ändern?
Hi
kann iman irgendwie die Font-settings von TListView.Items verändern? Also jedem Item eine andere Font geben? wenn ja wie?
Gruß Mike_C
GSE - Fr 24.09.04 17:53
selber zeichnen (Forumsuche)
mfg
GSE
Mike_C - Fr 24.09.04 18:02
tjy, die forumsuche hilft mir da leider nicht weiter. kann mir bitte jemand einen tipp geben, wie ich das selberzeichenen anstelle?
sourcehunter - Fr 24.09.04 20:23
Style auf lbOwnerDrawirgendwas stellen und im OnDrawItem-Ereignis Zeile selber malen.
Mike_C - Sa 25.09.04 13:34
Ok, das funktioniert teilweise:
also was ich mit meinem LitView vorhabe ist folgendes: ich möchte einen TaskManager schreiben, dem man eine List von Aufgaben geben kann, die bis zu einem gewissen Datum erledigt werden sollen. Also quasi ein elektronisches Aufgabenheft, um meine Zeitplanung für die Uni in den Griff zu bekommen. Jetzt sollen die Aufgaben entsprechend einiger Kriterien verschieden dargestellt werden, z.B. an hand des Datums soll entschieden werden, in welcher Farbe der Eintrag im Listview dargestellt wird. Wenn noch nenügend Zeit bleibt die Aufgabe zu erledigen, soll sie in grün geschriebnen werden, wenn die Zeit knapp wird in geld un wenn man vergessen hat die aufgabe zu erledigen, soll das in rot angezeigt werden.
mit den beiden Events CustomDrawItem und CustomDrawSubItem habe ich das ganze versucht zu realisieren, was bei CustomDrawItem auch funktioniert. nur werden die SubItems nicht angezeigt, wenn ich folgenden Code verwende
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| procedure TFormMain.lvAufgabenCustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean); var r, r2: TRect; m_Date: TDateTime; begin DefaultDraw := False;
r := Item.DisplayRect(drBounds); r2.Top := r.Top; r2.Left := r.Left + (SubItem+1)*Sender.Column[SubItem].Width; r2.Bottom := r.Bottom; r2.Right := r2.Left + Sender.Column[SubItem].Width; Sender.Canvas.Brush.Color := clSilver; Sender.Canvas.FillRect(r2);
m_Date := StrToDate (Item.SubItems[3]); if m_Date < Date then begin Sender.Canvas.Font.Color := clRed; Sender.Canvas.TextOut(r2.Left,r2.Top, Item.SubItems[SubItem]); end else if m_Date = Date then begin Sender.Canvas.Font.Color := clYellow; Sender.Canvas.TextOut(r2.Left,r2.Top, Item.SubItems[SubItem]); end else if m_Date > Date then begin Sender.Canvas.Font.Color := clGreen; Sender.Canvas.TextOut(r2.Left,r2.Top, Item.SubItems[SubItem]); end; end; |
kann mir jemand sagen warum?
Gruß MikeC
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!