![]() |
Delphi-Version: 12 Athens
[FMX] wie Button.Click aufrufen?
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? :gruebel: Aber bin wenigstens nicht der Einzige. ![]() |
AW: [FMX] wie Button.Click aufrufen?
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 :wink: |
AW: [FMX] wie Button.Click aufrufen?
Zitat:
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. |
AW: [FMX] wie Button.Click aufrufen?
Dort ist nicht viel drin, aber zu Debugzwecken wollte ich das vorhin nun einfach beim Start automatisch ausgelöst haben. :oops:
quasi
Delphi-Quellcode:
und nun ist das einfach
procedure TFormMain.FormShow(Sender: TObject);
begin if IsDebuggerPresent then ButtonStart.Click; end;
Delphi-Quellcode:
was ich aber noch schlimmer finde, als das oben.
ButtonStartClick(nil);
Das ist aktuell ein kleines Testprojekt, was nur aus einem Grid, einem Button und zwei drei Prozeduren plus dem OnShow besteht. |
AW: [FMX] wie Button.Click aufrufen?
Zitat:
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:07 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