⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 我的一个控件,就是最简单的menubar(我还有一些.txt

📁 delphi 编程技巧
💻 TXT
字号:
我的一个控件,就是最简单的menubar(我还有一些控件,比如说改进的取汉字拼音等等) (2001年5月9日) 

网友更新  分类:控件制作   作者:shenloqi  推荐:shenloqi   阅读次数:188  
(http://www.codesky.net)  

--------------------------------------------------------------------------------
//这是一个可以放置到coolbar,controlbar之类的容器内的菜单栏。
//使用了grouped的button来生成菜单的效果。
//使用方法:
//添加本控件到窗体上,然后设置Menu选项为您所要设定的菜单。
//然后设置窗体的菜单(menu属性)为空。
//在form.create中添加shenmenubar1.menu:=mainmenu1;
//放置本控件到任何一个容器或者任何一个位置。
//因为是button,所以如果不设置字体,那么它就会使用主窗口的字体。
//建议使用宋体9号字体,对于中文环境,这是最好的显示字体了。
//您自己放置的toolbutton将会被清除。

unit shenMenuBar;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ToolWin, ComCtrls, Menus;

type
TshenMenuBar = class(TToolBar)
private
FMenu: TMainMenu;
procedure SetMenu(const Value: TMainMenu);
protected
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('Shen1', [TshenMenuBar]);
end;

{ TshenMenuBar }
constructor TshenMenuBar.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Flat := True;
ShowCaptions := True;
EdgeBorders := [];
ControlStyle := [csCaptureMouse, csClickEvents,
csDoubleClicks, csMenuEvents, csSetCaption];
end;

procedure TshenMenuBar.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;
for i := 0 to FMenu.Items.Count - 1 do
Buttons[i].MenuItem := FMenu.Items[i];
end;

end.
 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -