Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#6

AW: TAction.OnUpdate wird nicht ausgeführt

  Alt 16. Okt 2017, 09:55
Das Execute wird bei allen ausgeführt?

An verschieb mal die Action Z, an die Postiton A in der Actionlist. Tritt der Fehler immernoch bei dieser Action auf oder jetzt bei der Action, die sich an nun an der Position Z befindet.

Bleibt der Fehler bei der Action, ist die Position uninterresant und das A - Y funktionieren, Z aber nicht nur Zufall. Der Fehler muss dann irgendwo bei der Action Z (und den nachfolgenden) liegen.

Tritt der Fehler nun aber bei der "neuen" Action an Position Z auf, dürfte der Fehler eher im Umfeld der Actionlist zu suchen sein.

In den Sourcen zu Delphi 7 von Forms.pas gibt es die procedure TApplication.WndProc(var Message: TMessage); Schau bitte mal in Deinen Quellen nach, ob es bei Deiner Delphiversion in der Forms.pas Quelltext in der Form
Delphi-Quellcode:
CM_ACTIONEXECUTE, CM_ACTIONUPDATE:
  Message.Result := Ord(DispatchAction(Message.Msg, TBasicAction(Message.LParam)));
vorkommt. Wenn ja, setze da mal 'nen Breakpoint hin und schaue, ob der bei allen Actions angesprungen wird.

In der ActnList.pas gibt es die function TContainedAction.Update: Boolean; . Setze da ebenfalls mal 'nen Breakpoint und prüfe, ob der Debugger bei allen Actions dort anhält und prüfe mal beim Rückgabewert dieser Funktion, ob es, abhängig von der aufrufenden Action, Unterschiede im Ergebnis gibt.

Eventuell kommst Du ja damit dem Problem näher.
  Mit Zitat antworten Zitat