Страница 1 из 1
		
			
				Cвязать два модуля
				
Добавлено: 
10.07.2015 12:25:45 jenny
				Всем привет!
Xотелось бы связать два модуля. Чтобы модуль 1 подключался к модулю 2 и наобород. Один unit поместила в uses а другой в implementation. Все работает (нажимаю в unit 1 на кнопку, выскакивает unit 2, на кнопку в unit 2 выскакивает unit 1) по одному кругу.
			 
			
		
			
				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?
 
			 
			
		
			
				Re: Cвязать два модуля
				
Добавлено: 
10.07.2015 12:40:09 jenny
				только что попробoвала, выскакивает та же самая ошибка. 

 
			
		
			
				Re: Cвязать два модуля
				
Добавлено: 
10.07.2015 12:47:02 Лекс Айрин
				jenny А весь проект дать слабо? Возможно, ошибка где-то еще. Ну или хотя бы описания TForm1 и Tform2.
			 
			
		
			
				Re: Cвязать два модуля
				
Добавлено: 
10.07.2015 12:56:34 jenny
				begin
  Form2.Hide;
			 
			
		
			
				Re: Cвязать два модуля
				
Добавлено: 
10.07.2015 13:04:38 Лекс Айрин
				Замени showmodal на Show скорее всего, дело в этом.
			 
			
		
			
				Re: Cвязать два модуля
				
Добавлено: 
10.07.2015 13:07:32 jenny
				Программа по одному кругу работает, а повторому нет. Я думаю тут проблема в unit2, так как ошибка указывает на него (что форма видима)
			 
			
		
			
				Re: Cвязать два модуля
				
Добавлено: 
10.07.2015 13:08:33 Лекс Айрин
				и если использовать visible=false, то для показа лучше использовать visible=true
			 
			
		
			
				Re: Cвязать два модуля
				
Добавлено: 
10.07.2015 13:10:44 jenny
				и правда дело в Show. А чем они отличаются?
			 
			
		
			
				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 открывает окно, которое должно быть всегда наверху. И, как насколько мне известно, не применимо для главного окна.
 
			
		
			
				Re: Cвязать два модуля
				
Добавлено: 
10.07.2015 13:24:36 jenny
				спасибо за помощь  

 
			
		
			
				Re: Cвязать два модуля
				
Добавлено: 
10.07.2015 13:26:45 Лекс Айрин
				visible, просто скрывает элемент управления. Чисто на нем можно делать самомодифицирующиеся окна.
Да не за что.