![]() |
Actions einzeln oder mit Shared-Eventhandlern?
Hallo Mitstreiter!
Ein Freitagabend-Thread mit dem Thema übersichtlicher, lesbarer VCL code. Die Frage: Actions gruppieren (shared eventhandler) oder mit einzelnen Events? Damit meine Ich:
Delphi-Quellcode:
oder
procedure TfrmMain.acExecute(Sender: TObject);
begin inherited; //---------------------------------------------------------------------------- // buttons //---------------------------------------------------------------------------- // exit if (Sender = acExit) then begin Close; Exit; end; // foo if (Sender = acFoo) then begin DoFoo; Exit; end; end;
Delphi-Quellcode:
Bisher verwende ich die erste Variante, wobei das UI-Interface von der Anwendungslogik getrennt ist. Dies wird gelegentlich bei vielen Actions etwas lang, aber dank der Trennung bleibt es doch recht übersichtlich.
procedure TfrmMain.acCloseExecute(Sender: TObject);
begin DoSomething; end; procedure TfrmMain.acFooExecute(Sender: TObject); begin DoSomething; end; Was meint Ihr dazu, was ist sauberer und üblicher? Gruß Assertor |
Re: Actions einzeln oder gruppieren?
Hallo,
ist dir noch nicht aufgefallen, dass bei deiner bislang bevorzugten Methode 1 viele Vorteile einer TAction auf der Strecke bleiben? Die gemeinsame Caption für auslösende UI-Controls (Button, MenuItem) ist so nicht realisierbar. Die zeitlich abweichende Aktivierung und Deaktivierung unterschiedlicher Actions ist nicht möglich. Du scheinst so Spezialfälle zu lösen, die ich mir gerade nicht so gut vorstellen kann. Grüße vom marabu |
Re: Actions einzeln oder gruppieren?
Hi Marabu,
schön mal wieder von Dir zu lesen :hi: Zitat:
Es geht lediglich um die Zuweisung der Methoden für acExecute/acUpdate. Diese werden gruppiert um eine übersichtlichere Darstellung zu erzielen. Ich denke nämlich gerade umgekehrt wird ein Schuh daraus: Wenn man Actions anwendet, aber für jede Action einzeln ein acExecuteXYZ, acUpdateXYZ zuweist, wird der Code wieder unübersichtlich wie beim guten alten VCL OnEventXYZ. Stimmen Sie mir da nicht zu, Herr Kollege? :zwinker: Gruß Assertor |
Re: Actions einzeln oder gruppieren?
Ich fürchte ich habe deinen Thread-Titel falsch interpretiert. Wenn die Action-Komponenten diskret bleiben, dann ist alles okay.
Wenn du dich auf mehr Übersichtlichkeit durch shared event handler bei der VCL berufst, dann gilt das natürlich auch für TActions. Generalisieren mag ich diesen Ansatz aber nicht und ich muss auch feststellen, dass ich in meiner beruflichen Praxis noch keine Notwendigkeit für dieses Vorgehen bei TActions gesehen habe. Das mag deswegen sein, dass bei Edit- und anderen UI-Controls tatsächlich oft gleiche Code-Strecken auftauchen, so dass ein shared event handler die Wartbarkeit erhöht. Das Zusammenlegen mehrerer event handler ohne diese Motivation überzeugt mich nicht - zumindest nicht sofort. Freundliche Grüße |
Re: Actions einzeln oder gruppieren?
Hi,
Zitat:
Zitat:
Zitat:
Ich habe mir in den letzten Projekten angewöhnt, die UI-Interaktionen über die Actions laufen zu lassen. Update und Executes sind bei mir immer Shared-Eventhandler, also gruppiert. Es ist sicherlich ungewöhnlich, aber nicht verkehrt. Ich glaube mal einen ähnlichen Ansatz bei Troy Wolbrink (TntUnicode) oder Robert Lee (SpTBX) gesehen zu haben und bin von der Struktur begeistert. Es ähnelt in diesem Modellansatz ja einer kleinen Messagequeue ;) Gruß Assertor |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 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