Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как динамически менять имя метода/свойста? [D6, XP]


IAH ©   (2006-05-28 01:34:00) 

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


novill   (2006-05-29 09:38:00) [1]


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


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


TUser   (2006-05-29 04:45:00) [2]

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

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

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


ЮЮ   (2006-05-29 03:39:00) [3]

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


begin...end   (2006-05-28 15:08:00) [4]

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

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

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


tesseract   (2006-05-28 14:49:00) [5]

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


SergP   (2006-05-28 14:14:00) [6]


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


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


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

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

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


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


> (или обратиться к свойству 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);


Наверх

Титульная страница Поиск, карта сайта Написать письмо