1.7k Aufrufe
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
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
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.

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...