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

Вниз

модальное окно   Найти похожие ветки 

 
workbench   (2008-07-15 10:40) [0]

Здравствуйте, вот пытаюсь закрыть модальное окно, делаю вот так:

try
 ...
 if ... then
   begin
   ModalResult = mrOK;
   Close
   end
finally
 ...
end


только окошко по Close не закрывается, если заменить на CloseWindow - то тогда оно сворачиваеся, модальные окна как-то по особу закрывать надо? или нельзя совать Close в try... except?


 
brother ©   (2008-07-15 10:41) [1]

> ModalResult = mrOK;

а close не помогает?


 
brother ©   (2008-07-15 10:42) [2]

> только окошко по Close не закрывается

я про то, что происходит при этом?


 
workbench   (2008-07-15 10:47) [3]

да ничегошеньки не происходит, форма остаётся открытой


 
clickmaker ©   (2008-07-15 10:48) [4]

> ModalResult = mrOK

этого должно быть достаточно


 
workbench   (2008-07-15 10:53) [5]


> clickmaker


почему ж не закрывается?

создаётся форма вот так

 frm := Tsomeform.create(Self);
 try
    frm.showmodal
 finally
    frm.free
 end;


 
clickmaker ©   (2008-07-15 10:58) [6]

> почему ж не закрывается?

откуда ставишь ModalResult?


 
Anatoly Podgoretsky ©   (2008-07-15 11:00) [7]

А кусок кода откуда, нам погадать?


 
brother ©   (2008-07-15 11:00) [8]

> нам погадать

на картах можно...


 
workbench   (2008-07-15 11:06) [9]


> clickmaker


ModalResult ставлю из ф. которая в свою очередь вызывается из OnActivate


 
Тын-Дын ©   (2008-07-15 11:09) [10]


> workbench   (15.07.08 11:06) [9]
>
>
> > clickmaker
>
>
> ModalResult ставлю из ф. которая в свою очередь вызывается
> из OnActivate


И она тоже модальная?


 
Anatoly Podgoretsky ©   (2008-07-15 11:10) [11]

> workbench  (15.07.2008 11:06:09)  [9]

> вызывается из OnActivate

Больше так не делай


 
workbench   (2008-07-15 11:14) [12]


> Тын-Д


я имел ввиду из функции (ф. - не форма, а функция)


 
brother ©   (2008-07-15 11:15) [13]

> > вызывается из OnActivate


> я имел ввиду из функции (ф. - не форма, а функция)

мы так и поняли


 
Anatoly Podgoretsky ©   (2008-07-15 11:16) [14]


> я имел ввиду

Предлагаешь и здесь гадать?
О сколько нам загадок чудных, готовит "просвещения" дух.


 
workbench   (2008-07-15 11:19) [15]

эту прогу я доделываю, здесь уже была сделана нужная функция реализущая то что нужно, её вызов положен в OnActivate, по результатам работы этой функции нужно закрыть форму (чтоб пользователь не пугался), либо оставить (в этом случае он видит log)

я пробовал не юзать OnActivate - тогда всё норм, но как тогда "запустить" функцию по открытию формы?


 
workbench   (2008-07-15 11:20) [16]

извините уж за сокращения, больше не буду)


 
brother ©   (2008-07-15 11:20) [17]

> но как тогда "запустить" функцию по открытию формы?

поставь таймер...


 
Тын-Дын ©   (2008-07-15 11:23) [18]


> workbench   (15.07.08 11:19) [15]
>
> эту прогу я доделываю, здесь уже была сделана нужная функция
> реализущая то что нужно, её вызов положен в OnActivate,
> по результатам работы этой функции нужно закрыть форму (чтоб
> пользователь не пугался), либо оставить (в этом случае он
> видит log)
>
> я пробовал не юзать OnActivate - тогда всё норм, но как
> тогда "запустить" функцию по открытию формы?


Зачем закрывать форму, которую только что открыл?
Проверяй необходимые условия ДО ТОГО, как откроешь.


 
Anatoly Podgoretsky ©   (2008-07-15 11:25) [19]

> workbench  (15.07.2008 11:19:15)  [15]

По открытию - это OnCreate или перед вызовом Show/ShowModal


 
workbench   (2008-07-15 11:30) [20]


> Тын-Дын


в форме находится log (TMemo) - она для того и нужна чтоб пользователь смотрел и видел на каком этапе "он находится", это для далёких пользователей сделано, они не будут читать log, для них закрытие формы означает что всё норм, а вот если какие-то косяки пошли (и форма не закроется спустя какое-то время) они будут уже шевелиться и хотя бы смогут по телефону продиктовать что там написано


 
Anatoly Podgoretsky ©   (2008-07-15 11:32) [21]

Из Create/Show/Activate ты не сможешь закрыть форму с помощью Close


 
workbench   (2008-07-15 11:35) [22]


> Anatoly Podgoretsky


ага, ошибся, я хотел сказать по активации


 
Anatoly Podgoretsky ©   (2008-07-15 11:50) [23]

Не суть важно, закрывать надо или извне, как я уже привел, или после выполнения данных методов (варианты - или послать сообщение самому себе или запустить таймер).
Но как уже сказали - подход не верный, зачем что то делать не до конца, когда можно вообще не делать?


 
Dennis I. Komarov ©   (2008-07-15 11:54) [24]

> [5] workbench   (15.07.08 10:53)

создаётся форма вот так

 with Tsomeform.Create(Self) do try
   ......
   if ShowModal = mrOk then begin
     ......
   end;
 finally
    Free;
 end;


 
workbench   (2008-07-15 11:58) [25]

тогда ничего др. не остаётся - нано подправить то что уже наделано до меня и не городить ещё большей ерунды

спасибо за ответы!



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

Текущий архив: 2008.08.17;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.017 c
2-1215788028
GrieVeR-13
2008-07-11 18:53
2008.08.17
Событие OnTimer


2-1215856129
grisha_new
2008-07-12 13:48
2008.08.17
Как получить отчёт о доставке письма?


11-1190911322
saturnsuper
2007-09-27 20:42
2008.08.17
Proxies.dcu


6-1192086147
pathfinder
2007-10-11 11:02
2008.08.17
Работа с FTP-сервером через HTTP-proxy


2-1215684594
Query
2008-07-10 14:09
2008.08.17
Query