Cвязать два модуля
Модератор: Модераторы
Cвязать два модуля
Всем привет!
Xотелось бы связать два модуля. Чтобы модуль 1 подключался к модулю 2 и наобород. Один unit поместила в uses а другой в implementation. Все работает (нажимаю в unit 1 на кнопку, выскакивает unit 2, на кнопку в unit 2 выскакивает unit 1) по одному кругу.
Xотелось бы связать два модуля. Чтобы модуль 1 подключался к модулю 2 и наобород. Один unit поместила в uses а другой в implementation. Все работает (нажимаю в unit 1 на кнопку, выскакивает unit 2, на кнопку в unit 2 выскакивает unit 1) по одному кругу.
Последний раз редактировалось jenny 14.09.2015 12:20:13, всего редактировалось 1 раз.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
jenny, а зачем такие сложности?
Закрытие основной формы вызывает закрытие программы. Поэтому, для него лучше использовать visible=false
непонятно зачем нужно использовать Showmodal? Если для поднятия окна, то почему бы не использовать SetFocus?
Код: Выделить всё
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Showmodal;
Form2.Hide;
// Form1.Showmodal; {вы закрыли форму, как вы собираетесь что-то в ней дальше делать? Может, и получится, но неаккуратно...}
end; Закрытие основной формы вызывает закрытие программы. Поэтому, для него лучше использовать visible=false
непонятно зачем нужно использовать Showmodal? Если для поднятия окна, то почему бы не использовать SetFocus?
Последний раз редактировалось Лекс Айрин 10.07.2015 11:44:40, всего редактировалось 1 раз.
только что попробoвала, выскакивает та же самая ошибка. 
Последний раз редактировалось jenny 14.09.2015 12:19:37, всего редактировалось 1 раз.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
jenny А весь проект дать слабо? Возможно, ошибка где-то еще. Ну или хотя бы описания TForm1 и Tform2.
begin
Form2.Hide;
Form2.Hide;
Последний раз редактировалось jenny 07.11.2015 21:21:16, всего редактировалось 4 раза.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Замени showmodal на Show скорее всего, дело в этом.
Программа по одному кругу работает, а повторому нет. Я думаю тут проблема в unit2, так как ошибка указывает на него (что форма видима)
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
и если использовать visible=false, то для показа лучше использовать visible=true
и правда дело в Show. А чем они отличаются?
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
итоговая, работоспособная версия, с учетом всех моих слов.
unit1
unit2
Добавлено спустя 1 минуту 52 секунды:
showmodal открывает окно, которое должно быть всегда наверху. И, как насколько мне известно, не применимо для главного окна.
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
- Откуда: Волгоград
- Контактная информация:
visible, просто скрывает элемент управления. Чисто на нем можно делать самомодифицирующиеся окна.
Да не за что.
Да не за что.
