![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как проверить Show Modal [D5, XP]
BadResult © (2005-10-09 16:15:00)Открываю форму Form2.ShowModal; Но если эта форма уже открыта то вылазит ошибка. Как провериь открыта или нет?
Anatoly Podgoretsky (2005-10-09 18:51:00) [1]BadResult (09.10.05 17:39) [7]
Такого кода быть не должно, это костыль, а лечить надо ногу.
Palladin (2005-10-09 17:51:00) [2]
> BadResult (09.10.05 17:39) [7]
Когда писал кода не видел. Слишком долго писал.
BadResult (2005-10-09 17:39:00) [3]
> Очень надоедливая штука
имхо, это зависит от Timer1.Interval
> порылась совсем не там где думает автор поста. Код нужен.
Код в [4]
Да, наверное,if not Form2.Visible thenдостаточно.
kami (2005-10-09 17:32:00) [4]BadResult (09.10.05 17:27) [4]
Кажися, не стоит так делать, даже в триальных прогах.
Очень надоедливая штука заставит юзера выкинуть программу на свалку, очистить корзину и три раза записать что-нибудь сверху.
Palladin (2005-10-09 17:29:00) [5]Подобное можно организвать с помощью вызова модальной формы из нее же самой (вызов метода, из диалога, который и создал диалог) или же по причине вызова этого метода по таймеру или несколькими потоками. Все вышеперечисленное является грубой ошибкой логики приложения (кроме может быть многопоточности да и то за редким исключением). Собака порылась совсем не там где думает автор поста. Код нужен.
BadResult (2005-10-09 17:27:00) [6]
> не могу себе представить такую ситуацию...
Например:
procedure TForm1.Timer1(Sender: TObject);
begin
RegistrationForm.ShowModal;
end;
kami (2005-10-09 17:25:00) [7]Fay © (09.10.05 17:05) [2]
О, очень даже может быть.
Сам до позавчерашнего дня не верил, а оказывается, надо было.
В общем, дело было так :
клиент/сервер в локалке, неблокирующий режим. Доп. потоки не создаю (и ни разу в жизни не создавал).Сервер командует "Регистрация!", клиент показывает модальную форму. Так вот, если сервер пришлет ещё раз "Регистрация!", то клиент попробует снова отобразить форму > осибка.
Fay (2005-10-09 17:05:00) [8]2 BadResult (09.10.05 16:15)
Что-то я не могу себе представить такую ситуацию... Во всяком случае, для модальной формы.
kami (2005-10-09 16:37:00) [9]if not Form2.Visible then
Form2.ShowModal; // ?