Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi TAction von SubForm an MainForm übergeben, wie? (https://www.delphipraxis.net/80006-taction-von-subform-mainform-uebergeben-wie.html)

KHJ 1. Nov 2006 13:00


TAction von SubForm an MainForm übergeben, wie?
 
Hallo,

ich habe in mehreren SubForms Aktionen erstellt die ich bei der Aktivierung des SubForms im Mainform an einen Menüeintrag und ActionToolbar hängen möchte. Dabei sollen alle Eigenschaften der Aktion aus SubForm verwendet werden.

Ich habe dazu im MainForm und im SubForm Aktionen definiert.
Wie kann ich jetzt die SubFormaktion an die entsprechende MainFormaktion übergeben?

Mainform.Aktion := SubForm.Aktion;

kompiliert und die Eigenschaften werden zu diesem Zeitpunkt auch übergeben.

Wenn ich in SubForm.Aktion.Enabled := true setze, ändert sich aber nichts bei MainForm.Aktion.Enabled.

Ist der Ansatz überhaupt richtig oder sollte ich ganz anders vorgehen?

Danke für einen Hinweis

Karlheinz

KHJ 1. Nov 2006 14:23

Re: TAction von SubForm an MainForm übergeben, wie?
 
Konnte das Problem jetzt besser zuordnen.

MainForm.Aktion entspricht nach der Übergabe SubForm.Aktion und auch die Eigenschaft Enabled ändert sich in beiden.

Jetzt stellt sich nur noch die Frage wie ich meiner ActionToolBar, die MainForm.Aktion darstellt, bei bringe, daß sich die Eigenschaften von MainForm.Aktion geändert haben sobald ich in SubForm.Aktion was ändere (z.b. Image, Enabled etc.).

Eine Idee warum das nicht funktioniert?

Karlheinz

Sidorion 1. Nov 2006 14:30

Re: TAction von SubForm an MainForm übergeben, wie?
 
Eine Action kennt nur eine ActionList. Dieser gibt sie Bescheid, dass sich was geändert hat. Diese ActionList gibt wiederum ihrem ActionManager bescheid, der dann die Menüs, ActionButtons usw. anpasst.
Also entweder Du verwendest einen globalen ActionManager, der alle Actions in allen Formen verwaltet oder Du veranlasst den ActionManager der Subform die Action der Subform der Mainform neu zuzuweisen, da hier ja die Übernahme der Eigenschaften zu funktionieren scheint.

KHJ 12. Nov 2006 18:56

Re: TAction von SubForm an MainForm übergeben, wie?
 
Hallo,

Zitat:

Zitat von Sidorion
Eine Action kennt nur eine ActionList. Dieser gibt sie Bescheid, dass sich was geändert hat. Diese ActionList gibt wiederum ihrem ActionManager bescheid, der dann die Menüs, ActionButtons usw. anpasst.
Also entweder Du verwendest einen globalen ActionManager, der alle Actions in allen Formen verwaltet oder Du veranlasst den ActionManager der Subform die Action der Subform der Mainform neu zuzuweisen, da hier ja die Übernahme der Eigenschaften zu funktionieren scheint.

Ich habe jetzt lange probiert und viel in Newsgroups gesucht, aber keinen Weg gefunden die Eigenschaften der Action im Mainform (z.B. in einer ActionToolbar) automatisch richtig darzustellen. Welche Funktion muss ich hierzu aufrufen?

Ist der Weg den ich einschlagen möchte überhaupt im Konzept der Action's vorgesehen?

Zur Zeit habe ich folgendes probiert:

Zuweisung beim Aufruf des SubForms aus dem MainForm
MainForm.actCalculate := SubForm.actCalculate;

Änderungen nur in der aktiven SubForm z.B.
SubForm.actCalculate.Enabled := true;

führt auch dazu, daß automatisch
MainForm.actCalculate.Enabled = true ist.

Aber in der ActionToolBar bleibt das zugehörige Element disabled. Wie kann ich jetzt die Änderung in MainForm.actCalculate bis zur Darstellung in der ActionToolBar etc. "weiterleiten"?

Kann mir jemand weiterhelfen?

Schon mal Danke !!!

Karlheinz

KHJ 13. Nov 2006 17:53

Re: TAction von SubForm an MainForm übergeben, wie?
 
Kann mir in dieser Sache jemand weiterhelfen????


Gruß Karlheinz


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:48 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