Mattias Gaertner wrote:
On Thu, 08 Sep 2005 11:08:54 +0200
Bartek <[EMAIL PROTECTED]> wrote:


Mattias Gaertner wrote:


On Sun, 07 Aug 2005 18:40:05 +0200
Bartek <[EMAIL PROTECTED]> wrote:

[...]

TCustomForm.ShowModal Visible=False Enabled=True fsModal=True


You are showing the form twice. Skip the second.

Mattias



But I don't show the form twice. At least I think so. I let Lazarus auto-create the forms.


TCustomForm.ShowModal is the only method, that sets fsModal. You got the
exception, because the fsModal was already set, so ShowModal was called
twice.
You are showing the form in a timer. Maybe the you forgot to disable the
timer in OnTimer?

I did not know that I had to do this. Thanks for the help, now it works perfect. But now I am somehow confused. I thought that the ShowModal call stalls the execution of OnTimer. Now I am not sure how this works. Is the OnTimer proc called in a separate thread? Otherwise it would not be able to call ShowModal once more.


Mattias

I close some of the unneeded forms manually.
[...]
procedure Tfrm_main.Form1Show(Sender: TObject);
begin
 nc_prog_writer:=TNCWriter.Create;
 Console.Show;
 frm_progress.close;
 frm_geo_properties.close;
 frm_nccmd_param9.close;
 frm_ncprog.show;
 sdl_win:=tsdl_win_thread.Create;
 caption:='DXF2MCR '+version;
 left:=0;
 top:=0;
end;
[...]

Then I try to show my form modal. I don't see where I show it twice.
Should I destroy and recreate the form before showing it modal?


You should not use 'close' on a modal form. It closes itself as soon as it
'notices' that its ModalResult is set.

Done so. Thanks.

bartek

_________________________________________________________________
    To unsubscribe: mail [EMAIL PROTECTED] with
               "unsubscribe" as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to