Mir ist hier bei der VirtualTreeView Komponente noch etwas aufgefallen, das ich mir nicht erklären kann.
Ich will mit einem Doppelklick auf eine Zeile den Inhalt eines Feldes auslesen und etwas damit machen.
Dabei habe ich jetzt festgestellt das wenn ich eine andere als die aktuell markierte Zeile anklicke, die neue Zeile nur dann markiert wird wenn ich den Doppelklick gleichzeitig mit den Tasten Shift oder Ctrl mache, jedoch nicht bei der Alt Taste.
Verwende ich den Doppelklick mit der Alt-Taste bleibt die zuvor markierte Zeile markiert, aber nicht die neue die ich angeklickt habe.
Ich hoffe ich habe das halbwegs verständlich beschrieben.
Wie kann denn das sein? Mache ich da noch etwas falsch?
Ich habe hier ein minimalistisches Beispiel das bei mir entsprechend funktioniert. Mein VirtualTreeView ist die Version 4.8.7-LCL-R2
Gruß
Michael
Code: Alles auswählen
procedure TMainForm.VSTMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Node : PVirtualNode;
Data : PTreeData;
begin
Node:=VST.FocusedNode;
if not Assigned(Node) then Exit;
if ssDouble in Shift then begin
if ssCtrl in Shift then begin
showmessage('Doppelklick + Ctrl');
exit;
end;
if ssShift in Shift then begin
showmessage('Doppelklick + Shift');
exit;
end;
if ssAlt in Shift then begin
showmessage('Doppelklick + Alt');
exit;
end;
showmessage('Doppelklick ohne Taste');
end; //if ssDouble in Shift
end;