Главная страница
    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.052 c
14-1132392037
Separator
2005-11-19 12:20
2005.12.11
XML


1-1131782900
mfender
2005-11-12 11:08
2005.12.11
TDateTime и зимнее/летнее время и пересчёт из/в UNUX Timestamp


1-1132131172
Wolferio
2005-11-16 11:52
2005.12.11
Обработка Ошибок


14-1132310173
12DFBDD
2005-11-18 13:36
2005.12.11
Java memory leak


6-1121692051
Соловьев
2005-07-18 17:07
2005.12.11
IMAP - тип папки на сервере





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