?? 我的一個控件,就是最簡單的menubar(我還有一些.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 + -