Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   MainMenü (https://www.delphipraxis.net/81381-mainmenue.html)

logo123 26. Nov 2006 08:16


MainMenü
 
Hallo,

ich hab eine Frage zum mainmenü.
ich möchte dem mainmenü mit code eine neue Zeile hinzufügen.
ich habe es mit add versucht,aber es geht nicht.

Balu der Bär 26. Nov 2006 08:21

Re: MainMenü
 
Moin,

was genau geht denn nicht? Bei mir gehts wunderbar. ;)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  test: TMenuItem;
begin
  test := TMenuItem.Create(self); //Erstelle MenuItem
  test.Caption := 'Test';

  MainMenu1.Items[0].Add(test); //Füge Item ein, 0 steht für das erste Elternelement des Menüs
end;

logo123 26. Nov 2006 08:34

Re: MainMenü
 
Es hat funktioniert.
Danke.

Balu der Bär 26. Nov 2006 08:37

Re: MainMenü
 
Welche Anzahl? Die Anzahl der neuen MenuItems? Ja klar, geht mit einem Array.

Delphi-Quellcode:
var
  newentries: array[0..99] of TMenuItem;
 
....

  for i := 0 to 99 do begin
   newentries[i] := TMenuItem.Create(self);
   newentries[i].Caption := 'Item' + IntToStr(i);
   MainMenu1.Items[0].Add(newentries[i]);
  end;
//Edit: Blöd wenn du plötzlich alles wegeditierst. :stupid:

logo123 26. Nov 2006 08:41

Re: MainMenü
 
Kann man den hinzugefügten items auch ein Ereignis hinzufügen wie z.b.onClick...

Balu der Bär 26. Nov 2006 08:43

Re: MainMenü
 
Delphi-Quellcode:
procedure TForm1.MeineProzedur(Sender: TObject);
begin
  ....
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  test: TMenuItem;
begin
  test := TMenuItem.Create(self); //Erstelle MenuItem
  test.Caption := 'Test';
  test.OnClick := MeineProzedur;

  MainMenu1.Items[0].Add(test); //Füge Item ein, 0 steht für das erste Elternelement des Menüs
end;

logo123 26. Nov 2006 09:02

Re: MainMenü
 
Also wenn man jetzt z.B. test hinzugefügt hat und dann dadrauf klickt, soll in label1 test stehen.

Delphi-Quellcode:
 

label1.caption:=MainMenu1.....

Balu der Bär 26. Nov 2006 09:08

Re: MainMenü
 
Und wo ist das Problem? Kleiner Tipp, gucke dir ein bisschen die Tutorials auf dsdt.info, da werden Grundlagen sehr gut vermittelt. ;)

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure MeineProzedur(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.MeineProzedur(Sender: TObject);
begin
  Label1.Caption := (Sender as TMenuItem).Caption;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  test: TMenuItem;
begin
  test := TMenuItem.Create(self); //Erstelle MenuItem
  test.Caption := 'Test';
  test.OnClick := MeineProzedur;

  MainMenu1.Items[0].Add(test); //Füge Item ein, 0 steht für das erste Elternelement des Menüs
end;

end.

DP-Maintenance 26. Nov 2006 13:38

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Nichts allgemeines, sondern ein Delphi (VCL)-Problem


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz