【问题标题】:TToolButton behaviour when checked选中时的 TToolButton 行为
【发布时间】:2013-06-10 20:39:58
【问题描述】:

我在TJvToolBar 上有一个TToolButton,它与打开串行端口的操作相关联。我在操作的OnExecute() 事件中有此代码:

procedure TfrmMainForm.acInstrumentConnectedExecute(Sender: TObject);
begin
  if acInstrumentConnected.Checked then
    if MessageDlg('Are you sure you wish to disconnect?', mtWarning, [mbYes, mbNo], 0,
      mbNo) <> mrYes then
      exit;
  acInstrumentConnected.Checked := not acInstrumentConnected.Checked;
  // actual code to connect/disconnect follows...
end;

如您所见,如果用户希望断开与端口的连接,我会在消息框后更改操作的Checked,但在进入此事件之前工具按钮的Down 属性会更改。即使用户选择 No 以响应提示,这也会导致出现 Up 按钮。为什么 ToolButton 会这样?

【问题讨论】:

  • 按钮tbsButtontbsCheck是什么风格?
  • @DavidHeffernan tbsButton
  • 我认为tbsCheck 会让你更幸运。
  • @DavidHeffernan 我对 TToolButton 的不同风格没有经验。是否使用 tbsCheck 执行操作?
  • 是的。对于这种类型的按钮,我一直使用tbsCheck 工具按钮,它使用Down 状态向用户提供视觉反馈。

标签: delphi delphi-xe2


【解决方案1】:

您有一个用于指示布尔状态的工具按钮。此类按钮应使用tbsChecked 工具按钮样式。当按钮使用该样式时,单击按钮会切换其Down 属性。

您正在使用tbsButton 按钮样式。这是用于不用于指示状态的标准按钮。当您有 tbsButton 时,Down 属性在 OnClick 事件期间和之后始终为 False

除了将样式设置为tbsChecked 之外,您还可以将Grouped 属性设置为True(将AllowAllUp 保持为False)。这将阻止您的按钮自动进行Down 状态切换。然后,您将能够以您使用的方式切换按钮的状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 2011-02-01
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多