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

Вниз

Закрытие формы.   Найти похожие ветки 

 
Lera   (2005-11-08 14:35) [0]

Здравствуйте, у меня по onShow вызывается процедура. По результатам ее работы нужно либо открывать форму, либо нет. Может быть кто-нибудь знает, как после попадания в FormShow сделать так, чтобы форма не открылась и выйти из FormShow. Заранее благодарю.


 
umbra ©   (2005-11-08 14:42) [1]

if myproc then Visible := False;

или надо вообще приложение закрыть?


 
Black Krok ©   (2005-11-08 14:55) [2]

В этом случае будет исключение "Cannot change Visible in OnShow or OnHide"

Так в лоб не получится.

Можно послать сообщение

if myproc then
 PostMessage(Handle,WM_CLOSE,0,0);


 
umbra ©   (2005-11-08 15:00) [3]

да и по смыслу вопрос о том, показывать форму или нет лучше решать в  обработчике OnCreate


 
Lera   (2005-11-08 15:00) [4]

спасибо


 
Ega23 ©   (2005-11-08 15:08) [5]

Вообще-то лучше не на OnShow такое вешать....


 
Anatoly Podgoretsky ©   (2005-11-08 15:13) [6]

umbra ©   (08.11.05 15:00) [3]
Вопрос о показе лучше решать до Show


 
umbra ©   (2005-11-08 15:24) [7]

2 Anatoly Podgoretsky ©   (08.11.05 15:13) [6]

глубоко! есть над чем подумать :))


 
Silver Alex ©   (2005-11-08 16:38) [8]

<< PostMessage(Handle,WM_CLOSE,0,0);

а просто self.Close; не подходит?


 
Leonid Troyanovsky ©   (2005-11-08 17:51) [9]


> Silver Alex ©   (08.11.05 16:38) [8]
> << PostMessage(Handle,WM_CLOSE,0,0);

> а просто self.Close; не подходит?


Нет.
Вариантов, собс-но: [2] vs [6].
Причем, необходимость применения первого вопиет о bad design.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2005-11-08 19:53) [10]

umbra ©   (08.11.05 15:24) [7]
О результатах сообщи.


 
ShiFT   (2005-11-09 06:12) [11]

а я бы сделал так:

// dpr
 Application.ShowMainForm := false;

// unit
procedure TForm1.FormCreate(Sender: TObject);
begin
 if not Proc then
   Form1.Show
 else
   Application.Terminate;
end;


 
Prohodil Mimo ©   (2005-11-10 01:18) [12]

Lera   (08.11.05 14:35)
у меня по onShow вызывается процедура


надо не на onShow вызывать процедуру, а вызывать процедуру, а уж из неё Show или ShowModal.


 
Плохиш ©   (2005-11-10 01:24) [13]


> ShiFT   (09.11.05 06:12) [11]
> а я бы сделал так:
> // unit
> procedure TForm1.FormCreate(Sender: TObject);
> begin
>  if not Proc then
>    Form1.Show
>  else
>    Application.Terminate;
> end;

AV обеспечено.


 
ShiFT   (2005-11-10 05:57) [14]


> AV обеспечено.

из-за Application.ShowMainForm := false;
AV не вылетает.
Так как форма создаётся но не показывается. =)

если я не прав, то объясни почему будет AV.


 
Prohodil Mimo ©   (2005-11-10 20:29) [15]

Плохиш ©   (10.11.05 1:24) [13]
AV обеспечено.


только в том случае, если форма на тот момент ещё не создана. Но OnCreate выполняется уже после создания формы - следовательно никакого AV не будет.



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

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

Наверх





Память: 0.47 MB
Время: 0.049 c
1-1131637337
GrayFace
2005-11-10 18:42
2005.12.11
Получение содержимого регистров при исключении.


2-1132816955
Андрюша
2005-11-24 10:22
2005.12.11
e в степени ln(x)? Как сделать?


8-1120831896
4ubaka
2005-07-08 18:11
2005.12.11
перевод изобрадений из jpg в bmp


1-1131708902
VEZ
2005-11-11 14:35
2005.12.11
Перехват нашатия клавишь


4-1124891807
Dr.Nemo
2005-08-24 17:56
2005.12.11
Как подловить запуск приложения





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