TActionList.OnUpdate vs TAction.OnUpdate

Rund um die LCL und andere Komponenten
Antworten
Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

TActionList.OnUpdate vs TAction.OnUpdate

Beitrag von Eclipticon »

Hi,

ich moechte den Status einiger Komponenten ueber den OnUpdate-Event einer ActionList aktualisieren. Mache ich das aber
  • fuer alle gleichzeitig in TActionList.OnUpdate
  • Action fuer Action im jeweiligen TAction.OnUpdate?
Prinzipiell zu funktionieren scheint ja beides, aber wie ist es vom Design der ActionList her gedacht?

Danke :-)

Socke
Lazarusforum e. V.
Beiträge: 3177
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: TActionList.OnUpdate vs TAction.OnUpdate

Beitrag von Socke »

Du verwendest TActionList.OnUpdate wenn du alle Actions aktualisieren möchtest, und wenn du genau weißt welche Action, dann eben TAction.OnUpdate.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Re: TActionList.OnUpdate vs TAction.OnUpdate

Beitrag von Eclipticon »

Ich weiss genau, dass ich alle Actions aktualisieren moechte ;-)

Den var-Parameter Handled sollte ich in TActionList.OnUpdate dann vermutlich auf True setzen, aber was genau fange ich mit AAction an? Ich habe bemerkt, dass AAction immer eine von zwei Actions in meiner ActionList ist (in der es insgesamt 6 gibt ...).

lt.col.blair
Beiträge: 16
Registriert: Di 15. Sep 2009, 09:02

Re: TActionList.OnUpdate vs TAction.OnUpdate

Beitrag von lt.col.blair »

Hallo,

das OnUpdate-Ereignis der ActionList wird ausgelöst aus der Funktion Update einer der Actions in der ActionList.
Von dort aus wird immer zuerst das OnAction der ActionList aufgerufen. Wenn von diesem Handler Handled=False zurückkommt, wird das OnUpdate-Ereignis der Action selbst aufgerufen.
Der Parameter Action enthält die Action, die das Ereignis ausgelöst hat.

Wenn du alle Actions bearbeiten willst kannst du den Parameter Action ignorieren. Den var-Parameter Handled kannst du auf False stehen lassen, wenn du willst dass eventuell jede Action noch einen eigenen Handler ausführen soll.

Antworten