![]() |
TListView - Zellen verbinden
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich habe eine TListView mit
Delphi-Quellcode:
In manchen Zeilen sollen die Zellen mit verschiedener Hintergrundfarbe verbunden werden.
ViewStyle:=vsReport;
GridLines:=true; Ich verwende
Delphi-Quellcode:
Das Problem ist nun, dass 1. die GridLines angezeigt werden und 2. der Text nicht erscheint.
procedure TKabOpTerminManager.ListViewSucheCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var x,y:Integer; Rect:TRect; begin if TMiniTermin(Item.Data).InfoText<>'' then begin Sender.Canvas.Brush.Color:=stringToColor(TMiniTermin(Item.Data).Farbe); Rect:=Item.DisplayRect(drBounds); y:= Rect.Top; x:= Rect.Left + 2; Rect.Right:=Rect.Left+Sender.Width-10; Sender.Canvas.Brush.Style := bsSolid; Sender.Canvas.FillRect(Rect); Sender.Canvas.TextRect( Rect, x, y, TMiniTermin(Item.Data).InfoText ); end; end; Erst wenn ich die Maus "wild" über die Fläche bewege, wird die Zeile irgendwann ausgefüllt und der Text wird sichtbar. Ich hatte es auch schon mit OwnerDraw:=true und onDrawItem versucht, da erscheint der Text zwar von Anfang an, aber die Gridlines sind dennoch sichtbar. Hat jemand eine Idee?? Christof |
AW: TListView - Zellen verbinden
Hallo,
vielleicht hilft dir dieser ![]() [Edit] sorry - Missverständnis! - das hilft dir nicht wirklich weiter [Edit2] ich hätte noch diesen Beispiel-Code anzubieten:
Delphi-Quellcode:
Im nicht markierten Zustand Hintergrundfarbe rot, im markierten Zustand blau und dann ohne GridLines.
procedure TForm3.ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean); var x, y: Integer; Rect: TRect; begin Sender.Canvas.Brush.Color := clRed; If Item.Selected then begin Sender.GridLines := false; Sender.Canvas.Brush.Color := clBlue; Sender.Canvas.Brush.Style := bsSolid; end; Rect := Item.DisplayRect(drBounds); y := Rect.Top; x := Rect.Left + 2; // Rect.Right := Rect.Left + Sender.Width - 10; Sender.Canvas.FillRect(Rect); Sender.Canvas.TextRect( Rect, x, y, Item.Caption ); // DefaultDraw := false; end; Dummerweise scheint es nicht ohne alle auszublenden zu funktionieren. |
AW: TListView - Zellen verbinden
Hallo und danke,
werde es am Freitag in der Arbeit testen. |
AW: TListView - Zellen verbinden
Hallo,
funktioniert leider nicht wie gewünscht. Die "verbundenen" Zellen werden auch in dieser Variante durch die Gridlines "getrennt". Ich denke, ich stelle auf ein StringGrid um. Trotzdem danke Christof |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 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