powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Опять туплю - как закрыть форму?
17 сообщений из 17, страница 1 из 1
Опять туплю - как закрыть форму?
    #32218551
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В форме в событии OnCreate выясняется, что форму по определенным условиям открывать не надо - как сделать так, что бы она не открывалась?
Почему-то метод Close и modalresult не работают:
--------------------------------------------------------
procedure TSexForm.SexFormCreate(Sender: TObject);
begin
If 1 < 2 then Close;
If 1 < 2 then Modalresult:= 0;
end
--------------------------------------------------------
Как сделать что бы не открывалась?
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218554
vlad451
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай проверку условия не в OnCreate, а в OnShow и там выполняй
Close. Либо просто не показывай форму из другой формы при выполнении
определенного условия
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218556
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример привел неправильно. На самом деле так:
--------------------------------------------------------
procedure TSexForm.SexFormCreate(Sender: TObject);
begin
If 1 > 2 then Close;
If 1 > 2 then Modalresult:= 0;
end
--------------------------------------------------------
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218558
vlad451
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В OnCreate еще нечего закрывать - форма не открыта
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218562
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И в OnShow тоже не дает закрыть.
Куда пихаться? В OnActivate ?
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218566
vlad451
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что это за такое странное условие "ЕДИНИЦА БОЛЬШЕ ДВОЙКИ" ???
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218570
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это я просто как пример привел. На самом деле там другое условие - и оно стопроцентно срабатывает - проверял по Showmessage().
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218575
vlad451
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нельзя ли проверять это условие перед показом формы. Вообще какой
там код, откуда и как эта форма вызывается
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218590
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта форма через ShowModal показывается из другой формы.
Но из той, откуда она показывается, проверять условия не получится - слишком громоздко будет. Суть в том, что кады эта модальная форма открывается она делает запрос к БД и по его результатам заполняет свои поля, а если запрос к БД по каким-то причинам обламывается - то надо сделать так, что-бы форма просто не открывалась.
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218621
Speaker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
type
  TSexForm = class(TForm)
  ....
  public
    class procedure ShowForm;
  end;

...

class procedure TSexForm.ShowForm;
var f : TSexForm;
begin
   f := TSexForm.Create( Application );

   { проверка условия c использованием компонентов f}

   if {условие выполнено} then f.ShowModal;
   f.Free;
end;
...
// вызов из первой формы
TSexForm.ShowForm;
...
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218639
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как в первую форму передать modalresult ?
Т.е. если вторая форма не должна открыться - то модалрезулт=0, иначе - он принимает всяческие другие значения...
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218674
Можно вынести проверки и заполнение значений в отдельную процедурку этой же формы, а перед showmodal проверять

Код: plaintext
1.
if SexForm.Check and (SexForm.ShowModal = mrOK) then
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218688
Speaker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А как в первую форму передать modalresult ?
Ну так сделай не class procedure, а class function и присваивай
ей результаты проверки/показа/чего хочешь.
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218710
BigHarryy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибочки!
Кстати - в этом случае ведь после вызова из первой формы
TSexForm.ShowForm;
в отличие от TSexForm.ShowModal код в первой форме после вызова этого метода продолжит выполнение, собака....
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218727
Speaker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>код в первой форме после вызова этого метода продолжит выполнение
... в том случае, если в результате проверки условия в функции
ShowForm не было выполнено f.ShowModal. Насколько я понял,
так и должно быть по условию задачи?
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218775
BigHarryy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое тебе мерси !!! Все работает...
Блин - с этой 1С и с ее ПриОткрытии()/ПриЗакрытии() совсем забыл как пишутся настоящие программы...
...
Рейтинг: 0 / 0
Опять туплю - как закрыть форму?
    #32218786
Mik Prokoshin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то более правильный ответ IMHO на поставленный вопрос - перекрытие ShowModal примерно так :
Код: plaintext
1.
2.
3.
4.
5.
6.
function TMyForm.ShowModal....;
begin
  if  1 < 2  
    then ShowModal:=inherited ShowModal(...);
    else ShowModal:=...;
end;
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Опять туплю - как закрыть форму?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]