1.5k Aufrufe
Gefragt in Anwendungen(Java,C++...) von
Ich will anhand folgendem Quellcode ein Menü zur Laufzeit erzeugen.

TMainMenu *MainMenu1 = new TMainMenu(Form1);
TMenuItem *MI1 = new TMenuItem(MainMenu1);

MainMenu1->Items->Insert(0, MI1);
MI1->Caption = "Datei";
MI1->Visible = True;

Nur leider wird das Menü nicht angezeigt. Weiß einer, wie diesen Fehler beheben kann?

2 Antworten

0 Punkte
Beantwortet von
Besser gesagt, es wird keine Komponente angezeigt, da ich das entsprechende Formular zur Laufzeit erzeugt habe.

Hier der gesamte Quelltext:

TForm *Form1 = new TForm(Application);
TMainMenu *MainMenu1 = new TMainMenu(Form1);
TMenuItem *MI1 = new TMenuItem(MainMenu1);
TButton *B1 = new TButton(Form1);

Form1->ShowModal();
Form1->Menu = MainMenu1;

MainMenu1->Items->Insert(0, MI1);
MI1->Caption = "Datei";
MI1->Visible = True;

B1->Show();
B1->Left = 20;
B1->Width = 20;
B1->Height = 20;
B1->Top = 20;
B1->Visible = True;
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Du hättest dein Programm mal in Einzelschritten tracen sollen. Dann fällt dir auf, dass ShowModal() auch wirklich modal ist - sprich die Programmausführung bleibt sequentiell innerhalb jener Funktion - und erst wenn jenes Fenster geschlossen ist geht es weiter.

Mach also Show() draus oder zeig die Form erst dann an, wenn du ihr alles zugewiesen hast.
...