Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.11;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.053 c
2-1131985995
Dudee
2005-11-14 19:33
2005.12.11
Сохранить в файл данные разных типов


1-1131740019
redlord
2005-11-11 23:13
2005.12.11
как узнать на сколько прога грузит проц ?


14-1132340918
Crazy_Diman
2005-11-18 22:08
2005.12.11
FastDIB


2-1132570964
Apachi
2005-11-21 14:02
2005.12.11
TWebBrowser как прочитать содержимое


2-1132859107
Катерина
2005-11-24 22:05
2005.12.11
treeview