当然,您知道在设计时使用ImageList和ImageIndex属性即可在对象检查器中轻松进行操作。分配Imagelist后,您可以单击ImageIndex属性,然后会出现带有索引的漂亮图像列表。
我正在尝试制作自己的控件,该控件具有imagelist和imageindex属性。但是我想知道,如何让对象检查器“知道”(或使其知道)应该从组合框中获取我定义的imageindex属性。 (内置在对象检查器本身中)
有人知道这个窍门吗?

非常感谢

最佳答案

我从未尝试过这样做,但是我怀疑这会起作用:

在您的组件中,将ImageIndex属性声明为不是integer,而是声明为TImageIndex

也就是说,写(例如)

private
  FImageIndex: TImageIndex;
published
  property ImageIndex: TImageIndex read FImageIndex write SetImageIndex default -1;


代替

private
  FImageIndex: integer;
published
  property ImageIndex: integer read FImageIndex write SetImageIndex default -1;


TImageIndex定义为

type
  TImageIndex = type Integer;


因此它实际上是一个整数,但类型不同。

(作为脚注,如果定义是

type
  TImageIndex = Integer;


那么TImageIndex只是Integer的另一个名字,因此没有人(甚至是IDE)也无法将TImageIndexInteger区分开。现在它们是两种不同的类型,但是,当然是分配兼容的类型。)

10-05 22:17