Форум: "Основная";
Текущий архив: 2003.03.06;
Скачать: [xml.tar.bz2];
ВнизКак получить ссылку на компонент Найти похожие ветки
← →
Raduga (2003-02-25 14:01) [0]Здравствуйте, Уважаемые!
Пишу редактор свойств, как в нем получить ссылку на компонент свойство которого в данный момент редактируется?
Заранее спасибо.
← →
Zergling (2003-02-25 14:27) [1]Используй RTTI.
uses TypInfo;
procedure SetIntegerProp(AObject: TObject; AProperty: String; AValue: Integer);
var PropInfo: PPropInfo;
Begin
PropInfo:=GetPropInfo(AObject.ClassInfo,AProperty);
if PropInfo<>nil then
if PropInfo^.PropType^.Kind=tkInteger then SetOrdProp(AObject,PropInfo,Integer(AValue));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SetIntegerProp(Button1, "Width", 200);
end;
← →
Zergling (2003-02-25 14:41) [2]Можещь еще и сюда заглянуть
http://www.stikriz.narod.ru (инспектор объектов)
← →
Юрий Зотов (2003-02-25 22:43) [3]> Zergling 25.02.03 14:27)
>> Пишу редактор свойств
> Используй RTTI.
???
А редактор свойств что, по-Вашему, использует? Все эти унаследованные (и уже готовые!) Get/SetXxxValue? Зачем дублировать код?
>> как в нем получить ссылку на компонент
Вы считаете, что Ваш ответ отвечает на ЭТОТ вопрос?
> Raduga (25.02.03 14:01)
Если GetAttributes не содержит paMultiSelect, то его дает TComponent(GetComponent(0)). Если же содержит, то все выбранные компоненты дает цикл:
for i := 0 to PropCount - 1 do
...TComponent(GetComponent(i))...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.03.06;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.009 c