Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi FMX TStringGrid wie reagiert man auf einen Rechtsklick/Kontextmenü (https://www.delphipraxis.net/211333-fmx-tstringgrid-wie-reagiert-man-auf-einen-rechtsklick-kontextmenue.html)

QuickAndDirty 31. Aug 2022 16:31

FMX TStringGrid wie reagiert man auf einen Rechtsklick/Kontextmenü
 
Hallo,
Ich möchte HeaderSpalten über einen Rechtsklick ausblenden oder einblenden. Dazu möchte ich im Falle eines Rechtsklicks ein Kontextmenü einblenden.
Die Ereignisse OnCellClick und OnHeaderClick reagieren nur auf die linke Maustaste.
Evtl. wäre auch das Verknüpfen der Columns mit "bin" icons und "+" icons eine Lösung wenn das FMX TStringgrid das unterstützt...wäre toll wenn das dann nicht alles zufuss gelöst werden müsste.
Vielleicht gibts eine "erweiterte" Editierbarkeits Eigenschaft?
Oder ein nicht veröffentlichtes OnMouseDown Ereignis?

Sprich was sollte ich tun?

Harry Stahl 31. Aug 2022 22:48

AW: FMX TStringGrid wie reagiert man auf einen Rechtsklick/Kontextmenü
 
Du kannst für das Stringgrid Dir selber ein OnMouseDown (oder MouseUp) Event anlegen und im Formcreate das Event zur Laufzeit zuweisen und im Event dann prüfen, ob linke oder rechte Maustaste gedrückt wurde.

Der Header ist da aber nicht mit einbezogen, da gibt es meines Wissens keine Möglichkeit auf einen Rechtsklick zu reagieren.

Das einfachste wäre vielleicht ein Pop-Menü dem Stringgrid zuzweisen, das wird bei Rechtsklick auf das Grid selber angezeigt (dann brauchst Du das obige Event allerdings nicht - wenn Du es doch nimmst, musst Du das PopUp-Menü selber anzeigen lassen).

peterbelow 1. Sep 2022 12:57

AW: FMX TStringGrid wie reagiert man auf einen Rechtsklick/Kontextmenü
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1511058)
Hallo,
Ich möchte HeaderSpalten über einen Rechtsklick ausblenden oder einblenden. Dazu möchte ich im Falle eines Rechtsklicks ein Kontextmenü einblenden.
Die Ereignisse OnCellClick und OnHeaderClick reagieren nur auf die linke Maustaste.
Evtl. wäre auch das Verknüpfen der Columns mit "bin" icons und "+" icons eine Lösung wenn das FMX TStringgrid das unterstützt...wäre toll wenn das dann nicht alles zufuss gelöst werden müsste.
Vielleicht gibts eine "erweiterte" Editierbarkeits Eigenschaft?
Oder ein nicht veröffentlichtes OnMouseDown Ereignis?

Sprich was sollte ich tun?

Darf ich fragen wieso Du in einer FMX-Anwendung ein Feature einbauen willst, das auf nicht-Windows Platformen nicht funktionieren kann? (Wie macht man einen "rechts Klick" auf einem Touchscreen?).

Rollo62 1. Sep 2022 13:24

AW: FMX TStringGrid wie reagiert man auf einen Rechtsklick/Kontextmenü
 
Zitat:

Zitat von peterbelow (Beitrag 1511095)
Wie macht man einen "rechts Klick" auf einem Touchscreen?).

Man könnte einen "LongPress" einer Taste/Eingabe dafür nutzen, um einen Rechtsclick zu simulieren.
Das wird ja meistens nicht verwendet, ist natürlich auf Tablets usw. auch nicht besonders intuitiv.

QuickAndDirty 1. Sep 2022 14:49

AW: FMX TStringGrid wie reagiert man auf einen Rechtsklick/Kontextmenü
 
Zitat:

Zitat von peterbelow (Beitrag 1511095)
Darf ich fragen wieso Du in einer FMX-Anwendung ein Feature einbauen willst, das auf nicht-Windows Platformen nicht funktionieren kann? (Wie macht man einen "rechts Klick" auf einem Touchscreen?).

Die Anwendung gibt es nur als Windows Executable. Und ich bin hochgradig überzeugt von Kontextmenüs.

QuickAndDirty 1. Sep 2022 14:52

AW: FMX TStringGrid wie reagiert man auf einen Rechtsklick/Kontextmenü
 
