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

Вниз

Как не дать закрыть свое приложение?   Найти похожие ветки 

 
Гость22   (2005-09-28 15:33) [0]

Или как не дать нажать кнопку "Закрыть" (крестик) в заголовке окна?


 
_RusLAN ©   (2005-09-28 15:51) [1]

в OnClose   формы
Action := caNone;


 
msguns ©   (2005-09-28 17:57) [2]

OnCloseQuery


 
IceBeerg ©   (2005-09-28 18:20) [3]

Взять лом и когда мыша пльзователя будет подползать к заветной кнопке... между ушей его...


 
Гость22   (2005-09-28 18:38) [4]

а когда рука юзера тянуться будет к Alt+F4, что делать


 
vrem   (2005-09-28 18:40) [5]

такие программы злят - сначала стараешься подчинить её - закрыть, а затем выбрасываешь


 
Гость22   (2005-09-28 18:56) [6]

дело в том, что мне надо проверить, создан ли архив, который создается батником (*.bat). Я не могу отловить завершение батника. Чтоб отловить его завершение, я в конце батника создаю какой-то файл (например temp.txt) в папке программы. А в самой программе проверяю ещесекундно, создан ли temp.txt. Если создан, то проверяю есть ли архив. Но до этого момента мне надо, чтоб пользователь не закрыл программу. Я знаю, что глупо, но как сделать лучше - не знаю. Может че посоветуете?


 
umbra ©   (2005-09-28 19:04) [7]


> надо проверить, создан ли архив, который создается батником


так и проверяй именно этот архив. зачем нужно еще какой-то файл проверять? А для пользователя, пока архив не нашелся, делай как в 1 написано


 
vrem   (2005-09-28 19:10) [8]

[6] Гость22   (28.09.05 18:56)
почему не можешь? createprocess или shellexecute - не помню точно, короче в faq"ах про это прямо говорится - как запустить процесс(да хоть файл ворд) и дождаться его завершения. почитай


 
Гость22   (2005-09-28 19:50) [9]


> А для пользователя, пока архив не нашелся, делай как в 1
> написано


а если юзер закроет окно выполнения батника? Приложение просто не закроется никогда, т.к. архива не существует (в принципе, для temp.txt - это тоже проблемка)


 
umbra ©   (2005-09-28 19:53) [10]

а каким образом батник запускается?


 
Гость22   (2005-09-28 20:07) [11]


> а каким образом батник запускается?


ShellExecute(0, nil, "c:\myprog\archive.bat", nil, nil, SW_SHOWDEFAULT);


 
umbra ©   (2005-09-28 20:15) [12]

Можно заменить SW_SHOWDEFAULT на SW_HIDE и окно батника никто не увидит.


 
Гость22   (2005-09-28 20:24) [13]

юзер будет думать, что программа уже завершила работу и будет тыкать в крестик, а в это время батник делает архивацию в скрытом режиме


 
umbra ©   (2005-09-28 20:29) [14]

пост [1] подпобнее:


procedure Form1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 if {архив еще не найден} then
    Action := caNone;
end;


 
Гость22   (2005-09-28 20:52) [15]


> umbra ©   (28.09.05 20:29) [14]


спасибо, попробую.

а если архив по какой-либо причине не создастся?


 
z007   (2005-09-29 01:50) [16]

1. Не надо создавать архив таким способом. Если и использовать чужой формат, то - хотя бы в виде компонента.
2.vrem прав. Не надо пользователю указывать, что ему делать. Пусть он закроет форму. Можешь просто скрыть ее и нехай она прячется до завершения Windовс и делает свое дело.
3. В FormClose омжено поместить цикл, который будет выполняться пока архив не будет создан или пока не кончится установленный тобой лимит времени (или не возникнет ошибка), а там уже пускай программа завершается. Хотя, скрыть форму при нажатии все-таки рекомендую.


 
Гость22   (2005-09-29 15:03) [17]

