Я никогда не пытался сделать это, но я подозреваю, что это будет работать:
В вашем компоненте объявите свойство 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) не смог бы отличить TImageIndex
от Integer
. Теперь это два разных типа, но, конечно же, совместимые с назначением.)