![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как обновить содержимое Form2 ;из Form1
iea © (2002-03-04 11:02:00)Уважаемые Мастера! Я создаю Form1, которая вызывает Form2. Требуется: при нажатии на кнопку в Form2 "Применить" перерисовать Form1, НЕ ЗАКРЫВАЯ Form2. Какое сообщение надо передать Form1? И если не затруднит, приведите, пожалуйста пример.
lipskiy (2002-03-04 15:38:00) [1]Любая форма может ссылаться на любую, и при некорректно построенном коде реально можно зациклиться :) За этим надо следить самому.
Alx2 (2002-03-04 12:05:00) [2]Может.
Просто второй модуль подключи в uses после implementation
iea (2002-03-04 11:52:00) [3]Спасибо. Хочу уточнить:
Есть Form1. Назовем ее мамой. И есть Form2 - это дочка. И когда я вызываю Form2, она может обращаться к свойствам и методам Form1? Просто меня это удивляет, ибо получаем кольцеобразные ссылки, т.к. ранее в Form1 есть ссылка на Form2 в виде uses. А чтобы вызвать метод или свойство Form1 из Form2, в Form2 надо сослаться на Form1. Разве это возможно? Понятно, что мама ссылается на дочку, но может ли дочка ссылаться на маму?
Alx2 (2002-03-04 11:41:00) [4]>Нельзя же из Form2 вызывать, например, метод Form1.ChanhePaint
Почему? Можно.
Есть другой вариант: перед показом Form2 заполняешь ее поле (заранее созданное поле типа TForm1) Form2.UpdateToForm:=Form1;
Потом, в обработчике на кнопке "Применить" Form2 пишешь UpdateToForm.ChanhePaint
iea (2002-03-04 11:34:00) [5]Не совсем так :(
Для наглядного образца: сама IDE Delphi. Можно вызвать настройку редактора, изменить фонты, цвета и т.д., и применить к самому редактору, не закрывая самой же настройки.
Вопрос стоит так:
В Form1 стоит uses Form2
Из Form1 вызываю Form2. Произвожу манипуляции. Надо: не закрывая Form2, применить изменения к Form1. Как это сделать? Вариант с закрытием Form2 реализован. А без закрытия? Нельзя же из Form2 вызывать, например, метод Form1.ChanhePaint (выдуманный). Быть может, послать сообщение?
Alx2 (2002-03-04 11:11:00) [6]Или Form1.Invalidate :)
Sasha9 (2002-03-04 11:08:00) [7]Form1.Refresh/Repaint/Update
Андрей Сенченко (2002-03-04 11:06:00) [8]Не надо никаких сообщений на мой взгляд. Просто ставишь в UNIT2
USES
UNIT1
И в процедуре обработки нажатия кнопки на Form2 пишешь
Form1.Repaint // ( или чего Ты там запланировал )
iea (2002-03-04 11:05:00) [9]Извините, вопрос не совсем точно сформулирован.
Правильно: как обновить содержимое Form1 из Form2?