Текущий архив: 2008.02.10;
Скачать: CL | DM;
ВнизГлавное меню Найти похожие ветки
← →
koss (2008-01-15 12:43) [0]Добрый день,подскажите пожалуйста каким образом можно разместить главное меню программы на ControlBar"е, чтобы его можно было перемещать, как панели инструментов.
← →
Apollon © (2008-01-15 13:06) [1]А где ты такое видел?
← →
Palladin © (2008-01-15 13:06) [2]лучше с этим не связываться, но если очень хочется секса, то положи на форму TActionMainMenuBar, TActionManager. распиши все свои акшины и перетащи мышкой на ActionMainMenuBar1
← →
Palladin © (2008-01-15 13:07) [3]
> [1] Apollon © (15.01.08 13:06)
привет из каменного века? :)
← →
koss (2008-01-15 13:10) [4]to Apollon:
Стандартный Explorer, может я ошибаюсь не ControlBar,a ToolBar
← →
Palladin © (2008-01-15 13:19) [5]Band"ы таскаются по TCoolBar, именно на него ты и должен повесить TActionMainMenuBar, что бы таскать естественно, а за примером идти не далеко, в MSOffice давно уже таскается
← →
koss (2008-01-15 16:52) [6]А как же быть? Если меня не устраивает TActionMainMenuBar, мне необходимо "повесить" TMainMenu
← →
Palladin © (2008-01-15 16:57) [7]искать компонент в сети или писать свой
← →
koss (2008-01-15 17:01) [8]Возможно повесить TMainMenu на ToolBar?
← →
Palladin © (2008-01-15 17:03) [9]да
← →
ANTPro © (2008-01-15 19:34) [10]Пробовал в гугле набирать TMainMenu+TCoolBar ?
← →
koss (2008-01-16 15:42) [11]Вот нашел такую штуку:
unit MenuBar;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ToolWin, ComCtrls, Menus;
type
TMenuBar = class(TToolBar)
private
FMenu: TMainMenu;
procedure SetMenu(const Value: TMainMenu);
protected
procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
public
constructor Create(AOwner: TComponent); override;
published
property EdgeBorders default [];
property Menu: TMainMenu read FMenu write SetMenu;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents("Samples", [TMenuBar]);
end;
{ TMenuBar }
constructor TMenuBar.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Flat := True;
ShowCaptions := True;
EdgeBorders := [];
ControlStyle := [csCaptureMouse, csClickEvents,
csDoubleClicks, csMenuEvents, csSetCaption];
end;
procedure TMenuBar.GetChildren(Proc: TGetChildProc; Root: TComponent);
begin
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 downto 0 do
Buttons[i].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[i].MenuItem := FMenu.Items[i];
except
Button.Free;
raise;
end;
end;
{ Copy attributes from each menu item }
for i := 0 to FMenu.Items.Count - 1 do
Buttons[i].MenuItem := FMenu.Items[i];
end;
end.
В принципе работает, может есть способ проще, чем создание отдельного компонента?
← →
Palladin © (2008-01-16 15:48) [12]повторяю, у TToolBar уже есть свойство Menu
Страницы: 1 вся ветка
Текущий архив: 2008.02.10;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.043 c