- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用设置了 Flat
属性的 TSpeedButton。当我按下它时,它会生成异常,它仍处于按下状态。下图中的第一张图片是按下按钮之前的图片,第二张图片是按下按钮期间的图片,以及异常时保持在该位置的图片。
使用了两个事件:OnMouseDown 和 OnMouseUp。事件处理程序的代码是:
procedure TVector_Choice.Button_Down (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
FStart_X := X;
FStart_Y := Y;
FSelected := True;
end; // MouseDown //
procedure TVector_Choice.Button_Up (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Application.ProcessMessages;
if Assigned (FOnSelect) and FSelected then
begin
FOnSelect (Sender);
FSelected := False;
end; // if
end; // MouseUp //
异常发生在FOnSelect (Sender);
中的过程Button_Up 中。该异常是通过 try..finally 处理的,以便重置鼠标指针。我不知道如何重置“按下”状态,它不是我上面尝试过的“按下”状态。我无法在小型测试程序中重现此行为。我使用Delphi XE。
我应该怎样做才能将此按钮自动重置为未按下状态?
最佳答案
您的代码有一些问题
为了能够在单个速度按钮上设置按下状态,您需要设置
A:AllowAllUp:= true
和
B:groupindex <> 0
.
只有这样C才会:down
属性允许将其本身用作复选框。
当满足这些条件时,您可以只使用普通 TSpeedButton 的 OnClick 事件。
procedure TForm2.btn2Click(Sender: TObject);
begin
case btn2.Down of
true: //do stuff when down
false: //do stuff when up
end; {case}
end;
无需复杂的自定义消息处理。
如果AllowAllUp:= false
然后 2 个或更多具有相同所有者和相同 groupindex
的快速按钮像一组单选按钮一样一致行动。
代码注释
最后,您的代码似乎使用了从 TSpeedButton 继承的自定义控件,但没有 inherited
关键字在眼前,当您禁用继承的行为时,您希望按钮如何操作?
除此之外,您的代码还有许多其他问题,但主要问题是,如果您必须从标准控件继承,因为您需要一些特殊行为,请确保重用尽可能多的行为尽可能尝试并始终调用 inherited
在您重写的任何代码中(除非您想完全禁用继承行为)
关于delphi - TSpeedButton 卡在向下外观中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8451216/
我使用设置了 Flat 属性的 TSpeedButton。当我按下它时,它会生成异常,它仍处于按下状态。下图中的第一张图片是按下按钮之前的图片,第二张图片是按下按钮期间的图片,以及异常时保持在该位置的
有没有办法强制TSpeedButton重新绘制平坦? 使用触摸屏显示器时,鼠标不会移出按钮,因此即使您单击其他按钮,凸起的边框也会保留在屏幕上。 最佳答案 看起来这不是我可以在没有触摸屏的情况下重现的
我尝试使用 TToolbar 以及 TActionList、TSpeedbutton 和 TImageList 创建一个工具栏。 我使用了32px的方形图像,但是当我在TSpeedButton中通过I
我在选项卡更改过程中动态创建速度按钮,我想禁用速度按钮,当它被禁用时,它不会显示加载的图像。当速度按钮处于禁用状态时,如何在速度按钮上显示图像。我正在使用代码SpeedButton,SpeedButt
重现步骤: 将TPanel添加到新的VCL表单并设置Align = alClient。 将 TSpeedButton 添加到面板,并将一些 bmp 图像分配给 Glyph 属性。 (可选,但更清晰:F
我遇到了一些困难,是我一个人的问题还是您不能将资源中的图像分配给 TSpeedButton 的字形,而没有如下所示的可怕的黑色轮廓? 我已经以与 TImage 组件完全相同的方式分配了它,并且得到了所
我想将 TButton 或 TSpeedButton 放在 TImage 之上并使按钮透明,以便您仍然可以单击它,但您看到的是图像而不是按钮。我似乎无法让它工作,我将 TSpeedButton 更改为
在我的面板中,我有“TSpeedButton。没有 Tab Order 属性来订购这个 3 速按钮。 如何在我的面板上组织速度按钮? 最佳答案 TSpeedButton 派生自 TGraphicCon
我需要向 TSpeedButton 添加 2 个新属性。尽管属性在对象检查器中正确显示,并且其值存储在 DFM 文件中,但运行时的“create”方法不断将属性获取为“nil”。 出了什么问题? 这是
如何将 TSpeedButton(在 TToolbar 上)设置为按下状态?它仅在单击时突出显示,但当鼠标离开它时变得正常。我将属性 Stayspressed 设置为 True,属性 IsPresse
我有一个旧应用程序(Delphi 5),我想对其进行一些更改。 我已经为其设置了 list ,但速度按钮不遵循 Windows 主题。我该怎么办? 最佳答案 Delphi 5 对 Windows 视觉
我有一个 TSpeedButton 和一个包含各种字形的 TImageList。其中一个具有 Alpha channel ,当绘制到 UI 的某些部分时,它看起来非常漂亮...但是当该字形绘制在 TS
首先,我已经知道,当你实现一个TSpeedButton时,当你分配它的Glyph时,如果你没有多个字形,那么NumGlyphs 应为 1,禁用时为 it will automatically use
我不确定为什么 TSpeedButton 具有此属性,但是当 TSpeedButton 是给定组索引的唯一按钮时,无论是否按下“AllowAllUp”,它都不会保持按下状态。也许绝地控制就足够了,但希
发生了一件很奇怪的事情: 我有一大堆 TFrame(可能是 TCustomFrame,不记得了,因为我在 40 个奇数帧和父级之间创建了一个中间类),我继承它们以构成“非常酷”的 HL7 公式的配置部
我刚刚从 Delphi 10.3 升级到 Delphi 10.4.1,我尝试升级了几个应用程序。除了一件事,它们似乎工作正常。 TSpeedButton 拒绝更改字体大小,它始终显示默认大小 8。 为
为了解决一个最简单的完整问题,我将一个 WMF 文件加载到表单上的 TImage 控件中。该控件包含 Picture 属性,它是一个 TPicture 类型。我正在尝试“光栅化”加载到 TImage
如何在 C# 2.0 中创建 Delphi TSpeedButton 或 SpeedButton? 最佳答案 使用 Button 并将 TabStop 属性设置为 false 仅在点击表单时有效...
我是一名优秀的程序员,十分优秀!