Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2015, 11:29   #1
Jenny89
Пользователь
 
Регистрация: 14.07.2015
Сообщений: 30
По умолчанию переход между формами с ShowModal

Нужна помощь, хочу осуществить переход между формами желательно с помощью ShowModal.

Код:
Form1.Showmodal;
Form2.Close;
Если переход присходит по второму кругу выскакивает ошибка:TCustomForm.ShowModal for Form7 impossible, because already modal
Как можно с ShowModal реализовать переход между формами?
Jenny89 вне форума Ответить с цитированием
Старый 19.08.2015, 11:46   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
хочу осуществить переход между формами
что это такое?
Перед вами активная форма Form...
что делаете и что происходит далее?
P.S. ShowModal это не переход туда и далее, это переход туда с возвратом обратно.
Если мы хотим показать исходную, надо не показывать ее заново, а просто закрывать текущую модальную (и те которые ими станут) до тех пор пока не до дойдем до
нужной.

Код:
form2.Close;//сначала что-то ненужное закрыть
form1.ShowModal;// а потом показать что-то нужное
может так?
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 19.08.2015 в 12:02.
evg_m вне форума Ответить с цитированием
Старый 19.08.2015, 11:58   #3
Jenny89
Пользователь
 
Регистрация: 14.07.2015
Сообщений: 30
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
что это такое?
Перед вами активная форма Form...
что делаете и что происходит далее?
P.S. ShowModal это не переход туда и далее, это переход туда с возвратом обратно.
скажем я на форме А перехожу на форму Б, потом с Б опять на А, и когда во второй раз перехожу с А на Б появляется выше указанная ошибка. Это можно как то исправить ?
Jenny89 вне форума Ответить с цитированием
Старый 19.08.2015, 12:13   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Это можно как то исправить ?
чтобы исправлять код нужен код, который надо исправить.
где код переходов и возвратов?
возврат ИЗ модальной делается не переходом, а "простым" закрытием.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 19.08.2015 в 12:16.
evg_m вне форума Ответить с цитированием
Старый 19.08.2015, 12:27   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от Jenny89 Посмотреть сообщение
Нужна помощь, хочу осуществить переход между формами желательно с помощью ShowModal.

Код:
Form1.Showmodal;
Form2.Close;
Если переход присходит по второму кругу выскакивает ошибка:TCustomForm.ShowModal for Form7 impossible, because already modal
Как можно с ShowModal реализовать переход между формами?
Никто так до сих пор и не понял о каком "переходе" идет речь.
northener вне форума Ответить с цитированием
Старый 19.08.2015, 12:54   #6
Jenny89
Пользователь
 
Регистрация: 14.07.2015
Сообщений: 30
По умолчанию

извините может я не так выражаюсь, что никто понять не может.

код для закрытия Формы 1 и открытия формы 2 (который я использую):
Код:
TForm1.Button1Click
begin
Form1.Close;
Form2.ShowModal;
end;
код для закрытия Формы 2 и открытия формы 1 (который я использую):
Код:
TForm2.Button1Click
begin
Form2.Close;
Form1.ShowModal;
end;
я его вначале тоже описывала...
Jenny89 вне форума Ответить с цитированием
Старый 19.08.2015, 13:03   #7
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Нет. Ты сначала объясни почему тебе нужен именно ShowModal? Откуда взялась первоначальная проблема с TDBNavigator'ом?
northener вне форума Ответить с цитированием
Старый 19.08.2015, 13:13   #8
ResourceSpace
Форумчанин
 
Аватар для ResourceSpace
 
Регистрация: 30.06.2015
Сообщений: 353
По умолчанию

Цитата:
Сообщение от Jenny89 Посмотреть сообщение
Код:
TForm1.Button1Click
begin
Form1.Close;
Form2.ShowModal;
end;
...
Код:
TForm2.Button1Click
begin
Form2.Close;
Form1.ShowModal;
end;
Как это вообще может работать? "Form1.Close;" по идее должно просто вырубить программу и всё.
Не проверял, но попробуйте так:

Код:
TForm1.Button1Click
begin
Form1.Hide;
Form2.Show;
end;
...
Код:
TForm2.Button1Click
begin
Form2.Hide;
Form1.Show;
end;
ResourceSpace вне форума Ответить с цитированием
Старый 19.08.2015, 13:39   #9
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
код для закрытия Формы 2 и открытия формы 1 (который я использую):
Код:


TForm2.Button1Click
begin
Form2.Close;
Form1.ShowModal;
end;
Цитата:
возврат ИЗ модальной делается не переходом, а "простым" закрытием.
Код:
TForm2.Button1Click
Form2.Close; .// и ВСЕ!!!
после этого мы АВТОМАТИЧЕСКИ Вернемся ТУДА откуда нас (form2) вызвали!!!
и в том же режиме показа( если было до этого form1.showModal так и останется!!)
если было просто show pзначит так и будет.

P.S. а для кнопок еще есть свойство установки "флагов" возврата ModalResult !!!
который потом можно использовать
Код:
res:=form2.showmodal;
case res of
mrok: ;// нажали одну кнопку
mrcancel: ; // нажали другую кнопку
end;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 19.08.2015 в 13:49.
evg_m вне форума Ответить с цитированием
Старый 21.01.2016, 11:12   #10
Fantomas_RUS
Пользователь
 
Регистрация: 19.01.2016
Сообщений: 17
По умолчанию Edit и ShowModal

Коллеги, мучает вопрос недопонимания. Создаю динамическую форму на ней создаю динамический Edit. Вношу данные в Edit.Text. Вызываю форму ShowModal. Выскакивает ошибка cannot make a visible window modal. Понимаю что delphi говорит, что не кому присвоить фокус. Почему? если Edit убираю все ок.

Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
var F: TOptionForm; 
begin
F:= TOptionForm.CreateNew(Self);
With F do
begin
 Name:= 'FormOption1';
 BorderStyle:= bsDialog;
 Position:= poScreenCenter;
 Height:= 200;
 Width:= 300;
 Parent:= Self;
end;

F.Edit1:=TEdit.Create(F);
With F.Edit1 do
begin
 Name:= 'Edit1';
 Parent:= F;
 Top:= 30;
 Left:= 105;
 Height:= 20;
 Width:= 145;
 Enabled:= true;
 Text:= '123456';
end;
F.ShowModal;// Ошибка cannot make a visible window modal
end;
Fantomas_RUS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переход между формами Александр123321 Microsoft Office Access 3 30.05.2013 18:34
Переход между формами VBA julius Microsoft Office Excel 4 29.09.2010 23:30
Анимированный переход между формами Kib Общие вопросы Delphi 2 13.08.2010 08:37
Переход между формами! Lemo Общие вопросы Delphi 5 05.02.2009 15:50
Переход между формами(( Lemo Общие вопросы Delphi 6 31.01.2009 22:06