Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi ActionMainMenuBar + OnExecute wird nicht ausgeführt (https://www.delphipraxis.net/81197-actionmainmenubar-onexecute-wird-nicht-ausgefuehrt.html)

-=cats=- 22. Nov 2006 11:56


ActionMainMenuBar + OnExecute wird nicht ausgeführt
 
Hi :-)

Ich habe schon wieder ein Problem ...

Bei dem ActionMainMenuBar gibt es bei den Items
eine Methode "onExecute".
In der Delphi-Hilfe steht, dass da dann meistens
das onClick-Ereignis genommen wird.

Also müsste doch etwas passieren, wenn ich auf
meinen Menüpunkt klicke, oder ?
Aber irgendwie wird das nicht aufgerufen ...
Ich habe mir zum Testen mal eine Nachricht auf
den Bildschirm ausgegeben, aber die erscheint auch nicht.

Jetzt steht in der Delphi-Hilfe auch noch, dass
onExecute nicht ausgeführt wird, wenn schon eine andere
Aktion zugewiesen wurde :?:
Aber das habe ich nicht getan.

Hat jemand eine Idee, warum das alles nicht funktioniert ?

Vielen Dank schon mal für die Hilfe !

Gruß,
-=cats=- :coder:


Ach so, ich verwende auch noch den ActionManager.

Lun 22. Nov 2006 12:56

Re: ActionMainMenuBar + OnExecute wird nicht ausgeführt
 
So funktioniert das bei mir. Vielleicht kannst du damit was tun


Delphi-Quellcode:
var
 
  iItem:TActionClientItem;
  iAction:TAction;
 
begin

  iAction := TAction.Create(_Dein_ActionManager); //Hier wird die Action für das Item erstellt
  iItem := _Dein_ActionManager.ActionBars[0].Items[7].Items[itemI].Items.add; // wird im menü untergebracht
    iAction.Caption := 'blub';//Hier wird dem Item die Eigenschaft Caption zugewiesen.
    iItem.Action := iAction; //Hier wird dem Item seine Action zugewiesen.
    iAction.OnExecute := FunktionExecute;
  end;

procedure TForm1.FunktionExecute(Sender : TObject);
  begin
       //mach was
  end;
Falls das nicht hilft?

Der Beitrag hat mir dabei geholfen: Hier

-=cats=- 22. Nov 2006 13:09

Re: ActionMainMenuBar + OnExecute wird nicht ausgeführt
 
Hmm .... :gruebel:

Also das versteh ich leider noch nicht so ganz :-(

Ich habe es so gemacht:

1. ActionMainMenuBar angelegt
2. ActionManager angelegt
3. Im ActionManager die Einträge für mein Menü gemacht und auf
mein MainMenu gezogen
4. In die Objekthierarchie auf den Menüeintrag gegangen
5. Dann auf Ereignisse
6. onExecute
7. Dort folgenden Code eingetragen:

Delphi-Quellcode:
 procedure TForm16.Action12Execute(Sender: TObject);
  begin
   ActionMainMenuBar1.Visible := false;
   LMDBackPanel2.Align := alTop;
   LMDBackPanel2.Visible := true;
   ShowMessage('Hallo');
  end;
Und jetzt dachte ich, wenn ich auf den Menüeintrag klicke, dann passiert was.
Nur leider passiert nichts :|

Lun 22. Nov 2006 13:26

Re: ActionMainMenuBar + OnExecute wird nicht ausgeführt
 
Hast Du denn auch ne neue Action angelegt, im ActionManager?

Such mal in der Suche nach ActionManager, da findest du bestimmt das wonach Du suchst.
Der Unterschied zwischen dem was ich gemacht habe und was Du machen möchtest liegt, dass ich
zur Laufzeit das Menü erzeuge. Ich denke das Du das garnicht möchtest.


greetz Lun

-=cats=- 22. Nov 2006 13:35

Re: ActionMainMenuBar + OnExecute wird nicht ausgeführt
 
Nein ich möchte das Menü von Anfang an da haben.
Das blende ich erst mal nur aus.

... Habe mal nach ActionManager gesucht, aber das ist
irgendwie alles nicht das, was ich meine bzw. suche.

Das Problem ist, dass diese onExecute-Methode nicht
aufgerufen wird. Warum auch immer ...
Wahrscheinlich habe ich irgendwas entscheidendes
vergessen ... :gruebel:

-=cats=- 23. Nov 2006 07:36

Re: ActionMainMenuBar + OnExecute wird nicht ausgeführt
 
Also, sorry das ich jetzt noch mal mit diesem
Thema anfangen muss ...

Scheinbar hab ich das System da noch nicht ganz durchschaut.

Wie verwendet man denn dieses "onExecute" bei einer
ActionMainMenuBar ?

Ich dachte das funktioniert ganz einfach so, dass ich mir
einen ActionManager anlege. Der macht das Menü für mein
ActionMainMenu.
Und dann haben meine Menüpunkte ja Clients / Items.
Und denen kann ich in der onExecute-Methode etwas zuweisen.

Nur warum wird die nicht aufgerufen ?

Das versteh ich irgendwie nicht ganz. Es kommt keine Fehlermeldung
oder so. Muss man da noch etwas wichtiges beachten ?

Sascha L 23. Nov 2006 09:18

Re: ActionMainMenuBar + OnExecute wird nicht ausgeführt
 
Wenn Du so vorgehst, muss es einfach klappen:

1.) In der Action-Liste eine neue Action anlegen.
2.) Doppelt auf die Action klicken / oder im OI auf "OnExecute".
3.) Code rein schreiben
4.) Im Menü auf den Menüeintrag klicken und im OI bei "Action" die oben erstelle Action einstellen

-=cats=- 23. Nov 2006 10:15

Re: ActionMainMenuBar + OnExecute wird nicht ausgeführt
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hmm ... das funktioniert nich ...
Spinn ich ? :gruebel:

Habe mal Screenshots angehängt ...

Lun 23. Nov 2006 11:32

Re: ActionMainMenuBar + OnExecute wird nicht ausgeführt
 
Hmm, normalerweise dürfte das funktionieren. :gruebel:

Hast Du denn unter dem Object Toolbar noch items oder klickst du direkt auf das Objekt Toolbar und dann soll was passieren?
Falls Du noch items hast die Du anklickst, musst du dem die Action und der OnEexcute die Funktion zuweisen. Aber ich denke mal
das, dass nicht der Fehler ist.

-=cats=- 23. Nov 2006 13:25

Re: ActionMainMenuBar + OnExecute wird nicht ausgeführt
 
Also, ich klicke direkt auf Toolbar.
Das komische ist, das es mit onUpdate
funktioniert ... Und da mache ich alles
genauso ... :gruebel:


:coder2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:24 Uhr.
Seite 1 von 2  1 2      

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