TAChart rechte Maustaste

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 259
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

TAChart rechte Maustaste

Beitrag von h-elsner »

Beim TChart kann man mit gedrückter rechter Maustaste im Diagramm navigieren oder, wie soll ich sagen, das Diagramm im Chart-Fenster verschieben. Bei Windows kommt das Verschiebekreuz als Cursor und wenn man die rechte Maustaste losläßt verschwindet es wieder und das Verschieben ist beendet. So hätte ich das erwartet.

Bei gleichem Quelltext unter Linux (Linux Mint 18.3 (Mate) oder Lubuntu 32bit) kommt ein Art Hand als Cursor und man kann auch Verschieben. Soweit, so gut. Wenn man aber die rechte Maustaste loslässt, bleibt die Hand als Kursor und das Diagramm 'klebt' an der Maus und verschiebt sich weiter. Das ist besonders störend, wenn man ein Kontextmenü mit rechter Maustaste aufruft und dann das Diagramm and der Maus kleben bleibt und im Nirvana verschwindet.
Das Verhalten ist unabhängig davon, ob ich das Ereignis OnMouseUp mit einer eigenen Pozedur verbunden habe oder nicht. Ebenso mit/ohne PopUp Menü.
Ich hätte erwartet, dass beim Loslassen der rechten Maustaste die Funktion auch bei LINUX beendet ist, also so wie in der Windows Oberfäche.

Kann mas irgendwie Abstellen? Gibt es eine Eigenschaft oder eine Funktion, um das Verschieben zu beenden.

Gruß HE

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

Re: TAChart rechte Maustaste

Beitrag von wp_xyz »

Ich habe das noch nie gesehen und kann es auch nicht verifizieren. Die mir zur Verfügungen stehenden Linuxe (Ubuntu 18.04 / 64 bit, Mint 18.1 KDE / 32 bit, fedora 20) zeigen den Fehler nicht. Allerdings sehe ich gelegentlich, dass bei Mint der Hand-Cursor nach dem Loslassen der Maustaste nicht zurückgesetzt wird, allerdings ohne Klebenbleiben des Chart.

Falls du das Zoomen und Verschieben nicht benötigst, kann du das alles mit dem Property "AllowZoom" abschalten. Oder du kannst eine andere Tastenkombination festlegen. Dazu musst du ein TChartToolset auf das Formular klicken und mit der Eigenschaft "Tools" des Chart verbinden. Per Doppelklick auf dem Toolset kannst du dann Tools für Zoom und Pan hinzufügen. Jedes Tool hat eine Eigenschaft "Shift", wo du Shift, Ctrl, Alt und Maustasten eintragen kannst, um das Tool zu aktivieren. Um Zoomen wie bisher bei der linken Maustaste zu lassen, musst du ein TZoomDragTool dem Toolset hinzufügen (1. Eintrag in der Combobox, "Zommen (!) durch Ziehen" - immer diese Tippfehler!) und unter "Shift" das Element [ssLeft] markieren. Wenn du kein Pan-Tool hinzufügst, kannst du damit nur Zoomen. Wenn du auch verschieben willst, könntest du z.B. auch auf die linke Maustaste gehen und zur Unterscheidung mit Zoom erzwingen, dass die CTRL-Taste gedrückt sein muss. Dazu fügst du ein TPanDragTool ("Verschieben durch Ziehen") dem Toolset hinzu und setzst "Shift" auf ssLeft und zusätzlich ssCtrl. Da sind deiner Phantasie keine Grenzen gesetzt.

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 259
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: TAChart rechte Maustaste

Beitrag von h-elsner »

Vielen Dank für die schnelle Antwort. Du hast Recht, dass der Kursor nicht wiederhergestellt wird, habe ich auch. Ich habe es jetzt grad beim Lubuntu mit LXDE ausprobiert.

AllowZoom:=false ändert nichts an dem Verhalten. Nur das Zoomen geht dann nicht mehr, das Verschieben mit der rechten Maustaste bleibt.

Rechte Maustaste im Chart --> das Diagramm kann verschoben werden --> Maustaste loslassen, Kursor bleibt als Hand, aber das Diagramm wird weiter mit der Maus verschoben --> linke Maustaste, der Kursor bleibt die Hand (das ist dann wohl der Fehler wie beim Mint), aber das Verschieben des Diagramms ist beendet, so wie es gleich beim Loslassen sein sollte.

Das ist so bei Lazarus 1.8.2 und 1.8.4. Vielleicht sollte ich es mal mit einer höheren Version versuchen. Ich melde mich, wie es da aussieht.
Das mit dem Toolset, dazu muss ich unbedingt mal aufraffen. Ich mache noch zu viele Sachen herkömmlich (z.B. mit ReticuleMode), also ohne Toolset und dafür mit schmutzigen mit Tricks. Danke für die Anleitung.

Gruß HE

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

Re: TAChart rechte Maustaste

Beitrag von wp_xyz »

h-elsner hat geschrieben:AllowZoom:=false ändert nichts an dem Verhalten. Nur das Zoomen geht dann nicht mehr, das Verschieben mit der rechten Maustaste bleibt.

Oh, ich hatte in Erinnerung immer, dass AllowZoom das eingebaute Toolset deaktiviert, über das defaultmäßige Zoom und Verschieben realisiert werden, so dass AllowZoom.

h-elsner hat geschrieben:Ich mache noch zu viele Sachen herkömmlich (z.B. mit ReticuleMode)

Einige Sachen sind schon seit einiger Zeit als "deprecated" markiert, und die fallen in der neuen Version 2.0 raus. Reticule etc sind nun in v2.0 "deprecated" und werden wahrscheinlich in v2.2 über Bord gehen - also schau dir das Toolset an, es gibt auch ein Tutorial (http://wiki.lazarus.freepascal.org/TACh ... hart_Tools).

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 259
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: TAChart rechte Maustaste

Beitrag von h-elsner »

Einige Sachen sind schon seit einiger Zeit als "deprecated" markiert


Ja, ich weiß. Du hattest mich schon einmal ermahnt. Jetzt muss ich langsam!

Gruß HE

Antworten