Zitat:

Zitat von Harry Stahl (Beitrag 1511072)
Du kannst für das Stringgrid Dir selber ein OnMouseDown (oder MouseUp) Event anlegen und im Formcreate das Event zur Laufzeit zuweisen und im Event dann prüfen, ob linke oder rechte Maustaste gedrückt wurde.

Der Header ist da aber nicht mit einbezogen, da gibt es meines Wissens keine Möglichkeit auf einen Rechtsklick zu reagieren.

Das einfachste wäre vielleicht ein Pop-Menü dem Stringgrid zuzweisen, das wird bei Rechtsklick auf das Grid selber angezeigt (dann brauchst Du das obige Event allerdings nicht - wenn Du es doch nimmst, musst Du das PopUp-Menü selber anzeigen lassen).

OK das geht nur wen ich keine Zelle im Grid anklicke. Zumindest reagiert der Header des Gitters nicht auf die Rechtsklicks.

peterbelow 2. Sep 2022 11:11

AW: FMX TStringGrid wie reagiert man auf einen Rechtsklick/Kontextmenü
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1511101)
Zitat:

Zitat von peterbelow (Beitrag 1511095)
Darf ich fragen wieso Du in einer FMX-Anwendung ein Feature einbauen willst, das auf nicht-Windows Platformen nicht funktionieren kann? (Wie macht man einen "rechts Klick" auf einem Touchscreen?).

Die Anwendung gibt es nur als Windows Executable. Und ich bin hochgradig überzeugt von Kontextmenüs.

Warum dann FMX und nicht VCL?

Medium 3. Sep 2022 00:20

AW: FMX TStringGrid wie reagiert man auf einen Rechtsklick/Kontextmenü
 
Zitat:

Zitat von peterbelow (Beitrag 1511144)
Warum dann FMX und nicht VCL?

Bin nicht der Fragesteller, aber mache das gleiche: Desktop only mit FMX. Grund ist, dass es eben auch für reine Desktopanwendungen ein Weg ist gewisse Dinge deutlich einfacher und überhaupt erst zu machen, da dort Sachen möglich sind, die die antike VCL schlicht nicht bieten kann, bzw. wenn nur über horrende Klimmzüge. Hauptgrund für mich war das absolut schwerzfreie Ermöglichen von Anwendungen die skalieren können - Sonderfall weil für Anlagenvisualisierungen, bei denen die GUI in vielen Punkten nicht einer üblichen Anwendung entsprechen, aber dennoch ein guter Grund, finde ich.
Auch wenn auch ich bereits öfter über die Mobile-Ausrichtung des Frameworks gestolpert bin, und mir manchmal darüber die Haare raufe, dass Dinge die vergleichbare Controls in der VCL seit über 10 Jahren standardmäßig können, da auf ein Mal komplett außer Acht gelassen wurden. Zudem: Wenn es nicht gewünscht gewesen wäre FMX auf echten PCs zu nutzen, hätte man das einfach nicht zulassen können seitens Emba. Haben sie aber, also sollte es auch PC-gemäßes Handling unterstützen. (Was es weitgehend ja auch tut, aber an solchen "Details" kann man schon anecken.)

QuickAndDirty 6. Sep 2022 09:57

AW: FMX TStringGrid wie reagiert man auf einen Rechtsklick/Kontextmenü
 
Zitat:

Zitat von peterbelow (Beitrag 1511144)
Zitat:

Zitat von QuickAndDirty (Beitrag 1511101)
Zitat:

Zitat von peterbelow (Beitrag 1511095)
Darf ich fragen wieso Du in einer FMX-Anwendung ein Feature einbauen willst, das auf nicht-Windows Platformen nicht funktionieren kann? (Wie macht man einen "rechts Klick" auf einem Touchscreen?).

Die Anwendung gibt es nur als Windows Executable. Und ich bin hochgradig überzeugt von Kontextmenüs.

Warum dann FMX und nicht VCL?

Weil FMX vieles einfach besser als VCL kann.
Plus ich kann Oberflächen Elemente aus der Mobilen App , einfach aus kopieren und in die Windows Anwedung von der aus die mobile App-administriert wird einfügen ohne alles neu bauen zu müssen.
Ich finds auch total störend, dass ich das mit VCL Anwendungen nicht machen kann.
Ist aber jetzt schon gelöst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz