Главная страница
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.042 c
15-1148657865
AlexanderMS
2006-05-26 19:37
2006.06.18
Интересное задание.


15-1148535398
Ega23
2006-05-25 09:36
2006.06.18
С Днём рождения! 25 мая


2-1149015612
Volkodav
2006-05-30 23:00
2006.06.18
Передача файлов через интернет


15-1148670836
Cerberus
2006-05-26 23:13
2006.06.18
Чё то я запутался.


1-1147540799
deltav1
2006-05-13 21:19
2006.06.18
Параллелизм и время