т.е., юзер нажимает "закрыть", форма прячется, но не закрывается до того момента, пока не создастся архив или не возвратит ошибку. Дельный совет. Спасибо.
Остается вопрос - как оформить создание архива.


 
qwertyuiop   (2005-09-29 20:12) [18]

что такое OnCloseQuery и alphablend


 
Fay ©   (2005-09-29 20:19) [19]

2 qwertyuiop   (29.09.05 20:12) [18]

>> что такое OnCloseQuery и alphablend
Это особые (курительные) сорта ореховой ботвы.


 
Гость22   (2005-09-29 20:21) [20]

<alphablend>
откуда ты это взял?


 
qwertyuiop   (2005-09-29 20:39) [21]

alphablend это properties формы!


 
Гость22   (2005-09-29 20:48) [22]

а при чем здесь alphablend?


 
YurikGL ©   (2005-09-29 20:53) [23]

Если я правильно помню, ShellExecute возвращает handle вызываемого окна.
Так вот нужно смотреть, если окно еще существует в системе, то на onClose минимизировать окно если уже нет - закрывать.


 
Fay ©   (2005-09-29 20:57) [24]

2 YurikGL ©   (29.09.05 20:53) [23]

ShellExecute

...

Return Value

Returns a value greater than 32 if successful, or an error value that is less than or equal to 32 otherwise. The following table lists the error values. The return value is cast as an HINSTANCE for backward compatibility with 16-bit Windows applications. It is not a true HINSTANCE, however. The only thing that can be done with the returned HINSTANCE is to cast it to an int and compare it with the value 32 or one of the error codes below.

0 The operating system is out of memory or resources.
ERROR_FILE_NOT_FOUND The specified file was not found.
ERROR_PATH_NOT_FOUND The specified path was not found.
ERROR_BAD_FORMAT The .exe file is invalid (non-Microsoft Win32 .exe or error in .exe image).
SE_ERR_ACCESSDENIED The operating system denied access to the specified file.
SE_ERR_ASSOCINCOMPLETE The file name association is incomplete or invalid.
SE_ERR_DDEBUSY The Dynamic Data Exchange (DDE) transaction could not be completed because other DDE transactions were being processed.
SE_ERR_DDEFAIL The DDE transaction failed.
SE_ERR_DDETIMEOUT The DDE transaction could not be completed because the request timed out.
SE_ERR_DLLNOTFOUND The specified dynamic-link library (DLL) was not found.
SE_ERR_FNF The specified file was not found.
SE_ERR_NOASSOC There is no application associated with the given file name extension. This error will also be returned if you attempt to print a file that is not printable.
SE_ERR_OOM There was not enough memory to complete the operation.
SE_ERR_PNF The specified path was not found.
SE_ERR_SHARE A sharing violation occurred.


 
begin...end ©   (2005-09-29 20:59) [25]

> YurikGL ©   (29.09.05 20:53) [23]

> Если я правильно помню, ShellExecute возвращает handle вызываемого
> окна.

Заблуждаетесь.


 
YurikGL ©   (2005-09-29 21:17) [26]


> begin...end ©   (29.09.05 20:59) [25]

Точно... CreateProcess умеет :)

http://www.pisoft.ru/verstak/createprocess.htm



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

Форум: "Начинающим";
Текущий архив: 2005.10.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.04 c
1-1127800486
Урмат
2005-09-27 09:54
2005.10.23
Работа с модемом


14-1128106554
Pazitron_Brain
2005-09-30 22:55
2005.10.23
Спутник+LAN+Интернет=Всем интернет.


14-1128053960
MBo
2005-09-30 08:19
2005.10.23
Пятничные задачки. Не дай мозгам засохнуть


4-1124447698
Antonn
2005-08-19 14:34
2005.10.23
Тень от окна (CS_DROPSHADOW)


1-1127913443
Friend
2005-09-28 17:17
2005.10.23
Есть ли что-нибудь похожее на ImageList





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