Cвязать два модуля

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Cвязать два модуля

Сообщение jenny » 10.07.2015 12:25:45

Всем привет!

Xотелось бы связать два модуля. Чтобы модуль 1 подключался к модулю 2 и наобород. Один unit поместила в uses а другой в implementation. Все работает (нажимаю в unit 1 на кнопку, выскакивает unit 2, на кнопку в unit 2 выскакивает unit 1) по одному кругу.
Последний раз редактировалось jenny 14.09.2015 13:20:13, всего редактировалось 1 раз.
jenny
новенький
 
Сообщения: 59
Зарегистрирован: 25.05.2015 22:45:27

Re: связать два модуля

Сообщение Лекс Айрин » 10.07.2015 12:36:12

jenny, а зачем такие сложности?
Код: Выделить всё
procedure TForm2.Button1Click(Sender: TObject);
begin
  Form1.Showmodal; 
  Form2.Hide;
//  Form1.Showmodal; {вы закрыли форму, как вы собираетесь что-то в ней дальше делать? Может, и получится, но неаккуратно...}
end;


Закрытие основной формы вызывает закрытие программы. Поэтому, для него лучше использовать visible=false

непонятно зачем нужно использовать Showmodal? Если для поднятия окна, то почему бы не использовать SetFocus?
Последний раз редактировалось Лекс Айрин 10.07.2015 12:44:40, всего редактировалось 1 раз.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Cвязать два модуля

Сообщение jenny » 10.07.2015 12:40:09

только что попробoвала, выскакивает та же самая ошибка. :(
Последний раз редактировалось jenny 14.09.2015 13:19:37, всего редактировалось 1 раз.
jenny
новенький
 
Сообщения: 59
Зарегистрирован: 25.05.2015 22:45:27

Re: Cвязать два модуля

Сообщение Лекс Айрин » 10.07.2015 12:47:02

jenny А весь проект дать слабо? Возможно, ошибка где-то еще. Ну или хотя бы описания TForm1 и Tform2.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Cвязать два модуля

Сообщение jenny » 10.07.2015 12:56:34

begin
Form2.Hide;
Последний раз редактировалось jenny 07.11.2015 22:21:16, всего редактировалось 4 раз(а).
jenny
новенький
 
Сообщения: 59
Зарегистрирован: 25.05.2015 22:45:27

Re: Cвязать два модуля

Сообщение Лекс Айрин » 10.07.2015 13:04:38

Замени showmodal на Show скорее всего, дело в этом.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Cвязать два модуля

Сообщение jenny » 10.07.2015 13:07:32

Программа по одному кругу работает, а повторому нет. Я думаю тут проблема в unit2, так как ошибка указывает на него (что форма видима)
jenny
новенький
 
Сообщения: 59
Зарегистрирован: 25.05.2015 22:45:27

Re: Cвязать два модуля

Сообщение Лекс Айрин » 10.07.2015 13:08:33

и если использовать visible=false, то для показа лучше использовать visible=true
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Cвязать два модуля

Сообщение jenny » 10.07.2015 13:10:44

и правда дело в Show. А чем они отличаются?
jenny
новенький
 
Сообщения: 59
Зарегистрирован: 25.05.2015 22:45:27

Re: Cвязать два модуля

Сообщение Лекс Айрин » 10.07.2015 13:21:35

итоговая, работоспособная версия, с учетом всех моих слов.
unit1
Код: Выделить всё
procedure TForm1.Button2Click(Sender: TObject);
begin
  form1.Visible:= false;
  form2.Show;
end;     


unit2
Код: Выделить всё
procedure TForm2.Button1Click(Sender: TObject);
begin

  Form1.Visible:=true;
  Form2.Hide;
end;


Добавлено спустя 1 минуту 52 секунды:
showmodal открывает окно, которое должно быть всегда наверху. И, как насколько мне известно, не применимо для главного окна.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Cвязать два модуля

Сообщение jenny » 10.07.2015 13:24:36

спасибо за помощь :D
jenny
новенький
 
Сообщения: 59
Зарегистрирован: 25.05.2015 22:45:27

Re: Cвязать два модуля

Сообщение Лекс Айрин » 10.07.2015 13:26:45

visible, просто скрывает элемент управления. Чисто на нем можно делать самомодифицирующиеся окна.


Да не за что.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15

Рейтинг@Mail.ru