Einzelnen Beitrag anzeigen

Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Menüs zur Laufzeit ok, aber wie anwählen?

  Alt 4. Mai 2004, 21:16
Du könntest auch dem Name Property etwas zuweisen und dann aufgrund des Namens die auszuführende Action wählen...
Dann könntest Du den Tag nach Belieben auch nochanderweitig verwenden.

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Button1: TButton;
    mnuFile: TMenuItem;
    procedure Button1Click(Sender: TObject);
    procedure MyMenuItemOnClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.MyMenuItemOnClick(Sender: TObject);
begin
  if (Sender is TMenuItem) then
  case StrToIntDef(TMenuItem(Sender).Name,-1) of
    0: ShowMessage((Sender as TMenuItem).Caption);
    1: ShowMessage((Sender as TMenuItem).Caption);
    2: ShowMessage((Sender as TMenuItem).Caption);
    3: ShowMessage((Sender as TMenuItem).Caption);
    4: ShowMessage((Sender as TMenuItem).Caption);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  NewItem: TMenuItem;
  i: Integer;
begin
  for i := 0 to 4 do
  begin
    NewItem := TMenuItem.Create(Form1);
    NewItem.Caption := IntToStr(i);
    NewItem.Name := IntToStr(i);
    NewItem.OnClick := MyMenuItemOnClick;
    mnuFile.Add(NewItem);
  end;
end;
Günter
  Mit Zitat antworten Zitat