Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];

Вниз

В 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.013 c
2-1151744556
kernel
2006-07-01 13:02
2006.07.23
Раскладка клавы


15-1151147411
mio
2006-06-24 15:10
2006.07.23
Закрытие программы.


10-1122389982
Juice
2005-07-26 18:59
2006.07.23
Подавить диалоговые окна Excel


6-1142391308
L0gaN
2006-03-15 05:55
2006.07.23
Winsock Сформировать Post Запрос


15-1150867721
Ega23
2006-06-21 09:28
2006.07.23
С Днём рождения! 21 июня





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский