Форум: "Основная";
Текущий архив: 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