![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
События формы [D7, WinXP]
[Salo] phantom © (2007-04-11 16:47:00)Динамически создаю форму:
var fmWait: TfmWait;
...
....
fmWait:=TfmWait.Create(Self);
fmWait.ShowModal;
if fmWait.ModalResult = mrCancel then
begin
....
end;
fmWait.Free;
В форме при появлении она выполняет стадо действий, все отобразить и закрыться, вот тут-то и возникла загвоздка:
procedure TfmWait.FormActivate(Sender: TObject);
begin
Application.ProcessMessages;
...
...
...
Close; //Форма не закрывается
end;
Зато если на форму поставить кнопку в нее поместить Close и после завершения процедуры FormActivate, клацнуть по ней, то форма закрывается.
Народ подсобите: как ее правильно закрывать, в каком событии закрывать форму.
Германн (2007-04-12 02:15:00) [1]
> Юрий Зотов © (12.04.07 02:02) [8]
> Закрыть форму из ее же метода - Release.
>
> Но действительно непонятно - на фига ее показывать, чтобы
> тут же закрыть?
Наверно нынче так модно делать Splash-формы :)
Германн (2007-04-12 02:14:00) [2]
> Юрий Зотов © (12.04.07 02:02) [8]
> Закрыть форму из ее же метода - Release.
>
> Но действительно непонятно - на фига ее показывать, чтобы
> тут же закрыть?
Юрий Зотов (2007-04-12 02:02:00) [3]Закрыть форму из ее же метода - Release.
Но действительно непонятно - на фига ее показывать, чтобы тут же закрыть?
{RASkov} (2007-04-11 22:52:00) [4]> [5] [Salo]Phantom (11.04.07 21:50)
Кстати - у меня закрывается:
procedure TForm1.FormActivate(Sender: TObject);
begin
Application.ProcessMessages;
Close;
end;
Это из [0]....
Что у тебя еще в FormActivate есть? Может Ехit'ы где есть и до Close дело не доходит...
А вообще не то событие выбрал у формы для этого:
> В форме при появлении она выполняет стадо действий, все отобразить и закрыться
> Ну, а отображение там довольно-таки долгое создается еще один поток,
{RASkov} (2007-04-11 22:44:00) [5]> [5] [Salo]Phantom (11.04.07 21:50)
> И вообще у формы есть стандартные события из которых она
> может быть закрыта?
Например: OnPaint :')
[Salo]Phantom (2007-04-11 21:50:00) [6]
> (на он-активейт послать самому себе мессадж, что неплохо
> бы закрыться)
Спасибо дельный совет. Его реализовал, но может поясниш в двух словах почему нельзя закрыть форму стандартным методом тут. И вообще у формы есть стандартные события из которых она может быть закрыта?
_Аноним (2007-04-11 21:09:00) [7]
> Salo]phantom
На ОнАктивейт и не закроется. Или используй механиз пост-мессадж
(на он-активейт послать самому себе мессадж, что неплохо бы закрыться), или закрывай ее снаружи - там же, где показываешь (если это форма типа "прогресс").
Ega23 (2007-04-11 17:44:00) [8]
> Ну, а отображение там довольно-таки долгое создается еще
> один поток, вот и захотелось написать универсальный метод,
> но шот боюсь желание уже потчти пропало:(
Если поток и форма - то VCL некошерно использовать.
Так, к слову...
[Salo]phantom (2007-04-11 17:31:00) [9]
> Ведь есть же еще придурки в "селеньях" !)
>
> Я, форма, отобразила.
> И я, форма, тут же закрылась.
> А уж успел ли ты, юзер-придурок, увидеть то что я "отобразила"
> пере тем как я "клозанулась" - эт, юзер, твои проблемы)
К Сергей М.
Твой совет настолько делен что поднял только твою самооценку в твоих же глазах. Форму на то и форму чтоб спросить и о глупом, а при желании ты мог и не отвечать так как дельного совета ты мне так и не дал.
Ну, а отображение там довольно-таки долгое создается еще один поток, вот и захотелось написать универсальный метод, но шот боюсь желание уже потчти пропало:(
Сергей М. (2007-04-11 17:06:00) [10]
> все отобразить и закрыться
Ведь есть же еще придурки в "селеньях" !)
Я, форма, отобразила.
И я, форма, тут же закрылась.
А уж успел ли ты, юзер-придурок, увидеть то что я "отобразила" пере тем как я "клозанулась" - эт, юзер, твои проблемы)