Создание пунктов меню во время выполнения программы
Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch
{
When you click on button1 the number of installed fonts
are displayed in the menu by creating the menuitems dynamically
Zur Laufzeit wird die Anzahl der installierten Schriften ausgelesen und
entsprechend viele Menupunkte erzeugt
}
type
TForm1 = class(TForm)
Button1: TButton;
label1: TLabel;
MainMenu1: TMainMenu;
Fonts1: TMenuItem;
procedure Fonts1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Fonts1Click(Sender: TObject);
begin
if Sender Fonts1 then
label1.Caption := (Sender as TMenuItem).Caption;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
NewItem: TMenuItem;
i: Integer;
begin
for i := 0 to Screen.Fonts.Count - 1 do
begin
// Create a new Menu Item
// Neuen Menupunkt erzeugen
NewItem := TMenuItem.Create(Self);
// Take the Font name as Caption
// Den Schriftnamen als Caption festlegen
NewItem.Caption := Screen.Fonts.Strings[i];
// Assign a OnClick-Event
// Ein OnClick-Ereignis zuweisen
NewItem.OnClick := Fonts1Click;
// Add the new menu
// Den neuen Menupunkt hinzufugen
Fonts1.Add(NewItem);
end;
end;
|