Текущий архив: 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.46 MB
Время: 0.011 c