This commit is contained in:
pierre 2001-09-18 11:33:26 +00:00
parent f959a590fe
commit bad95b49e2

View File

@ -81,6 +81,7 @@ type
ST : PAdvancedStaticText; ST : PAdvancedStaticText;
KeyST : PColorStaticText; KeyST : PColorStaticText;
constructor Init; constructor Init;
destructor Done;virtual;
procedure Update; procedure Update;
end; end;
@ -514,6 +515,12 @@ begin
Fillchar(Status,SizeOf(Status),#0); Fillchar(Status,SizeOf(Status),#0);
end; end;
destructor TCompilerStatusDialog.Done;
begin
if @Self=CompilerStatusDialog then
CompilerStatusDialog:=nil;
Inherited Done;
end;
procedure TCompilerStatusDialog.Update; procedure TCompilerStatusDialog.Update;
var var
@ -860,6 +867,8 @@ begin
CompilationPhase:=cpCompiling; CompilationPhase:=cpCompiling;
New(CompilerStatusDialog, Init); New(CompilerStatusDialog, Init);
CompilerStatusDialog^.SetState(sfModal,true); CompilerStatusDialog^.SetState(sfModal,true);
{ disable window closing }
CompilerStatusDialog^.Flags:=CompilerStatusDialog^.Flags and not wfclose;
Application^.Insert(CompilerStatusDialog); Application^.Insert(CompilerStatusDialog);
CompilerStatusDialog^.Update; CompilerStatusDialog^.Update;
{ hook compiler output } { hook compiler output }
@ -1019,16 +1028,22 @@ begin
else else
CompilationPhase:=cpFailed; CompilationPhase:=cpFailed;
{ Show end status } { Show end status }
{ reenable window closing }
CompilerStatusDialog^.Flags:=CompilerStatusDialog^.Flags or wfclose;
CompilerStatusDialog^.Update; CompilerStatusDialog^.Update;
CompilerStatusDialog^.ReDraw;
CompilerStatusDialog^.SetState(sfModal,false); CompilerStatusDialog^.SetState(sfModal,false);
if ((CompilationPhase in[cpAborted,cpDone,cpFailed]) or (ShowStatusOnError)) and (Mode<>cRun) then if ((CompilationPhase in[cpAborted,cpDone,cpFailed]) or (ShowStatusOnError)) and (Mode<>cRun) then
repeat repeat
CompilerStatusDialog^.GetEvent(E); CompilerStatusDialog^.GetEvent(E);
if IsExitEvent(E)=false then if IsExitEvent(E)=false then
CompilerStatusDialog^.HandleEvent(E); CompilerStatusDialog^.HandleEvent(E);
until IsExitEvent(E); until IsExitEvent(E) or not assigned(CompilerStatusDialog);
Application^.Delete(CompilerStatusDialog); if assigned(CompilerStatusDialog) then
Dispose(CompilerStatusDialog, Done); begin
Application^.Delete(CompilerStatusDialog);
Dispose(CompilerStatusDialog, Done);
end;
CompilerStatusDialog:=nil; CompilerStatusDialog:=nil;
{ end compilation returns true if the messagewindow should be removed } { end compilation returns true if the messagewindow should be removed }
if CompilationPhase=cpDone then if CompilationPhase=cpDone then
@ -1233,7 +1248,10 @@ end;
end. end.
{ {
$Log$ $Log$
Revision 1.3 2001-09-12 09:25:01 pierre Revision 1.4 2001-09-18 11:33:26 pierre
* fix bug 1604
Revision 1.3 2001/09/12 09:25:01 pierre
* fix bug 1585 * fix bug 1585
Revision 1.2 2001/08/05 02:01:47 peter Revision 1.2 2001/08/05 02:01:47 peter