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. |