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

Вниз

Как обратится к объекту по его имени ?   Найти похожие ветки 

 
Кен ©   (2003-10-09 01:17) [0]

Есть функция обращения к свойству по его имени :
SetPropValue(Button6, "Caption", "test");
А мне нужно чтобы вместо Button6 была строка текста "Button6". Чтобы можно было оперативно обращаться не только к шестой, но и к любой другой кнопке. Как это правильно сделать ?

Что нибудь типа :
SetPropValue( Edit1.Text ,"Caption", "test");
В Edit1.Text - Button6 или что угодно.


 
default ©   (2003-10-09 01:29) [1]

напиши соотв-ую ф-ию соотв-ия имени об-та и его адреса


 
Кен ©   (2003-10-09 01:46) [2]


> default © (09.10.03 01:29) [1]
> напиши соотв-ую ф-ию соотв-ия имени об-та и его адреса

Если у меня сорок кнопок, лэйблов, эдитов и всего прочего, то чего же сорок функций писать что ли ?
Требуется универсальный подход.


 
default ©   (2003-10-09 01:55) [3]

зачем?
самое первое, что приходит в голову
завести список, допустим типа
TObjRec = record
Name: String;
Obj: TSender
end;
динамически расширяемый при создании нового объекта
и написав соответ-ую ф-ию отображения множества имён объектов на множество указателей на объекты будет иметь следующий вызов
SetPropValue(NameToObj(Edit1.Text),"Caption", "test");
это первое, что пришло в голову


 
default ©   (2003-10-09 01:56) [4]

Obj: TObject только...


 
777 ©   (2003-10-09 02:10) [5]

TButton(FindComponent("Button1")).Caption:="sdfsxf";
И зачем так извращаться?


 
default ©   (2003-10-09 02:14) [6]

777 © (09.10.03 02:10) [5]
я только только хотел про это же написать, но это не самый быстрый вариант


 
Кен ©   (2003-10-09 02:35) [7]

Гениально.
Это вот так тогда получается :

SetPropValue(FindComponent("Button6"),"Caption","test");


А как можно предварительно проверить существует ли эта Button6, её свойство Caption и соответствует ли её тип тому чего мы хотим ей присвоить ?
Чтобы ошибок не вызывать.


 
default ©   (2003-10-09 02:53) [8]

Кен © (09.10.03 02:35) [7]
всё тривиально до ужаса
первое, что я и писал и реал-ся в TComponent-е
если бы скорость поиска объекта по имени была критичным фактором всё бы было гораздо интересней
"А как можно предварительно проверить существует ли эта Button6, её свойство Caption и соответствует ли её тип тому чего мы хотим ей присвоить ?
Чтобы ошибок не вызывать."
ты глянь модуль TypeInfo, там при неверных пар-ах и exception-а по-моему не генерится, просто nil возвр-ся
SetPropValue ф-ия же по-моему?!
короче смотри модуль


 
Кен ©   (2003-10-10 02:15) [9]


> default © (09.10.03 02:53) [8]
> там при неверных пар-ах и exception-а по-моему не генерится

Да, действительно. Спасибо !



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

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

Наверх




Память: 0.49 MB
Время: 0.017 c
1-74239
dimm
2003-10-13 16:09
2003.10.23
Уважаемые мастера подскажите как найти символ переноса строки ...


1-74226
Tommy
2003-10-08 15:06
2003.10.23
nado 4tobi v Gride pravilno visve4ivalis gre4ekie bukvi...


14-74472
Ренат
2003-10-06 16:03
2003.10.23
Подскажите как ограничить пользователю доступ в интернет


1-74198
Zhirnov Maxim
2003-10-10 09:32
2003.10.23
Загрузка процессора на нужную величину


3-73998
Nikolai
2003-09-30 18:33
2003.10.23
импорт MEMO поля в MS SQL 7 в тип TEXT