![]() |
Verhinderung der Selektierung in ListView-Komponente
Hallo,
ich habe eine ListView-Komponente mit 3 Spalten und diversen Zeilen, wobei ich die Komponente ausschließlich zum Anzeigen von Inhalten verwenden möchte. Die ReadOnly-Eigenschaft ist deshalb aktiviert. Trotzdem kann der Anwender einzelne Einträge in Spalten selektieren. Gibt es eine Möglichkeit, die Selektierung zu unterbinden? In den Properties habe ich nichts vergleichbares dazu gefunden. Danke für Eure Ideen... |
AW: Verhinderung der Selektierung in ListView-Komponente
ReadOnly hat natürlich nichts mit der Selektierung zu tun. :zwinker:
Nur weil ich in einer Zeitung nichts ändern darf, kann ich dennoch eine Zeitung/Seite auswählen. (aus'm Regal holen) Und so Events ala OnChange oder OnChanging haben dir nicht gefallen? TEdit.ReadOnly und man darf dennoch den Focus darauf setzen, bzw. die Selection ändern. |
AW: Verhinderung der Selektierung in ListView-Komponente
Hallo,
Zitat:
Delphi-Quellcode:
-Property nun gar nichts mit der Selektion von Listeneinträgen zu tun hat; diese Property beeinflusst nur das Verhalten - änderbar oder eben nicht - der Property
ReadOnly
Delphi-Quellcode:
eines Listeneintrags.
Caption
Zitat:
Delphi-Quellcode:
wird vermutlich Dein Freund sein. Ein:
OnChanging
Delphi-Quellcode:
unterbindet jede Änderung am entsprechenden Listeneintrag; und, wenn das "Hovering" (ich glaube ab Windows Vista) der Listeneinträge stören sollte, dann mit:
procedure TForm1.ListView1Changing(Sender: TObject; Item: TListItem; Change: TItemChange; var AllowChange: Boolean);
begin AllowChange := False end;
Delphi-Quellcode:
"abschalten".
procedure TForm1.ListView1AdvancedCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage; var DefaultDraw: Boolean);
var r : TRect; c : TCanvas; begin if (cdsHot in State) and (Stage = cdPostPaint) then begin r := Item.DisplayRect (drSelectBounds); c := ListView1.Canvas; c.FillRect (r); Inc (r.Left, 2); Inc (r.Top, 2); c.TextOut (r.Left, r.Top, Item.Caption) end end; Gruß |
AW: Verhinderung der Selektierung in ListView-Komponente
Was ist eigentlich so verwerflich daran, einzelne Einträge selektieren zu können? Wird mir das verwehrt, kann ich einzelne Einträge auch nicht kopieren.
|
AW: Verhinderung der Selektierung in ListView-Komponente
@Volker:
dein ListView1AdvancedCustomDrawItem-Beispiel funktioniert soweit ganz gut und wenn ich mit der Maus über die Listview-Komponente gleite, wird auch nichts mehr selektiert (das scheint dieses Hovering zu sein). Wenn ich jedoch einen Eintrag in der ersten Spalte markieren möchte und draufklicke, wird die Selektierung trotzdem durchgeführt. Dann äußert sich das Hovering jedoch, indem teilweise ein schwarzer Feld Hintergrund angezeigt wird. Das Setzen von AllowChange:=False innerhalb ListView1Changing führt sogar dazu, dass in der ersten Spalte nur dann ein Eintrag angezeigt wird, wenn die Maus sich darüber befindet. Sonst ist Spalte 1 leer. Hast Du eine Idee, woran es liegen könnte? |
AW: Verhinderung der Selektierung in ListView-Komponente
Hallo,
Zitat:
Delphi-Quellcode:
gesetzt - schon
RowSelect
Delphi-Quellcode:
oder?
False
Zitat:
Gruß |
AW: Verhinderung der Selektierung in ListView-Komponente
Ich hab inzwischen zur TMS AdvListView Komponente gewechselt und im nächsten Update soll es eine Eigenschaft geben, die eine Selektierung verhindert.
Danke trotzdem für deine Hilfe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11: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 by Thomas Breitkreuz