我不知道为什么TSpeedButton有这个酒店但是,当一个TSpeedButton是唯一的按钮定groupindex,它不住压,不论是或不是"AllowAllUp"。也许是个绝地武士的控制就足够了,但我希望有一些修正。任何帮助或轶事,表示赞赏。

顺便说一句,我是(仍)使用德尔菲7,不知道如果这是一个全面的难题。

有帮助吗?

解决方案

我这里没有D7,但是在D2006中,如果GroupIndex的值> gt,则Speedbutton会保持不变。 0

如果这不是您想要的行为,您可以在OnClick-Eventhandler中手动设置Down属性(确保GroupIndex为0)。

其他提示

我只是想说在德尔斐7(建立4.453):

  • 创造新的应用程序
  • 添加 TSpeedButton 形成
  • 设置 AllowAllUp := true;
  • 设置 GroupIndex := 1;
  • 运行的应用程序

当击按钮就切换其关闭状态,没有任何其他代码的需要。

knight_killer是正确的。我可以告诉你,它适用于任何版本的delphi:

object SpeedButton1: TSpeedButton
  Left = 152
  Top = 384
  Width = 23
  Height = 22
  AllowAllUp = True
  GroupIndex = 99
end

Delphi为您做的工作是“不写任何代码”。

在IDE中选择您的所有SpeedButtons 想要作为一个小组进行操作然后设置整体 group's" GroupIndex"除了“0”之外的其他东西。 你完成了 - 没有代码 - NADA !!

嗯,很奇怪,我记得成功使用了这几次。也许您应该尝试使用SpeedButton的 Down 属性?我不认为当你点击它时它会自动切换---你应该明确地切换 Down ,我猜......

[编辑:用 Down 替换 Checked --- TSpeedButton没有 Checked 属性,抱歉!]

要使其正常工作,您不能只切换Down属性,因为它在OnClick事件中始终处于关闭状态。你需要有另一个值:

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  MyBoolProperty := not MyBoolProperty;
  SpeedButton1.Down := MyBoolProperty;
end;

诀窍是将GroupIndex设置为唯一值并将AllowAllUp设置为true。 如果你忘记了第一个,它将不会停留,如果你忘记了第二个,一旦它失效就不会熬夜。

将AllowAllUp设置为True。

将GroupIndex设置为非0。

要在OnClick中保留所有内容,请尝试

 with Speedbutton1 do
 begin
      if tag = 1 then tag := 0 else tag := 1;
      down := (tag = 1);
 end;

GroupIndex 对按钮进行分组。组中只有一个按钮可能处于活动状态。所有这些都需要具有高于 0 的相同索引。

AllowAllUp 允许在连续点击两次时按下和向上切换按钮。

我正在为我的问题寻找解决方案,我认为这是一个相同的问题。 我想让SpeedButton像开关一样切换上下状态,我通过设置属性来管理它:

AllowAllUp := True; 
GroupIndex := 1;

然后在我写的按钮的 OnClick 事件中:

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  if( SpeedButton1.AllowAllUp ) then 
  begin 
    SpeedButton1.AllowAllUp := False; 
    SpeedButton1.Down := True; 
  end else 
  begin 
    SpeedButton1.AllowAllUp := True; 
    SpeedButton1.Down := False; 
  end; 
end;

单击按钮时,按钮会向下切换,再次单击时按下按钮。

希望它会有任何帮助

将AllowAllup设置为true,将Down设置为false。

然后在 OnClick 事件:

....
btn.AllowAllUp := not btn.AllowAllUp;
btn.Down       := not btn.Down;
....
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top