Форум: "Начинающим";
Текущий архив: 2007.10.07;
Скачать: [xml.tar.bz2];
Вниз
Выйти из программы после создания главной формы перед ее показом Найти похожие ветки
← →
Tack © (2007-09-07 23:12) [0]Какой самый корректный способ выйти из программы после создания главной формы (чтобы вызвалось событие OnCreate), но перед тем, как форма будет отображена на экране/таскбаре?
Чтобы она вообще даже на миллисекунду не промелькнула (а то бы я послал сам себе WM_CLOSE и все).
Причина: после создания главной формы проверяются параметры командной строки и возможен выход после их проверки. Хочу сделать, не модифицируя код в dpr-файле.
← →
DVM © (2007-09-07 23:22) [1]
> Хочу сделать, не модифицируя код в dpr-файле.
А dpr файл модифицировать религия не позволяет?
← →
DVM © (2007-09-07 23:27) [2]добавь в модуль формы внизу:
initialization
if (условие) then
application.ShowMainForm := false
else
application.ShowMainForm := true;
только лучше править dpr ибо все остальное - изврат, так и знай. Зачем создавать окно, если оно будет потом уничтожено.
← →
Tack © (2007-09-07 23:36) [3]> [1] DVM © (07.09.07 23:22)
> А dpr файл модифицировать религия не позволяет?
Честно говоря, боюсь его как огня теперь. Один раз написал туда кучу кода и не смог загрузить потом проект на Delphi7. Просто среда вылетала с какой-то ошибкой без описания при загрузке проекта и все. Пока я додумался, что дело было в нелогичной (с точки зрения delphi) структуры dpr-файла, ушло 4 дня.
(прошу не глумиться над дураком)
:)
Спасибо за Application.ShowMainForm, никогда раньше не пользовался.
← →
DVM © (2007-09-07 23:40) [4]
> Честно говоря, боюсь его как огня теперь.
Ты его не бойся, он не страшный. Кучу всего туды писать конечно не следует, но необходимые вещи - пожалуйста. К тому же можно и резервную копию сохранить, или потом в случае чего поправить файл этот в обычном блокноте.
← →
{RASkov} © (2007-09-08 11:46) [5]halt
← →
Германн © (2007-09-08 12:40) [6]
> {RASkov} © (08.09.07 11:46) [5]
>
> halt
>
"Привыкли руки к топорам." (с)
← →
Anatoly Podgoretsky © (2007-09-08 13:05) [7]> DVM (07.09.2007 23:27:02) [2]
Неправильная мотивация!
Зачем создавать окно, если оно не будет показано.
Да и думаю не об окнах речь, а о формах.
Разница между ними огромная.
← →
{RASkov} © (2007-09-08 16:02) [8]> [6] Германн © (08.09.07 12:40)
?
Человек не хочет выполнять условие
> Зачем создавать окно, если оно не будет показано.
, боится править dpr.... что еще можно посоветовать...
> Tack
Вынеси в отдельную процедуру "проверки"(или как там) нужна ли дальнейшая работа программы, и сделай в dpr нечто так:program Project;
.....
begin
if VerifingRunApp then begin
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end else Показать сообщение и закрыться; //Например: ShowMessage("По такой то причине не могу работать");
end.
Только учти что в VerifingRunApp у тебя нет доступа к полям и методам формы MainForm....
В общем тут в одном посте тебе все тонкости не расскажешь.... так, что пробуй... если что не получится спрашивай...
← →
DVM © (2007-09-08 19:34) [9]
> Anatoly Podgoretsky © (08.09.07 13:05) [7]
> > DVM (07.09.2007 23:27:02) [2]
>
> Неправильная мотивация!
>
> Зачем создавать окно, если оно не будет показано.
> Да и думаю не об окнах речь, а о формах.
> Разница между ними огромная.
Разница то огромная, но дело не в этом. Глупо создавать объект формы, потом в его OnCreate проверять, а нужно ли было его вообще создавать, а потом если не нужно уничтожать.
← →
Anatoly Podgoretsky © (2007-09-08 20:06) [10]> DVM (08.09.2007 19:34:09) [9]
Создавалось, для того чтобы показать, а уничтожить это само собой, в обеих случаях.
Не надо создавать, если показ не предусмотрен, надо сначала решить этот вопрос и если потребуется, то тогда создавать и показывать.
То есть создание и уничтожения в данном случае не важные детали.
← →
DVM © (2007-09-08 20:13) [11]
> Не надо создавать, если показ не предусмотрен, надо сначала
> решить этот вопрос и если потребуется, то тогда создавать
> и показывать.
Ну так я об этом же и говорю. Не надо создавать, автор же не хочет показывать окно вообще в ряде случаев. Если в обработчике OnCreate проверять - это значит уже создать в любом случае. Потому я и говорю, лучше код проверки поместить в dpr файл или перед тем местом, где создается объект формы.
← →
Anatoly Podgoretsky © (2007-09-08 20:15) [12]А я надеялся запутать, но вас не пробьешь.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.10.07;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.053 c