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

Вниз

Как динамически менять имя метода/свойста?   Найти похожие ветки 

 
IAH   (2006-05-28 01:34) [0]

Т.е., грубо говоря, мне нужно запустить метод methodXX (или обратиться к свойству propertyXX), где вместо "XX" подставляется некое зависящее от ситуации число.
Каким образом это можно сделать?


 
Жуков Олег   (2006-05-28 02:24) [1]


> (или обратиться к свойству propertyXX), где вместо "XX"
> подставляется некое зависящее от ситуации число.


Это возможно только для published свойств. См. функции из модуля TypInfo. Вот например код, который для Form1 установит новый цвет, обратившись к свойству Color по строке с его именем.

uses
 TypInfo

var
 Obj: TObject;
 PropertyName: string;
 NewPropertyValue: Integer;
 PropInfo: PPropInfo;
 
 Obj := Form1;
 PropertyName := "Color";
 NewPropertyValue := clRed;

 PropInfo := GetPropInfo(Obj, PropertyName);
 SetOrdProp(Obj, PropInfo, NewPropertyValue);


 
Юрий Зотов ©   (2006-05-28 13:01) [2]

> Как динамически менять имя метода/свойста?
Никак.

> нужно запустить метод methodXX (или обратиться к свойству propertyXX),
> где вместо "XX" подставляется некое зависящее от ситуации число.
А при чем тут изменение имени?


 
SergP ©   (2006-05-28 14:14) [3]


> Т.е., грубо говоря, мне нужно запустить метод methodXX (или
> обратиться к свойству propertyXX), где вместо "XX" подставляется
> некое зависящее от ситуации число.
> Каким образом это можно сделать?


Зачем пытаться все делать через Ж..., если можно по-человечески?


 
tesseract ©   (2006-05-28 14:49) [4]

можно создать массив процедурного типа.
Я например так для 1с addin-ы делаю. Мне  1c  - имя функции/поля, а я данные.


 
begin...end ©   (2006-05-28 15:08) [5]

> Юрий Зотов ©   (28.05.06 13:01) [2]

> > Как динамически менять имя метода/свойста?
> Никак.

Если имеются в виду те имена, которые используются RTTI, то их менять можно...


 
ЮЮ ©   (2006-05-29 03:39) [6]

Может вместо меодов Прыгнуть10 или Прыгнуть20 (в зависимости от ситуации) выполнить метот Прыгнуть(КоличествоРаз) ? Да и Property параметраметрическими могут быть.


 
TUser ©   (2006-05-29 04:45) [7]

Если ХХ - это число, то надо сделать массив

property Prop [Index: integer]: ... read ... write ... ; default;

Подробности есть в справке и руководствах по Delphi.


 
novill ©   (2006-05-29 09:38) [8]


>  мне нужно запустить метод methodXX


Вкуривать Methodname, MethodAdress, TMethod до просветления.



Страницы: 1 вся ветка

Текущий архив: 2006.06.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.062 c
15-1148562857
Вася Аникеев
2006-05-25 17:14
2006.06.18
Что делать, комп ругается?


15-1148368995
Polevi
2006-05-23 11:23
2006.06.18
решил вот помочь


4-1142905761
powerchute
2006-03-21 04:49
2006.06.18
Управление настройками электропитания


3-1145504626
гога
2006-04-20 07:43
2006.06.18
Сортировка данных в компоненте DBGridEh


15-1148560432
ArtemESC
2006-05-25 16:33
2006.06.18
BAT - файл...