请教:如何制作类似Office 或Delphi 5的菜单栏(100分)

  • 主题发起人 主题发起人 yeeler
  • 开始时间 开始时间
使用TControlBar
 
cool menu pro
 
agree with arm
 
外面coolbar,里面toolbar上面toolbutton
 
将mainform的mainmenu设为空,把toolbutton的menuitem设为相应的菜单条目即可。
grouped、allowallup均为true.
 
用ControlBar加ToolBar做出来的菜单条只是外观上像Office,但是菜单动画没有了。
不好,我是自己写菜单条放在ControlBar搞定的。
 
小弟不知如何实现菜单动画,愿闻其详.
 

CoolBar 上放 MenuBar

// MenuBar 控件, For Delphi4/5
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.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;

end.
 
TOffice97bar,
ABC for Delphi
1stclass
 
我想要的是完全模拟Delphi 5 or Office 的菜单拦,及其下面的工具条的制作方法.
(包括工具按钮之间的分隔线)

请诸位大侠不吝赐教.
 

用ToolBar97控件
 
多谢指教!小弟不胜感激.
 
后退
顶部