Autor Beitrag
Lex
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 16.01.06 22:18 
Hallo,
ich steh grad auf dem Schlauch...

Ich habe eine Listview (Style Report) und kann die einzelnen Einträge
per Mausklick auswählen.

Das möchte ich nun in bestimmten Fällen verhindern. Wenn der gerade
aktive Eintrag einen bestimmten Wert hat soll es nicht möglich sein
einen anderen Eintrag auszuwählen.

Nur - wie mache ich das? Es gibt kein "OnBeforeSelection" oder sowas.
Kann mir jemand weiterhelfen?

DANKE!

Lex
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10184
Erhaltene Danke: 1259

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 16.01.06 23:12 
Moin!

Hm, Vorschlag: merk dir im OnClick, was aktuell ausgewählt ist; beim nächsten OnClick schaust du vor den "normalen" Aktionen, ob dir die neue Auswahl passt; wenn nicht, zurücksetzen auf den letzten Wert. Sollte klappen.

Setz das LiestView im Zweifelsfall auf .Enabled := FALSE; :wink:

cu
Narses
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Di 17.01.06 01:38 
Hallo,

oder nimm das Ereignis OnChanging, das leistet in diesem Zusammenhang oft sehr gute Dienste.

Du kannst z.B. die Tag-Eigenschaft der ListView als Flag nutzen,
entspricht der markierte Eintrag dem Wert, dann auf 1 setzen, sonst auf 0.

Dann kann folgender Code zum Einsatz kommen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.ListView1Changing(Sender: TObject; Item: TListItem;
  Change: TItemChange; var AllowChange: Boolean);
begin
  if ListView1.Tag = 1 then
    AllowChange := False
    else
      AllowChange := True;
end;

Dann kann nur noch wenn ListView.Tag 0 ist, ein anderes Item gewählt werden.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )