Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.026 c
2-1200302804
vint45
2008-01-14 12:26
2008.02.10
Запись набора байтов по адресу памяти в строковую переменную


15-1199903664
@!!ex
2008-01-09 21:34
2008.02.10
Какой БП нужен?


15-1199969784
Вссм
2008-01-10 15:56
2008.02.10
virtual server 2005


15-1199978159
vajo
2008-01-10 18:15
2008.02.10
Как подключить интернет в Win Vista Busines?


6-1180003716
DVM
2007-05-24 14:48
2008.02.10
Проверить, используется ли уже данный UDP порт.