Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

В OnCreate формы запретить отображение этой формы


Страницы:   1 2

DelphiLexx ©   (2006-06-05 12:29:00) 

В OnCreate формы происходит не которые вычисдения, если в ходе вычислений возникает ошибка, то необходимо запретить отображение и существование этой формы.
Я в OnCreate делал self.Free это приводит к ошибке.


Deka   (2006-06-08 10:06:00) [1]

Как не выпустить с конвеера собранный автомобиль, если не получилось поставить внутрь руль? IMHO надо менять дизайн (выносить вычисления) и все будет в порядке.


tesseract   (2006-06-07 09:24:00) [2]


> кстати, то что в onCreate нельзя менять висибилити, не означает,
>  что нельзя менять положение, размер и стиль бордюра...
> это если возвращаться к древним временам =)


В oncreate лучше ничего воопще не менять, потом запаришься искать что, где.


tButton   (2006-06-07 04:31:00) [3]

кстати, то что в onCreate нельзя менять висибилити, не означает, что нельзя менять положение, размер и стиль бордюра... это если возвращаться к древним временам =)


tesseract   (2006-06-06 14:04:00) [4]


> хм... тупанул малость, но тем не менееесли форма не главна
> и вычисление не при запуске проги, то почему бы не производить
> вычисления вне создаваемой формы (в главной, например) и
> уже исходя из результатов этих вычислений либо создавать,
>  либо нет

Даже если и главная, что этому мешает ?


esVer   (2006-06-06 14:03:00) [5]

procedure ShowMyForm;
begin
  if CalculateError then exit;
  MyForm:=TMyForm.Create(Application);
  MyForm.ShowModal;
end;


tButton   (2006-06-06 11:34:00) [6]

хм... тупанул малость, но тем не менее
если форма не главна и вычисление не при запуске проги, то почему бы не производить вычисления вне создаваемой формы (в главной, например) и уже исходя из результатов этих вычислений либо создавать, либо нет


tButton   (2006-06-06 09:45:00) [7]


> если форма - главная, то Application.ShowMainForm := False;
>  в противном случае Visible := False - должно работать.

висибл в onCreate менять нельзя

а halt(0) - это как шотган, "bang! you're dead!"
не красиво, но эффективно.


evvcom   (2006-06-06 08:11:00) [8]


> то необходимо запретить отображение и существованиеэтой
> формы.

Ну так в конструкторе надо возбудить исключение.
raise TException.Create('Ошибка создания формы!');


PZ   (2006-06-06 07:04:00) [9]

If <ОШИБКА> then
 Application.Terminate


jack128   (2006-06-06 00:23:00) [10]

если форма - главная, то Application.ShowMainForm := False; в противном случае Visible := False - должно работать.


Loginov Dmitry   (2006-06-05 14:42:00) [11]

Ну а вдруг именно такой вариант устроит автора :)


tesseract   (2006-06-05 14:40:00) [12]


> Попробуй Halt

не издевайся.


Loginov Dmitry   (2006-06-05 14:39:00) [13]

Попробуй Halt


Тфьу   (2006-06-05 14:30:00) [14]

Может Action:=caFree поможет? Тока я не пробовал...


DrPass   (2006-06-05 14:03:00) [15]

или как вариант - SendMessage(handle, wm_close...)


Palladin   (2006-06-05 12:54:00) [16]

Это спроектировано неверно, конечно, но если кустарным способом, то. Создай флаг. В OnCreate выставь его если активировать форму не нужно и в обработчике OnActivate формы вызови Close.


tesseract   (2006-06-05 12:43:00) [17]

Вычисления в oncreate вообще не полагается делать, там должны быть только конструкторы объектов (которые должны создаваться после вызова конструтора формы).

Почему нельзф выполнить расчёты до создания формы?  
Вынеси их  в отдельный модуль.


DelphiLexx   (2006-06-05 12:37:00) [18]


> А проверить данные до создания формы нельзя?

Н
ельзя


DelphiLexx   (2006-06-05 12:36:00) [19]


> Self.Visible := False;

Не помагает


tesseract   (2006-06-05 12:36:00) [20]


> Я в OnCreate делал self.Free это приводит к ошибке.


onCreate лишь начало цепочки событий. Низя так.

А проверить данные до создания формы нельзя?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо