Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.23;
Скачать: CL | DM;

Вниз

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

 
DelphiLexx ©   (2006-06-05 12:29) [0]

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


 
Kolan ©   (2006-06-05 12:31) [1]

Self.Visible := False;
?


 
tesseract ©   (2006-06-05 12:36) [2]


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


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

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


 
DelphiLexx ©   (2006-06-05 12:36) [3]


> Self.Visible := False;

Не помагает


 
DelphiLexx ©   (2006-06-05 12:37) [4]


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

Н
ельзя


 
tesseract ©   (2006-06-05 12:43) [5]

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

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


 
Palladin ©   (2006-06-05 12:54) [6]

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


 
DrPass ©   (2006-06-05 14:03) [7]

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


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

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


 
Loginov Dmitry ©   (2006-06-05 14:39) [9]

Попробуй Halt


 
tesseract ©   (2006-06-05 14:40) [10]


> Попробуй Halt

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


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

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


 
jack128 ©   (2006-06-06 00:23) [12]

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


 
PZ   (2006-06-06 07:04) [13]

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


 
evvcom ©   (2006-06-06 08:11) [14]


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

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


 
tButton ©   (2006-06-06 09:45) [15]


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

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

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


 
tButton ©   (2006-06-06 11:34) [16]

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


 
esVer   (2006-06-06 14:03) [17]

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


 
tesseract ©   (2006-06-06 14:04) [18]


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

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


 
tButton ©   (2006-06-07 04:31) [19]

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


 
tesseract ©   (2006-06-07 09:24) [20]


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


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


 
Deka ©   (2006-06-08 10:06) [21]

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



Страницы: 1 вся ветка

Текущий архив: 2006.07.23;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.028 c
1-1149672019
Мрась
2006-06-07 13:20
2006.07.23
Компонент в DLL


4-1143433776
Ikota
2006-03-27 08:29
2006.07.23
Чтение из сист. памяти


2-1151820608
Новинький
2006-07-02 10:10
2006.07.23
with do, try, Execute...


2-1151664724
FFFF
2006-06-30 14:52
2006.07.23
Поис в поле формы


15-1148887793
GM
2006-05-29 11:29
2006.07.23
Геннетичеси модифицированные продукты