[Lazarus] Bug 15390 and Showmodal

patspiper patspiper at gmail.com
Wed Apr 18 18:44:19 CEST 2012


On 18/04/12 17:27, zeljko wrote:
>
> On Wednesday 18 of April 2012 15:22:27 Martin wrote:
>
> > On 18/04/2012 11:53, Hans-Peter Diettrich wrote:
>
> > > patspiper schrieb:
>
> > >>> No, FormClose() isn't called when modal form is hidden via Hide();
>
> > >>
>
> > >> Correct
>
> > >>
>
> > >>> , so form still exists and it can be called with ShowModal() or
>
> > >>> Show() again.
>
> > >>
>
> > >> I beg to differ here as Showmodal should not exit unless the modal
>
> > >> form is closed.
>
> > >
>
> > > A modal form (dialog) can be used to accept multiple user entries
>
> > > (filename...). Then the form object must stay alife until the
>
> > > application has read all entries. That's why a modal form only hides
>
> > > itself on exit.
>
> >
>
> > closed <> destroy
>
> >
>
> > Close() depends on close action, which include free and hide.
>
> > Close() on a modal Form in LCL ignores close action and always hides (by
>
> > setting ModalResult = mrCancel.
>
> >
>
> > Hide() or Visible:=False does not set ModalResult
>
> >
>
> > In fact if in Delphi you hide a modalform, then ShowModal does not
>
> > return. I don't know, if this is intended or accidental behaviour.
>
> > While of course you can use this, there is a real danger of such a modal
>
> > form become hidden, with no means of ever getting it back or exiting it.
>
> >
>
> > Using a hidden modal form, to block all other forms (even if intended)
>
> > appears to me an abuse of the modal concept. If an application wants to
>
> > do this, it should do this explicitly. (But that is my personal opinion)
>
> >
>
> > In LCL there is
>
> > Screen.DisableForms()
>
>
> +1 , that's why I implemented hiding of modal form as it is - it 
> simply works on all platforms, and Delphi behaviour looks pretty 
> unlogical to me (but even that can work - see my today patches 
> attached at issue).
>
Patch is good but has one bug (Pls check bug report)

Stephano
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20120418/7e919d52/attachment-0003.html>


More information about the Lazarus mailing list