一个简单的菜单按钮的实现
2002-01-05 18:16
691 查看
使用过速达2000的朋友都知道,其基本资料的浏览界面中有一种按钮,点击后会弹出一个和按钮对得很整齐的菜单.用Delphi制作一个类似的控件十分容易,代码如下:
unit MenuBtnVCL;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, CommCtrl,
ExtCtrls,Menus;
type
TMenuBtn = class(TBitBtn)
protected
procedure DoEnter;override;
procedure DoExit;override;
{ Protected declarations }
public
constructor Create(AOwner: TComponent); override;
procedure Click; override;
{ Public declarations }
published
{ AL: }
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TMenuBtn]);
end;
constructor TMenuBtn.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
layout:=blGlyphRight;
Font.Charset := GB2312_CHARSET;
Font.Color := clWindowText;
Font.Height := -12;
Font.Name := '宋体';
end;
procedure TMenuBtn.Click;
var tmp:TPoint;
begin
inherited Click;
if Assigned(PopUpMenu) then
begin
{ calc where to put menu }
tmp := ClientToScreen(Point(0, Height));
PopUpMenu.Popup(tmp.X, tmp.Y);
end;
end;
procedure TMenuBtn.DoEnter;
begin
Font.Style := [fsBold];
inherited DoEnter;
end;
procedure TMenuBtn.DoExit ;
begin
Font.Style := [];
inherited DoExit;
end;
end.
unit MenuBtnVCL;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, CommCtrl,
ExtCtrls,Menus;
type
TMenuBtn = class(TBitBtn)
protected
procedure DoEnter;override;
procedure DoExit;override;
{ Protected declarations }
public
constructor Create(AOwner: TComponent); override;
procedure Click; override;
{ Public declarations }
published
{ AL: }
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TMenuBtn]);
end;
constructor TMenuBtn.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
layout:=blGlyphRight;
Font.Charset := GB2312_CHARSET;
Font.Color := clWindowText;
Font.Height := -12;
Font.Name := '宋体';
end;
procedure TMenuBtn.Click;
var tmp:TPoint;
begin
inherited Click;
if Assigned(PopUpMenu) then
begin
{ calc where to put menu }
tmp := ClientToScreen(Point(0, Height));
PopUpMenu.Popup(tmp.X, tmp.Y);
end;
end;
procedure TMenuBtn.DoEnter;
begin
Font.Style := [fsBold];
inherited DoEnter;
end;
procedure TMenuBtn.DoExit ;
begin
Font.Style := [];
inherited DoExit;
end;
end.
相关文章推荐
- javascript实现一个简单的二级菜单
- 一个简单地list侧滑菜单,自己实现不是梦
- 利用JS实现一个简单的二级联动菜单
- 树形菜单的一个简单实现
- js实现一个简单的树形菜单
- 初学JavaScript 之 一个简单的JavaScript+css实现的菜单
- 实现一个简单的图形菜单
- Android上实现一个简单的天气预报APP(四) 添加按钮点击响应
- Linux脚本设计练习2——一个游戏菜单的简单实现
- 实现一个简单的按钮实例-上下左右,左旋转,右旋转,放大缩小。代码重构
- UINavigationController专栏--利用按钮宏定义构建一个简单的双项菜单
- 一个简单的实现不同权限的用户登录后看到不同的菜单设计的数据库表清单
- 实现一个简单的菜单程序,运行时显示"Menu:A(dd) D(elete) S(ort) Q(uit),Select one: "提示用户输入。输入A、D、S时分别提示"数据已经增加、删除、排序"
- 使用java AWT做一个增加按钮的简单菜单窗体
- 在页面中实现一个超简单的“复制按钮”
- 一个简单的导航栏菜单实现
- js实现的一个简单的侧滑菜单
- 一个简单的PopupWindow做的选项菜单点击按钮会在按钮下弹出几个下拉控件
- 今天找到一个简单好用的全选按钮功能实现
- 实现一个菜单的简单的动画效果