我使用工具栏中的Delphi 2009工具按钮创建,如下所示:Create TToolbutton runtime
不同之处在于我也在运行时分配了一个动作。我的代码如下:
Function TSymbolVisWin.MakeButton(BCnt:integer; Act:TAction):integer;
var
TB : TToolButton;
ACnt, Ind: Integer;
begin
TB:=TToolButton.Create(ListBar);
try
with TB {NB} do
begin
Parent:=ListBar;
Action:=act; // here seems to be the difference
Style:=tbsButton;
grouped:=false;
Enabled:=true;
ShowHint:=True;
Tag:=BCnt;
Hint:=Act.Hint;
caption:='';
Wrap:=False;
ImageIndex:=Act.ImageIndex;
// here comes the problem
if ListBar.ButtonCount > 0 then
Left:=ListBar.Buttons[ListBar.ButtonCount-1].Left+tb.Width
else
Left:=0; }
// end of problem
end;
except
end;
当我离开(明显的问题)行时,我看到跟随奇怪的行为:
我按下按钮并触发分配的操作,但左侧的两个按钮设置为向下。当我再次按下另一个按钮时,按钮向左按下两个按钮,然后按下按钮。
我需要帮助,我不知道原因
亲切的问候
恭
答案 0 :(得分:1)
如操作设置AutoCheck
,我可以复制您的问题,如评论中所述。
你的错误就是不要对你问题中所连问题的接受答案给予足够的重视。在设置Left
属性后,答案的按钮是的父级。在链接答案的评论中也提到这是问题试图解决的问题的原因(尽管那里有一个不同的 - 可能两者都与索引搞砸了)。