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

Вниз

Как обращаться к объекту по   Найти похожие ветки 

 
Fighter   (2003-05-06 10:21) [0]

Имеем строку: "Form3.Label3" Как обратиться к объекту Label3, то есть вызывать его методы, обращаться к свойствам?

Можно конечно "разрезать" строку на куски по разделителю "." и искать сначало форму, потом компонент, но как то это не красиво...


 
Ghost_   (2003-05-06 10:24) [1]

(components[i] as TLabel).Hint


 
Smithson   (2003-05-06 10:29) [2]

Не понятно. Спроси еще раз, другими словами.


 
Fighter   (2003-05-06 10:42) [3]

В переменной типа String имеем, что то вроде:
"Form2.Label2"
или
"Form55.Frame1.DBGrid1"
В принцепе не важно какое имя формы, компонента! Грубо говоря имеем "путь до компонента", примерно такой как если бы обращался из Delphi. Так вот как имея подобную строку получить ссылку на объект?


 
Palladin   (2003-05-06 10:57) [4]

1 парсинг строки
2 поиск по имени в соответствии с деревом компонентов

FindComponent
As
Is


 
titnn   (2003-05-06 10:59) [5]

TBitBtn(Form1.FindComponent("Btn"+intToStr(i))).Caption:="AAA";

что то типа этого ...


 
Fighter   (2003-05-06 11:12) [6]

Имя формы содержится в строке и может быть любое! так что вариант:
TBitBtn(Form1.FindComponent("Btn"+intToStr(i))).Caption:="AAA";
не подойдёт!

А парсинг без проблем! Об этом я писал в самом начале!


 
Fighter   (2003-05-06 11:12) [7]

В любом случае всем откликнувшимся Огромное спасибо!


 
Digitman   (2003-05-06 11:15) [8]

FindComponent() не пойдет
Ибо Label3 может иметь владельцем не саму форму Form3, а, скажем, панель Panel3, которой владеет форма Form3


 
Digitman   (2003-05-06 11:22) [9]


> Fighter


задуманный тобой "фокус" в общем случае не может быть выполнен, потому как заранее неизвестны классы объектов

разрешение же ссылки вида Form3.Label3 выполняется в compile-time, потому что декларации объектов Form3 и Label3 известны и, кр.того Label3 является полем класса Form3, смещение которого известно компилятору.



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

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

Наверх




Память: 0.45 MB
Время: 0.007 c
6-59843
alex55
2003-03-16 19:12
2003.05.19
NamedPipe


14-59848
Дмитрий К.К.
2003-05-01 10:34
2003.05.19
Именинники 1 мая


9-59530
ogo
2002-12-10 10:12
2003.05.19
телстурирование в opengl


1-59663
Anna
2003-05-07 11:03
2003.05.19
Преобразовать строку в предложение Паскаля


9-59521
Карлсон
2002-12-12 23:52
2003.05.19
FPS





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский