关于tbsDropDown类型的toolbutton(200分)

  • 主题发起人 主题发起人 Adnil
  • 开始时间 开始时间
A

Adnil

Unregistered / Unconfirmed
GUEST, unregistred user!
有什么办法能让tbsDropDown类型的toolbutton下拉的时候不是下拉出菜单,
而是弹出一个form,panel什么的?
 
在onclick事件中写代码,指定panel在它下面显示出来。
 
不行的,onclick是在图标按钮上面出发的,而不是边上那个有箭头的下拉按钮。
 
可以,设置一个空的PopupMenu1,在PopupMenu1的onpopup
procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
form2.show;
end;
 
可以在menuitem相关的菜单里加入事件,这个menuitem对应 的onclick就可以响应这个dropdown
 
哪位大哥能给一个例子吗?(包括.dfm和.pas文件), 不慎感激。
 
好!

unit Unit1;

interface

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

type
TForm1 = class(TForm)
ToolBar1: TToolBar;
ToolButton2: TToolButton;
PopupMenu1: TPopupMenu;
a1: TMenuItem;
procedure a1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.a1Click(Sender: TObject);
begin
form2.show;
end;

end.


form:

object Form1: TForm1
Left = 186
Top = 110
Width = 696
Height = 484
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object ToolBar1: TToolBar
Left = 0
Top = 0
Width = 688
Height = 29
ButtonHeight = 31
Caption = 'ToolBar1'
TabOrder = 0
object ToolButton2: TToolButton
Left = 0
Top = 2
Caption = 'a'
MenuItem = a1
Style = tbsDropDown
end
end
object PopupMenu1: TPopupMenu
Left = 128
Top = 32
object a1: TMenuItem
Caption = 'a'
OnClick = a1Click
end
end
end

form2只是一个空form什么也没有
 
谢谢menxin的回答。

但是实际运行的效果跟我想象中的有些不太一样。
我的想法是跟word工具栏上的那个选择颜色的按钮类似,按一下下拉按钮,
自动弹出一个都是颜色块的form(当然我的应用不一定是选择颜色),并且这时仍然
保持主窗口的焦点;用户选择好了颜色,或者鼠标在主窗口上面按了,弹出窗口就自
动消失。

可能是我没有说清楚的缘故吧。

还是请大家想想看,分数不是问题。 :)
 
把上面的POPUP的菜单项都删掉,看是不是你的意思,要不,就再做个类似的按纽代替吧.
 
好像ExpressBar有类似的效果,你去了看看
 
对! 我就是想要ExpressBar这样的效果,呵呵!不过它的源代码过于复杂了,看不明白。
 
后退
顶部