var NewItem: TMenuItem; I : integer; begin { first create the separator } NewItem := TMenuItem.Create(Self); NewItem.Caption := '-'; { add the new item to the Windows menu } Windows.Add(NewItem); { now create and add a menu item for each form } for I := 0 to Screen.FormCount-1 do begin NewItem := TMenuItem.Create(Self); NewItem.Caption := Screen.Forms[I].Name; Windows.Add(NewItem); end;end;
procedure TMainForm.SetupMenu; var MenuItem: TMenuItem; ParentMenu: TComponent; i: Integer; comp: TComponent; procedure updateMenuItem(index: integer; pMenuItem: TMenuItem); begin with pMenuItem do begin {1=Name,Parent,Caption,Hint,Shortcut,ID,WindowName,ExeName} Name := UserTitle(AddonMenu[index], ',', 1); if CaptionHandler1.LangChanger.LanguageMode = lmEnglish then begin Caption := UserTitle(AddonMenu[index], ',', 3); Hint := UserTitle(AddonMenu[index], ',', 4); end else begin Caption := UserTitle(AddonMenu[index], ',', 9); Hint := UserTitle(AddonMenu[index], ',', 10); end; if UserTitle(AddonMenu[index], ',', 5) <> EmptyStr then Shortcut := TextToShortCut(UserTitle(AddonMenu[index], ',', 5)); end; end; begin for i := 0 to AddonMenu.Count - 1 do begin // by rex on 2 mar 2001 comp := Self.FindComponent(UserTitle(AddonMenu[i], ',', 1)); if Assigned(comp) then begin TComponent(MenuItem) := comp; updateMenuItem(i, MenuItem); continue; end else begin MenuItem := TMenuItem.Create(Self); {create an item on the fly} updateMenuItem(i, MenuItem); end; // by rex on 2 mar 2001 end with MenuItem do begin Enabled := True; Visible := True; Tag := i; OnClick := MenuOnClick; {assign OnClick event} if UserTitle(AddonMenu[i], ',', 2) = EmptyStr then ParentMenu := nil else ParentMenu := Self.FindComponent(UserTitle(AddonMenu[i], ',', 2)); end; if ParentMenu = nil then mnuMain.Items.Add(MenuItem) else begin if ParentMenu is TMainMenu then TMainMenu(ParentMenu).Items.Add(MenuItem) else if ParentMenu is TPopupMenu then TPopupMenu(ParentMenu).Items.Add(MenuItem) else TMenuItem(ParentMenu).Add(MenuItem); end; end; end;
NewItem: TMenuItem;
I : integer;
begin
{ first create the separator }
NewItem := TMenuItem.Create(Self);
NewItem.Caption := '-';
{ add the new item to the Windows menu }
Windows.Add(NewItem);
{ now create and add a menu item for each form }
for I := 0 to Screen.FormCount-1 do
begin
NewItem := TMenuItem.Create(Self);
NewItem.Caption := Screen.Forms[I].Name;
Windows.Add(NewItem); end;end;
var
MenuItem: TMenuItem;
ParentMenu: TComponent;
i: Integer;
comp: TComponent; procedure updateMenuItem(index: integer; pMenuItem: TMenuItem);
begin
with pMenuItem do
begin
{1=Name,Parent,Caption,Hint,Shortcut,ID,WindowName,ExeName}
Name := UserTitle(AddonMenu[index], ',', 1);
if CaptionHandler1.LangChanger.LanguageMode = lmEnglish then
begin
Caption := UserTitle(AddonMenu[index], ',', 3);
Hint := UserTitle(AddonMenu[index], ',', 4);
end
else
begin
Caption := UserTitle(AddonMenu[index], ',', 9);
Hint := UserTitle(AddonMenu[index], ',', 10);
end;
if UserTitle(AddonMenu[index], ',', 5) <> EmptyStr then
Shortcut := TextToShortCut(UserTitle(AddonMenu[index], ',', 5));
end;
end;
begin
for i := 0 to AddonMenu.Count - 1 do
begin
// by rex on 2 mar 2001
comp := Self.FindComponent(UserTitle(AddonMenu[i], ',', 1));
if Assigned(comp) then begin
TComponent(MenuItem) := comp;
updateMenuItem(i, MenuItem);
continue;
end
else begin
MenuItem := TMenuItem.Create(Self); {create an item on the fly}
updateMenuItem(i, MenuItem);
end;
// by rex on 2 mar 2001 end with MenuItem do
begin
Enabled := True;
Visible := True;
Tag := i;
OnClick := MenuOnClick; {assign OnClick event}
if UserTitle(AddonMenu[i], ',', 2) = EmptyStr then
ParentMenu := nil
else
ParentMenu := Self.FindComponent(UserTitle(AddonMenu[i], ',', 2));
end;
if ParentMenu = nil then
mnuMain.Items.Add(MenuItem)
else
begin
if ParentMenu is TMainMenu then
TMainMenu(ParentMenu).Items.Add(MenuItem)
else if ParentMenu is TPopupMenu then
TPopupMenu(ParentMenu).Items.Add(MenuItem)
else
TMenuItem(ParentMenu).Add(MenuItem);
end;
end;
end;