Startseite | Infos für Behinderte | Behindertensoftware | Forum | Programmierarchiv | Webguide | Markus privat | Kontakt | Download | Gästebuch | Online Games | Entstehungsgeschichte


Menüs dynamisch erstellen

{Diese Unit dient zum dynamischen Erstellen von Menüs}

unit MenuX;

interface

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

// Prozeduren für dynamische Menüs
procedure AddMenu(Menu: TMenuItem; Caption: String; ShortCut: TShortCut; OnClick: TNotifyEvent; Owner: TForm);
procedure DelMenu(Menu: TMenuItem; Anzahl: Integer);

implementation

{ AddMenu wird zum beispiel so aufgerufen: AddMenu AddMenu(Datei1, OpenDialog1.FileName, TextToShortCut(''), MenuClick, Form1); }
procedure AddMenu(Menu: TMenuItem; Caption: String; ShortCut: TShortCut; OnClick: TNotifyEvent; Owner: TForm);
var
NewItem: TMenuItem;
begin
NewItem := TMenuItem.create(Owner);
NewItem.caption := Caption;
NewItem.ShortCut := ShortCut;
NewItem.OnClick := OnClick;
if NewItem.Caption <> '' then Menu.Add(NewItem);
end;

{
Klickprozedur für dynamische Menüs
Um diese Prozedur in einem Projekt aufrufen zu können, muss sie in ein Objekt eingebunden werden.

z. B.

procedure MenuClick(Sender: TObject);
begin

end;

Eingebunden in ein konkretes Projekt wird sie zum beispiel so:

procedure TForm1.MenuClick(sender:tobject);
begin
// Zeigt die caption vom angeklickten Menü an
showmessage((Sender as TMenuItem).Caption);
end;
}

// Löscht Menü Anzahl
procedure DelMenu(Menu: TMenuitem; Anzahl: Integer);
begin
Menu.Delete(Anzahl);
end;

end.

zurück zum Stichwortverzeichnis