Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.06;
Скачать: CL | DM;

Вниз

Как получить ссылку на компонент   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
3-16867
Roman Go
2003-02-18 10:04
2003.03.06
Кто нибудь видел DBGrid


1-17006
SergeyND
2003-02-24 23:36
2003.03.06
TRichEdit


3-16922
Rule
2003-02-15 23:59
2003.03.06
Надо перенести базу данных Аксесс97 на удаленный FB


14-17323
Дмитрий К.К.
2003-02-17 09:04
2003.03.06
Глоссарий компьютерных терминов на английском языке


3-16968
AlexAlex2
2003-02-14 16:59
2003.03.06
Как бороться с Directory is bizy на присв. Session.PrivateDir ?