online 1
gast (50)

/ Forum / Anwendungen(Java,C++...)

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon ich__bins vom 12.09.2022, 10:52 Options

C++ Builder: Menü zur Laufzeit erzeugen

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?


Antwort schreiben

Antwort 1 von ich__bins vom 12.09.2022, 11:03 Options

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;

Antwort 2 von son_quatsch vom 13.09.2022, 11:33 Options

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.

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026