Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как обновить содержимое 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?


Наверх

Титульная страница Поиск, карта сайта Написать письмо