
Ich möchte zur Laufzeit ein MainMenu1 erstellen,
dazu habe ich auf einer Form ein TMainmenu1 platziert.
Im FormCreate habe ich zur Laufzeit dann zwei Menü-Punkte
mit jeweils drei Untermenü-Punkten erstellt.
Mein Problem ist:
Wenn ich einen Click auf ein solches Untermenü mache,
dann tut sich nichts. Mir ist auch klar, warum sich nichts tut,
denn wie und wo kann ich bei Menü-Punkten, die zur Laufzeit
erstellt wurden, ein OnClick-Ereignis einfügen ?
Ich habe es schon wie ein Weltmeister bei Google versucht,
aber gebracht hat es nicht viel. Ich habe da gerade mal
lernen können, wie man es erstellen kann.
Bitte, was muss ich denn da noch machen ?
Weiß vielleicht jemand, was ich da vergessen habe?
Der Source-Code:
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Graphics, Menus;
type
{ TForm1 }
TForm1 = class(TForm)
MainMenu1: TMainMenu;
procedure FormCreate(Sender: TObject);
Procedure NeuesMenu;
Procedure UnterMenu;
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
A : Integer;
B : Integer;
C : Integer;
MenuText : String;
UnterMenuText : String;
NeuesItem: TMenuItem;
UnterItem: TMenuItem;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
MenuText := 'Menü';
UnterMenuText := 'Untermenü';
A := 0;
B := 0;
NeuesMenu; // Hinzufügen erstes Menü
UnterMenu; // Hinzufügen von drei Untermenüs zum ersten Menü
NeuesMenu; // Hinzufügen zweites Menü
UnterMenu; // Hinzufügen von drei Untermenüs zum zweiten Menü
end;
// Prozedur zum erstellen von Menü-Punkten
Procedure TForm1.NeuesMenu;
Begin
A := A + 1;
NeuesItem := TMenuItem.Create(mainmenu1) ;
NeuesItem.Caption := MenuText + ' ' + IntToStr(A);
Mainmenu1.Items.Add(NeuesItem);
end;
// Prozedur zum erstellen von drei Untermenüpunkten
Procedure TForm1.UnterMenu;
Begin
B := B + 1;
UnterItem := TMenuItem.Create(mainmenu1);
UnterItem.Caption := UnterMenuText + ' ' + IntToStr(B);
NeuesItem.Add(UnterItem);
B := B + 1;
UnterItem := TMenuItem.Create(mainmenu1);
UnterItem.Caption := UnterMenuText + ' ' + IntToStr(B);
NeuesItem.Add(UnterItem);
B := B + 1;
UnterItem := TMenuItem.Create(mainmenu1);
UnterItem.Caption := UnterMenuText + ' ' + IntToStr(B);
NeuesItem.Add(UnterItem);
end;
end.
kann, wie die Wirkung ist, wenn ich die Menüs anklicke.
Mit freundlichen Grüßen,
Hercules.