问题标签 [vcl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4098 浏览

delphi - ListBox 长项提示

有一个带有一些长项目的 ListBox。这些长项目超出了 ListBox 的右边缘,这里有一个想法,即当鼠标悬停在这些项目上时显示这些项目的提示。

我找到了一个例子:(来自http://delphi.about.com/cs/adptips2001/a/bltip0201_4.htm

它可以工作,但是每次我想查看另一个项目的提示时,我必须将鼠标从 ListBox 移开,然后指向另一个项目以查看它的提示。有没有办法在不将鼠标移离 ListBox 边框的情况下查看每个项目的提示?

0 投票
1 回答
16318 浏览

delphi - 如何获取列表视图中的项目和子项目?

我想在我的列表视图中获取所有项目和子项目,但我得到的只是“TlistItem”

这是我的代码:

如何以字符串形式获取项目名称及其 2 个子项目的名称?

0 投票
1 回答
965 浏览

windows - 在 Delphi 中单击任务栏按钮时将表单置于其他人之上

基本问题:调用更新过程时,TStatusBar 闪烁。轻松解决此问题的方法

执行的代码在问题第一部分的第一部分(你可以看到浅灰色的分隔线)......

但是 - 问题是在执行此代码时,表单不会自动激活并专注于所有其他应用程序的顶部。

我读过这些文章:

http://www.installationexcellence.com/articles/VistaWithDelphi/Original/Index.html
http://delphi.about.com/od/formsdialogs/l/aa073101b.htm

但根据他们的说法,无论如何它都应该起作用。我用 Show 尝试了所有的 TApplicationEvents 和 TForm 事件;可见:重绘;刷新; 带到前面;...没有任何作用。

所以 - 我想我有两个选择 - 多线程或捕获 WM_SYSCOMMAND 消息,并在 SC_ACTIVE 事件中简单地重新绘制表单。这个场景能成功吗?

0 投票
2 回答
3918 浏览

delphi - 在 Delphi 中使用框架来隐藏 GUI 信息

在过去的 3 年里,我一直在兴趣/职业层面上学习 Delphi。我很高兴地说,我现在已经进步到可以带着恐惧和尴尬回顾我早期的代码了。所以我现在正在浏览我的一些早期应用程序并重写/重构它们。

我试图摆脱的一个坏习惯是从另一个单元访问一个表单上的组件。为了实现这一点,我一直在尝试使用框架作为信息隐藏的方法。因此,我没有创建一个带有组件的表单,而是创建一个框架来保存所有表单组件,然后将框架放置在表单上,​​将框架声明移动到私有声明中,

然后在表单初始化部分注册框架

然后我在表单单元的公共部分声明我需要的属性,它可以访问框架及其组件。

我还使用框架来合并经常重复的组件组。

这似乎适用于我想要的目的(隐藏 Myframe 及其组件),但是其他人有这种方法的经验吗?

使用框架有什么缺点吗?我真的从这样做中获得任何好处吗?在框架内使用嵌套框架有什么问题吗?在 Delphi 中使用框架是否有任何好的实践指南?关于隐藏在 Delphi 中的 GUI 信息,是否有更好/更简单的方法来实现相同的效果?

血红蛋白

0 投票
3 回答
1816 浏览

windows - Delphi 2K9 在运行时禁用和启用组件。奇怪的问题

这是代码:

我觉得不需要再解释了。ShowMessage 正确显示了每个组件的名称,但在 StringLists 中没有添加任何内容。为什么?


更新:由于问题变得非常疯狂,我确实确认了答案,这对我有所帮助。

我知道我确实写的东西很不清楚,但我很有限,因为这些代码行是商业项目的一部分,是我的爱好和内心的东西。主要问题已在 6 小时前发现,但 Rob 只是想扩展整个问题 :D 不,无意冒犯,伙计,没关系。我很高兴收到如此愿意和有帮助的帖子。再次感谢。

0 投票
5 回答
23432 浏览

delphi - 如何在一组中设置两个单选按钮,在另一组中设置两个?

我的表单上共有 4 个单选按钮,我想将前两个按钮设置在一组中,将后两个按钮设置在另一组中,以便我可以检查第一组中的一个和第二组中的一个。

现在,如果我选中第一组中的一个,则第二组中的一个将变为未选中。

我一直想知道如何做到这一点,我相信现在是解决这个问题的时候了。:)

0 投票
1 回答
1273 浏览

c# - 将 C++ Builder 代码转换为 C# .NET(TComponent、TOjbect、TList 等)

在哪里可以找到TComponentTObjectTList等的 API 文档?我正在将一些使用 C++ 生成器编写的 C++ 代码转换为 C#。为了找到 C# 等效项,我无法找到这些类的相关文档。

0 投票
3 回答
291 浏览

delphi - 什么是 Delphi 中的“可定制的 VCL 设计器指南”?

网页http://www.codegear.com/en/products/bds2006以包含以下行的列表开头:

  • 确保与可定制的 VCL 设计器指南的视觉一致性。

这与“激光线”指南有关吗?这些指南如何“定制”?

编辑:此页面提供有关此功能的其他信息。

0 投票
1 回答
402 浏览

c++ - 与 VCL 表单一起使用时 IDropTarget 出现问题

我有一个在 Codegear 中开发的 VCL gui。我已经为 mainform 创建了一个 DropTarget,并且 DropTarget 对象实现了 IDropTarget 接口,它允许我从资源管理器中拖放文件。现在因为我只希望某些子组件成为放置目标(而不是整个表单),所以当 POINTL 坐标在组件的范围内时,我只有 DragEnter 方法返回 S_OK。

但是,如果我将项目缓慢拖入表单的边界而不是组件的边界,则 DragEnter 返回 E_NOINTERFACE,因此不允许拖放。如果我继续拖入放置区,DragEnter 不会触发,我明白它为什么不触发。所以我的问题是如何手动触发 DragEnter 事件

0 投票
1 回答
634 浏览

delphi - Delphi 表单在显示时总是会触发 OnResize 吗?

如果我创建一个新的 Delphi 表单,挂钩其 OnResize 事件并运行应用程序,则在显示窗口之前会触发 OnResize。我不知道这是否会永远发生,对于任何窗口。

(对于熟悉 Windows API 的任何人,我已将其追溯到 TCustomForm.ShowingChanged 中的 ShowWindow 调用(Delphi 2007 中的 Forms.pas 第 5503 行),这显然触发了一个WM_SIZE......至少,对于一个没有其他的新窗口属性设置。我还没有看到它记录 ShowWindow 总是触发WM_SIZE,所以我不知道我是否可以指望这个。)

所以:我可以依赖一个 TForm在第一次显示时总是触发 OnResize 吗?还是在某些情况下(也许如果窗口不可调整大小,也许如果 Position 属性具有某些值等)在窗口首次显示之前OnResize 可能不会触发?