![]() |
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. |
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; |
Re: MainMenü
Es hat funktioniert.
Danke. |
Re: MainMenü
Welche Anzahl? Die Anzahl der neuen MenuItems? Ja klar, geht mit einem Array.
Delphi-Quellcode:
//Edit: Blöd wenn du plötzlich alles wegeditierst. :stupid:
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; |
Re: MainMenü
Kann man den hinzugefügten items auch ein Ereignis hinzufügen wie z.b.onClick...
|
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; |
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..... |
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
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 18:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz