RT。
不用控件
不用控件
解决方案 »
- 控件大小
- 如何在一个函数中传递一个对象参数?
- 如何让ListView/TreeView向Windows的资源管理器拖动文件?
- delphi如何往数据库插入数据。
- RegisterServiceProcess 函数是在那个单元中声明的?
- 实现这样的功能,用indy,ics还是原生socket好呢?
- 简单打印可总报错
- 有人用Delphi做过对串口,并口,usb口及1394口简单控制的程序么?
- 谁有把程序放入Windows的任务栏状态区(taskbar status area)的控件或程序!
- 实现静音和如超级解霸里文件采单的播放VCD功能?请指教谢谢!
- windows图像显示原理。
- 请高手解决listview闪烁的问题
菜单条的长度默认是和Form的width一样的
不过vcl里面没有TMenubar 这个东西
{ }
{ Implements a TToolbar descendant thahas a Menu to }
{ make IDE like Toolbar menus very easy. This works }
{ only in Delphi 4.0 }
{ }
{ Copyright (c) 1995,98 Inprise Corporation }
{ }
{*******************************************************}
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('Win32', [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.用toolbar可以替代,不过有没有更直接的方法?
我只想改个背景色。