PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MainMenu.Merge für ein Menü auf einer Toolbar



Henry Krick
30.12.2003, 14:32
Hallo,

ich habe ein Problem bezüglich der Merge-Prozedure für MDI-Anwendungen.<BR>
In meinem Hauptformular ist eine CoolBar. Auf einem CoolBand dieser Coolbar liegt
eine Toolbar, die wiederum in<BR>ihrer Eigenschaft Menu ein MainMenü (TMainMenu) hat.
Das selbe Spiel läuft in MDI-Childformularen ab.
<BR>(siehe Diskussion <a href="http://www.entwickler-forum.de/webx?50@@.1dd05283"><a href="/webx?50@@.1dd05283">Stephan Schneider "Toolbar Merge?" 04.08.2003 14:46</a></a>)
<BR> Wenn jetzt ein MDI-Child erzeugt wird, wird das CoolBand des Childs in
die CoolBar des Hauptformular integriert.
<BR>Ebenso soll es mit dem MainMenu des Childs passieren
<BR> <BR>
Bissl Code:

<PRE>
procedure TfrmMain.acChildExecute(Sender: TObject);
var ChildForm:TfrmChild;
begin
If IsFormNotCreated('frmChild') then //überprüft nur ob das Childfenster existiert,
// wenn ja wird es mit MDIChildren[i].BringToFront nach Vorne gebracht
begin
ChildForm:=TfrmChild.Create(Application.MainForm);
ChildForm.SetCoolBar(clbMain); // CoolBar des Hauptformular wird mit der ToolBar (CoolBand mit Toolbar) des Childforms erweitert
ChildForm.Tag:=CreateNewMenuItem(acChild); //Neuer Eintrag unter dem Menü Fenster
self.toolbarMain.Menu.Merge(ChildForm.MainMenu); // <-- hier sollen die Menü's vereinigt werden, leider ohne Erfolg
end;
end;
</PRE>

Leider wird das Menü nicht integriert.
Hat jemand damit Erfahrung?

Henry

wp
16.01.2004, 09:15
Hallo Henry,

möglicherweise hilft es, wenn man nach dem Merge die Toolbar-Eigenschaft "Menu" nochmal neu setzt (evtl. vorher auf nil setzen), damit die Buttons neu eingelesen werden.

Gruß, Werne