![]() |
TAction.OnUpdate wird nicht ausgeführt
Hallo Zusammen,
vielleicht bin ich einfach nur zu blöde, oder sitze schon zu lange vor dem Rechner und sehe die Wälder vor lauter Bäumen nicht mehr. Meine Ausgangssituation: Auf einem Form liegt eine
Delphi-Quellcode:
mit den
TActionList
Delphi-Quellcode:
s von - sagen wir mal - A - Z. Jede
TAction
Delphi-Quellcode:
hat ihr eigenes
TAction
Delphi-Quellcode:
. Alle
TAction.OnUpdate
Delphi-Quellcode:
s haben (abgesehen von unterschiedlichen
TAction
Delphi-Quellcode:
) identische Eigenschaften, die Eigenschaft
TAction.OnUpdate
Delphi-Quellcode:
.
TActionList.State := asNormal
Mein Problem: Es werden alle
Delphi-Quellcode:
Events von A - Y ausgeführt, nur der für Z eben nicht. Versuche ich weitere
OnUpdate
Delphi-Quellcode:
s einzufügen - mit zugehörigem
TAction
Delphi-Quellcode:
-Event -, wird dieser auch nicht ausgeführt.
TAction.OnUpdate
Ich hoffe, ich konnte mein Problem aussagekräftig genug beschreiben. Kann mir da jemand weiterhelfen? Gruß Volker BTW: Nutze Delphi Xe4, Windows 10 |
AW: TAction.OnUpdate wird nicht ausgeführt
Dann wirft deine TAction Y eine Exception?
|
AW: TAction.OnUpdate wird nicht ausgeführt
Zitat:
|
AW: TAction.OnUpdate wird nicht ausgeführt
Hallo,
vielen Dank erstmal für die Antworten. Nein, eine Exeption wird von keiner
Delphi-Quellcode:
geschmissen.
TAction
Und: Allen
Delphi-Quellcode:
sind auch
TActions
Delphi-Quellcode:
-Events zugewiesen.
OnExecute
Gruß Volker |
AW: TAction.OnUpdate wird nicht ausgeführt
Kannst du es in einen kleinen Beispiel-Projekt reproduzieren?
|
AW: TAction.OnUpdate wird nicht ausgeführt
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
Delphi-Quellcode:
Schau bitte mal in Deinen Quellen nach, ob es bei Deiner Delphiversion in der Forms.pas Quelltext in der Form
procedure TApplication.WndProc(var Message: TMessage);
Delphi-Quellcode:
vorkommt. Wenn ja, setze da mal 'nen Breakpoint hin und schaue, ob der bei allen Actions angesprungen wird.
CM_ACTIONEXECUTE, CM_ACTIONUPDATE:
Message.Result := Ord(DispatchAction(Message.Msg, TBasicAction(Message.LParam))); In der ActnList.pas gibt es die
Delphi-Quellcode:
. 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.
function TContainedAction.Update: Boolean;
Eventuell kommst Du ja damit dem Problem näher. |
AW: TAction.OnUpdate wird nicht ausgeführt
Zitat:
|
AW: TAction.OnUpdate wird nicht ausgeführt
Hallo,
ein herzliches Dankeschön für all die Antworten. Die Idee 'nen Breakpoint im Update-Event der
Delphi-Quellcode:
zu setzten hatte ich schon. Es wurden auch alle
TActionList
Delphi-Quellcode:
s aktualisiert, nur eben die eine nicht (bzw. wenn ich weitere
TAction
Delphi-Quellcode:
s hinzufügte).
TAction
Die betroffene
Delphi-Quellcode:
ist mit einem
TAction
Delphi-Quellcode:
verknüpft.
TButton
Zwischenzeitlich habe ich das Formular neu gebaut. Jetzt funktioniert es. Mal schauen, ob ich den Unterschied noch finde. Gruß Volker |
AW: TAction.OnUpdate wird nicht ausgeführt
Hast Du mal im Quelltext der DFM nach Unterschieden geschaut?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:31 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