标签: vcl

当 ListView 所选项目发生更改时调用什么事件?

我想每当 ListView 中的选定项目发生变化时运行一个过程。显而易见的选择是 OnSelectItem,但当用户从一个选定项目移动到另一个选定项目(使用鼠标或箭头键)时,它会被调用两次。同样,在项目之间移动时,OnChange 会被调用三次

在这些条件下是否存在仅生成一次的事件?OnClick 生成一次,但不包括使用箭头键等在项目之间移动。

delphi vcl delphi-10.1-berlin

1
推荐指数
1
解决办法
1457
查看次数

防止任何应用程序最小化我的

我想知道是否有一种好方法可以防止任何应用程序最小化我的 Delphi 表单?我目前有一个无边框 VCL 表单,WindowState 设置为 wsMaximized。我想永久保持最大化状态。关于如何做到这一点的任何建议将是最美妙的。谢谢

forms delphi vcl minimize

1
推荐指数
1
解决办法
138
查看次数

如何调试 VCL 错误?

我不知道你是怎么做的,但是当我处理一个新组件时,为了测试它,我在运行时手动创建它并为其分配一个父级,这样我就不必每次都安装它。 .. 现在我完成了,当我以这种方式运行它时,它运行得很好。但是在我将它安装在 VCL 中并且我想把它放在一个表单上之后,我从构造函数的某个地方收到一个“访问冲突”错误。如果我无权逐行运行它以查看它发生的位置和条件,我该如何调试它?

delphi debugging vcl access-violation delphi-10.3-rio

1
推荐指数
1
解决办法
220
查看次数

获取TPopupMenu的调用组件

我有一个 TStringGrid,它有一个 TPopupMenu 连接。通过单击弹出菜单的一个事件,我想获取调用组件。那可能吗?

背景:这是一个更大的项目,每个表单都有一个我可以继承的“BasicForm”。所以我想为包含复制、选择等内容的网格提供一个“默认弹出菜单”。在继承的形式中,我只将网格(如果存在)与该弹出窗口匹配,我就完成了。

delphi grid vcl popupmenu firemonkey

1
推荐指数
1
解决办法
96
查看次数

显示分辨率更改后表单重绘问题

我有一个 Delphi GUI 应用程序,它运行得很好,直到显示分辨率更改自动导致程序的 GUI 窗口被重新绘制。我们可以通过消息捕获这个显示事件WM_DISPLAYCHANGE

在重绘事件中,似乎某些TListView在那一刻隐藏的组件不会被重绘,直到它们再次可见。

似乎仅在表单的可见组件上调用重绘,并且操作系统在不可见的项目再次变得可见时重新绘制它们。

但是,当代码引用消息TListViewWM_DISPLAYCHANGE尚未显示的 a 中的项目时,这会导致问题。内部应该TListView有项目,但TListView.Items.Count返回 0,就好像TListView是空的一样。

在屏幕上显示可见后TListView,一切都会恢复正常,并且我可以再次引用TListView.

我尝试显式调用TListView.Repaint()更新它而不必显示它,但它不起作用。

这是有记录的行为吗?

有没有办法立即重新绘制不可见的表单组件,而不让它在屏幕上可见?

delphi listview vcl repaint

1
推荐指数
1
解决办法
125
查看次数

取消选中 TCheckListBox 中的所有复选框

我希望用户能够按下按钮将 TCheckListBox 重置为其初始状态(没有选中任何框)。

请参阅下面的图片,了解单击按钮后我想要发生的情况的示例:

TCheckBoxList 中的多个复选框

变成:

没有选中任何框

我该怎么做呢?我知道可能会涉及一个循环,但我不确定从哪里开始。我在这里先向您的帮助表示感谢。

delphi vcl delphi-2010

1
推荐指数
1
解决办法
731
查看次数

如何获得 Delphi 中属性的指针?

我想要一个指向 的指针TEdit.Text,但无论我如何表达,Delphi 都坚持这一点E2036 Variable required

delphi vcl

1
推荐指数
1
解决办法
200
查看次数

How can I add images into a TComboBox in VCL?

I'm trying to have a TComboBox with images instead of text. Is this possible? If yes, then how? I've looked over all of the properties a dozen times and I can't find anything. Also, I'm very new to Delphi. So maybe this is obvious, but I couldn't find a place to add images into a ComboBox instead of text. How can I add images to my ComboBox?

我尝试在网上寻求帮助,但没有什么真正有帮助,也没有什么对我来说足够容易理解的。

delphi vcl delphi-11-alexandria

1
推荐指数
1
解决办法
127
查看次数

TWinControl 组件不响应表单大小调整的问题

我有一个用 Delphi 10.4 编写的可视化控件。为了方便地关注问题,我仅创建了具有 Anchors 和 Align 属性的 TwinControl。我包括了 AutoSize 属性。问题是当该组件构建安装并放置在 TForm 上时,控件将不会响应表单大小调整。

该控件已将控件设置为锚定正确。我向表单添加了一个 TButton,并将其锚点设置为 akRight。按钮随着表单的拉伸而移动。我的控制没有。我可以提供这个小测试的完整源代码。也许有人以前见过这个。我以前曾在我的组件中使用过 TFrame,但发现存在一些显示问题,仅部分控件显示或根本不显示。我的客户没有留下深刻的印象。我会欣赏一些智慧。

这是来自 TWinControl 的代码

unit SampleControl;

    interface

    uses
      System.Classes, Vcl.Controls, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Buttons, Vcl.Dialogs,
      Vcl.Graphics,AdvGrid,vcl.Forms,System.SysUtils,StrUtils,Messages, EBS3DataUtils,
      EBSGridSetup,System.UITypes,WinApi.Windows,vcl.Grids,AdvObj,System.Variants;

    Type
      TSampleControl = class(TWinControl)
      private
        FAnchors: TAnchors;
        FAlign : TAlign;
        FAutoSize : Boolean;
        procedure InitializeComponents;
        procedure SetAnchors(const Value: TAnchors);
        procedure SetAlign(const Value: TAlign);
        procedure SetAutoSize(const Value: Boolean);
      Public
        procedure Resize; Override;
        constructor Create(AOwner: TComponent); override;
        destructor Destroy; override;
      Published
        property Anchors: TAnchors read FAnchors write SetAnchors default …
Run Code Online (Sandbox Code Playgroud)

delphi anchor components vcl alignment

1
推荐指数
1
解决办法
116
查看次数

最简单的方式来显示不同风格的按钮

我想基于设计模板对旧的VCL应用程序进行现代化.该设计模板包含不同的按钮样式.比方说,有三种类型的按钮:LightButton,DarkButtonGreenButton.

由于DarkButtonTButton使用位图样式设计器修改了暗设计的外观,因此超过50%的按钮都会出现.

现在我想将其他按钮样式添加到.vsf文件中并在我的应用程序中使用它.最好的方法是什么?

我是否需要创建新的按钮类和新的后代,TStyleHook其中绘制全新的按钮?如果是,是否有办法尽可能多地重用代码Vcl.StdCtrls.TButtonStyleHook

还有其他方法,最佳实践或示例吗?

delphi vcl vcl-styles delphi-10.1-berlin

0
推荐指数
1
解决办法
305
查看次数