procedure TMenuBar.GetChildren(Proc: TGetChildProc;
Root: TComponent);
begin
end;
//WyL 2001-10-08
procedure TMenuBar.Merge(aMenu: TMainMenu);
var
i, j: Integer;
Button: TToolButton;
tbtnArray: array of TToolButton;
begin
if not Assigned(FMenu) then
Exit;
for i := 0 to aMenu.Items.Count - 1 do
begin
for j := 0 to ButtonCount - 1 do
begin
if aMenu.Items.GroupIndex = Buttons[j].MenuItem.GroupIndex then
begin
SetLength(tbtnArray, High(tbtnArray) + 2);
tbtnArray[High(tbtnArray)] := Buttons[j];
end;
end;
end;
for i := 0 to High(tbtnArray) do
begin
tbtnArray.Free;
end;
if ButtonCount = 0 then
begin
Menu := aMenu;
Exit;
end;
for i := 0 to aMenu.Items.Count - 1 do
begin
for j := 0 to ButtonCount - 1 do
begin
if aMenu.Items.GroupIndex <= Buttons[j].MenuItem.GroupIndex then
begin
Button := TToolButton.Create(Self);
try
Button.AutoSize := True;
Button.Grouped := True;
Button.Parent := Self;
Button.Left := Buttons[j].Left + 1;
Button.MenuItem := aMenu.Items;
Break;
except
Button.Free;
raise;
end;
end else
begin
Button := TToolButton.Create(Self);
try
Button.AutoSize := True;
Button.Grouped := True;
Button.Parent := Self;
Button.Left := Buttons[ButtonCount - 2].Left + 1;
Button.MenuItem := aMenu.Items;
Break;
except
Button.Free;
raise;
end;
end;
end;
//For j...
end;
end;
procedure TMenuBar.SetMenu(const Value: TMainMenu);
var
i: Integer;
Button: TToolButton;
begin
if FMenu = Value then
exit;
if Assigned(FMenu) then
for i := ButtonCount - 1 do
wnto 0 do
Buttons.Free;
FMenu := Value;
if not Assigned(FMenu) then
exit;
for i := ButtonCount to FMenu.Items.Count - 1 do
begin
Button := TToolButton.Create(Self);
try
Button.AutoSize := True;
Button.Grouped := True;
Button.Parent := Self;
Buttons.MenuItem := FMenu.Items;
except
Button.Free;
raise;
end;
end;
{ Copy attributes from each menu item }
for i := 0 to FMenu.Items.Count - 1 do
Buttons.MenuItem := FMenu.Items;
end;