Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.055 c
15-1189400391
boriskb
2007-09-10 08:59
2007.10.07
85 правил русского языка


15-1188941829
Германн
2007-09-05 01:37
2007.10.07
Скорость анимации. Глупый, но интересный для меня вопрос.


2-1188370854
Просящий о помощи
2007-08-29 11:00
2007.10.07
Имя программы


15-1188064254
ArtemESC
2007-08-25 21:50
2007.10.07
Музыка


1-1185554019
Ice-T
2007-07-27 20:33
2007.10.07
Беда OPenDialog а





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский