Главная страница
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.068 c
1-74202
LDE
2003-10-07 13:49
2003.10.23
Чтение строк из файла


14-74386
ORMADA
2003-10-01 12:35
2003.10.23
DCU


14-74441
ИМХО
2003-10-04 09:24
2003.10.23
---|Ветка была без названия|---


14-74396
Manfred
2003-10-02 16:03
2003.10.23
Визуальное программирование: расслабляет?


14-74481
pasha_golub
2003-10-01 16:59
2003.10.23
Явление четвертое, дизайнерское. Delphi Online Test