![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте! Не подскажите как можно передать в процедуру ссылку на форму, чтобы в этой процедуре было возможно обращаться к компонентам этой формы? Т.е сделать так чтобы в процедуру не передавать ссылки не на компоненты, а только на форму. А уже в самой процедуре выяснять есть ли на той форме, ссылка на которую передана, нужный нам компонент и производить с ним какие либо действия.
Например форм у нас 100 шт., и на каждой есть Button1 и Label1. Как на клике этих Button1 вызвать процедуру TForm1.MyProc передав этой процедуре указание о том какая форма эту процедуру вызывает? procedure TForm1.MyProc(ссылка_на_форму); begin ссылка_на_форму.Label1.Caption := 'aaa'; end; |
#2
|
||||
|
||||
![]() Код:
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
![]() Неа, не так. Компилятор не даст в процедуре обратиться к Label1 формы, потому что у TForm нет компонента Label1. А он есть только у TForm1.
А нужно передавать ведь не только TForm1, а еще 50 других различных форм. |
#4
|
|||
|
|||
![]() PHP код:
Цитата:
Последний раз редактировалось Pyro, 18.09.2011 в 11:33. |
#5
|
||||
|
||||
![]() приведение типов:
Код:
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#6
|
|||
|
|||
![]() Нет, так не поучится, потому что тип неизвестен.
(form as TForm1).Label1.Caption := 'some text' т.е в этой строке неизвестно что ставить TForm1 или TForm2088. Хочется передавать в процедуру ссылки на разные формы и у них разные компоненты. Это нужно потому что в программе есть много разных похожих форм, у на обработчиках событий компонентов этих форм одинаковый код. И такого одинакового кода 90%. Поэтому хотелось бы вынести этот код в отдельные процедуры и в эти процедуры передавать только ссылку на форму, к какой он относится. |
#7
|
|||
|
|||
![]() http://ru.wikipedia.org/wiki/Объектн...82.D0.B8.D1.8F
конкретно - наследование |
#8
|
||||
|
||||
![]() у меня все получилось:
Код:
Пишу программы за еду. __________________ |
#9
|
|||
|
|||
![]() NumLock спасибо! Также на Королевстве Дельфи подсказали:
Код:
|
#10
|
||||
|
||||
![]() Цитата:
Цитата:
![]() Пишу программы за еду. __________________ |
#11
|
|||
|
|||
![]() А разве нельзя было просто подключить модуль первой формы ко второй?
Код:
Если такой метод не правелен скажите почему, просто я часто к этому пербегаю. |
#12
|
|||
|
|||
![]() Лучше всего подобную задачу решать через интерфейсы. Вот простой код:
Код:
Последний раз редактировалось Lucky192, 06.10.2011 в 19:21. |