AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Korreekte Verwendung TActionList.OnUpdate / TAction.OnUpdate
Thema durchsuchen
Ansicht
Themen-Optionen

Korreekte Verwendung TActionList.OnUpdate / TAction.OnUpdate

Ein Thema von BigAl · begonnen am 25. Aug 2022 · letzter Beitrag vom 26. Aug 2022
 
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
495 Beiträge
 
Delphi 12 Athens
 
#1

Korreekte Verwendung TActionList.OnUpdate / TAction.OnUpdate

  Alt 25. Aug 2022, 06:19
Hallo zusammen,

ich hoffe ich bin mit dem Thema hier richtig. Die Actions betreffen ja im Wesentlich die Controls GUI (Controls).

Ich habe eine grundsätzlich Frage zu den Actions bzw. wie implementiert ihr üblicherweise das OnUpdate. Bisher habe ich die Verwaltung der Zustände der Aktionen immer in die zentrale TActionList.OnUpdate verfrachtet. Also:
Delphi-Quellcode:
procedure TfrmSomething.ActionListUpdate(Action: TBasicAction; var Handled: Boolean);
begin
  aAction1.Enabled := ...;
  aAction2.Enabled := ...;
  usw.

  Handled := True;
end;
Das müsste aber kontraproduktiv zu sein, da das OnUpdate wohl für jede Aktion einmal aufgerufen wird. Eine Alternative wäre:
Delphi-Quellcode:
procedure TfrmSomething.ActionListUpdate(Action: TBasicAction; var Handled: Boolean);
begin
  if Action = aAction1 then
    aAction1.Enabled := ...
  else if Action = aAction2 then
    aAction2.Enabled := ...
  usw.

  Handled := True;
end;
Das ist aber auch irgendwie umständlich bzw. macht den Code unübersichtlich. Die dritte Alternative wäre das TActionList.OnUpdate nicht zu verwenden und stattdessen die Zustandsverwaltung mit TAction.OnUpdate jeder Aktion selbst zu überlassen. Macht das ganze aber noch unübersichtlicher.

Ich mache das seit jeher wie ganz am Anfang gezeigt. Performance-Probleme hatte ich da noch nie, da die Boolschen Zustände die ich zum Aktivieren bzw. Deaktivieren der Aktionen verwende alle bereits vorliegen und nicht im OnUpdate erst ermittelt bzw. berechnet werden.

Um zum Anfang zurück zu kommen: Wie macht ihr das normalerweise? Ich suche da nach einer "Best Practice". Man will ja keine Rechenzeit / Energie verschwenden .

Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat
 


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 22:03 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