AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[FMX] wie Button.Click aufrufen?

Ein Thema von himitsu · begonnen am 30. Aug 2025 · letzter Beitrag vom 30. Aug 2025
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.685 Beiträge
 
Delphi 12 Athens
 
#1

[FMX] wie Button.Click aufrufen?

  Alt 30. Aug 2025, 07:08
Delphi-Version: 12 Athens
Moin Moin,

was ist bitte der offizielle Weg, ein Button.Click im FMX auszulösen?
Das ist ja protected, als wenn jemand nicht wöllte, dass man es macht. (nicht ausversehn vergessen, denn auch andere Methoden sind protected, selbst in anderen Komponenten)

* In der VCL ist auch Vieles im TCustomIrgendwas noch protected, aber wird TIrgendwas dann public oder gar published. (nur hier nicht)
* ja, ich kann Casten
* könnte anderes Aufrufen, was wiederum Click aufruft, aber die sind auch ALLE protected
* SendMessage/PostMessage/Perfom fällt auch aus
* eine Action anhängen und da ein Excecute
* einen Mausklick auslösen/simmulieren (auf der echten Maus, weil auch MouseDown und Co. ebenfalls protected sind)
* manuell ganz persönlich draufklicken
* oder direkt die OnClick-Methode aufrufen
* ...

Kann doch nicht sein, dass bisher nur wenige sowas machen wollten?
Aber bin wenigstens nicht der Einzige.
https://stackoverflow.com/questions/...-in-firemonkey
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (30. Aug 2025 um 07:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Cypheros
Cypheros

Registriert seit: 12. Sep 2024
Ort: Büren
42 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: [FMX] wie Button.Click aufrufen?

  Alt 30. Aug 2025, 09:17
Das ist einer der Gründe warum ich FMX ungern einsetze. Es fühlt sich einfach so fremd an. Viele Selbstverständlichkeiten beim Arbeiten mit VCL, sind unter FMX unnötig kompliziert oder wenig nicht intuitiv.

Allerdings sollte man auch keine umfangreichen Prozeduren in Events packen, sondern dazu eine eigene Prozedur schreiben, die dann über den Event (OnClick) oder eben einer anderen Routine aufgerufen werden kann. Ist vielleicht eine erzieherische Maßnahme von Emba
Frank Siek
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.105 Beiträge
 
Delphi 12 Athens
 
#3

AW: [FMX] wie Button.Click aufrufen?

  Alt 30. Aug 2025, 10:18
was ist bitte der offizielle Weg, ein Button.Click im FMX auszulösen?
Das ist ja protected, als wenn jemand nicht wöllte, dass man es macht.
Da das kein sauberer Code ist, finde ich es schon gut, dass es diesen Weg nicht gibt. Ich finde es im Gegenteil äußerst fragwürdig, dass es das in der VCL gibt.

Dieses ganze Klammern von zu viel Code direkt an GUI-Elemente ist leider ein negativer Effekt der WYSIWYG-IDE. Sauber ist, wenn man im Klick-Event eine sauber benannte Methode aufruft, die auch aussagt, was dort passiert. Und noch besser ist, wenn diese gar nicht in der gleichen Unit liegt, bzw. zumindest der Logik-Teil außerhalb der GUI-Logik woanders liegt. Und die ruft man dann überall auf, wo das passieren soll.

Wenn man diese Trennung von GUI und Logik sauber macht, vermisst man auch nicht Methoden wie Click.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.685 Beiträge
 
Delphi 12 Athens
 
#4

AW: [FMX] wie Button.Click aufrufen?

  Alt 30. Aug 2025, 10:27
Dort ist nicht viel drin, aber zu Debugzwecken wollte ich das vorhin nun einfach beim Start automatisch ausgelöst haben.

quasi
Delphi-Quellcode:
procedure TFormMain.FormShow(Sender: TObject);
begin
  if IsDebuggerPresent then
    ButtonStart.Click;
end;
und nun ist das einfach ButtonStartClick(nil); was ich aber noch schlimmer finde, als das oben.



Das ist aktuell ein kleines Testprojekt, was nur aus einem Grid, einem Button und zwei drei Prozeduren plus dem OnShow besteht.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (30. Aug 2025 um 10:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.105 Beiträge
 
Delphi 12 Athens
 
#5

AW: [FMX] wie Button.Click aufrufen?

  Alt 30. Aug 2025, 12:23
und nun ist das einfach ButtonStartClick(nil); was ich aber noch schlimmer finde, als das oben.
Ist es ja auch, aber es geht mit kaum mehr Aufwand ja auch sauber, Testprojekt hin oder her:
Delphi-Quellcode:
procedure TFormMain.StartRunningCalculation;
begin

end;

procedure TFormMain.ButtonStartClick(Sender: TObject);
begin
  StartRunningCalculation;
end;

procedure TFormMain.FormShow(Sender: TObject);
begin
  if IsDebuggerPresent then
    StartRunningCalculation;
end;
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz