ViertualTreeView mit Mausklick und Tastendruck verwenden

Rund um die LCL und andere Komponenten
Antworten
catweasel
Beiträge: 230
Registriert: Di 17. Mär 2009, 10:51
OS, Lazarus, FPC: Win10 64Bit // Linux Mint 20.0 - (L 2.2.0 FPC 3.2.2)

ViertualTreeView mit Mausklick und Tastendruck verwenden

Beitrag von catweasel »

Hallo

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;

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: ViertualTreeView mit Mausklick und Tastendruck verwenden

Beitrag von theo »

Da müsstest du wohl ein Demo Projekt anhängen.
Bedenke, dass bei VTV der Doppelklick standardmässig für das Aufklappen der Baumknoten da ist.

catweasel
Beiträge: 230
Registriert: Di 17. Mär 2009, 10:51
OS, Lazarus, FPC: Win10 64Bit // Linux Mint 20.0 - (L 2.2.0 FPC 3.2.2)

Re: ViertualTreeView mit Mausklick und Tastendruck verwenden

Beitrag von catweasel »

theo hat geschrieben:Bedenke, dass bei VTV der Doppelklick standardmässig für das Aufklappen der Baumknoten da ist.
Da hab´ ich auch schon dran gedacht das dies vielleicht die Ursache ist.
Könnte man vorübergehend die Funktion deaktivieren das Alt für den Baumknoten zuständig ist? -- Nachtrag: Das ist Quatsch

wp_xyz
Beiträge: 5139
Registriert: Fr 8. Apr 2011, 09:01

Re: ViertualTreeView mit Mausklick und Tastendruck verwenden

Beitrag von wp_xyz »

Ich habe das auch schon gesehen. Auch die Demos, die der Komponente beiliegen, zeigen, dass man VTV zur Zeit nicht mit der Maus bedienen kann. Ich meine, dass beim Mausclick der Offset durch den obersten Node nicht berücksichtigt wird, denn solange der erste TreeNode noch ganz oben ist, trifft man mit der Maus. Ich habe dazu seit einer Wcche einen Bugreport im BugTracker (http://bugs.freepascal.org/view.php?id=26590). Bei einem anderen Bugreport (http://bugs.freepascal.org/view.php?id=26589) schreibt der Autor, dass er VTV zur Zeit an die Delphi-Version 5 anpasst und daher davor warnt, die Trunk-Version produktiv zu verwenden. Daher müssen wir halt etwas Geduld haben...

catweasel
Beiträge: 230
Registriert: Di 17. Mär 2009, 10:51
OS, Lazarus, FPC: Win10 64Bit // Linux Mint 20.0 - (L 2.2.0 FPC 3.2.2)

Re: ViertualTreeView mit Mausklick und Tastendruck verwenden

Beitrag von catweasel »

wp_xyz hat geschrieben:Ich habe dazu seit einer Wcche einen Bugreport im BugTracker (http://bugs.freepascal.org/view.php?id=26590). Bei einem anderen Bugreport (http://bugs.freepascal.org/view.php?id=26589) schreibt der Autor, dass er VTV zur Zeit an die Delphi-Version 5 anpasst und daher davor warnt, die Trunk-Version produktiv zu verwenden. Daher müssen wir halt etwas Geduld haben...
Danke für die Info

Gruß
Michael

Antworten