Текущий архив: 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