Главная страница
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.028 c
1-74147
satron
2003-10-10 14:38
2003.10.23
Как на форме сделать URL ?


3-73996
Ish1
2003-09-30 17:52
2003.10.23
Изменить LangDriver Таблицы


14-74430
DeMoN-777
2003-10-05 14:29
2003.10.23
Программирование лентяйки


3-74071
gedd
2003-10-01 19:45
2003.10.23
Проблема с выборкой в Access


3-74021
Lika
2003-10-03 14:38
2003.10.23
Может кто поможет разобраться с XLReport?