【发布时间】:2015-05-14 14:59:16
【问题描述】:
我需要在设计时获取表单上所有组件的列表(不是控件,只是组件)。
组件还必须在设计时作为 24x24 图像在表单上可见。
我可以使用这样的代码
procedure TForm2.GetComponentList(Memo1: TMemo)
var
i: Integer;
begin
for i := 0 to ComponentCount-1 do
if (Components[i] is TComponent) and not (Components[i] is TControl) then
Memo1.Lines.Add(Components[i].Name);
end;
但是在这里我会得到一些不可见的组件,比如 TField 等。
我只需要 IDE 在表单上显示为 24x24 位图的组件。
我可以使用 Open Tools API 吗?
【问题讨论】:
-
您可以查看GExperts 是如何做到的 - 请参阅sourceforge.net/p/gexperts/code/HEAD/tree/trunk/Source/Experts/…。
-
@Uli,除了 GExperts 正在使用和操作 IDE 中的 UI 元素('TContainer' WNDCLASS 的实例),这与识别 TComponents 那些 IDE UI 元素在表单上表示(OP 要求什么)。 GExperts 方法对此毫无用处。
标签: delphi ide components design-time