added Abort Build

git-svn-id: trunk@4385 -
This commit is contained in:
mattias 2003-07-08 11:30:22 +00:00
parent 0a7ac9d03a
commit 8a77658903
6 changed files with 53 additions and 10 deletions

View File

@ -320,7 +320,11 @@ begin
TheProcess.WaitOnExit;
TheProcess.Free;
end;
if not ErrorOccurred then
if ErrorOccurred then
Result:=mrCancel
else if TheOutputFilter.Aborted then
Result:=mrAbort
else
Result:=mrOk;
except
on e: EOutputFilterError do begin

View File

@ -157,15 +157,16 @@ const
// compile menu
ecBuild = ecUserFirst + 400;
ecRun = ecUserFirst + 401;
ecPause = ecUserFirst + 402;
ecStepInto = ecUserFirst + 403;
ecStepOver = ecUserFirst + 404;
ecRunToCursor = ecUserFirst + 405;
ecStopProgram = ecUserFirst + 406;
ecBuildAll = ecUserFirst + 407;
ecBuildLazarus = ecUserFirst + 408;
ecBuildAll = ecUserFirst + 401;
ecAbortBuild = ecUserFirst + 402;
ecRun = ecUserFirst + 403;
ecPause = ecUserFirst + 404;
ecStepInto = ecUserFirst + 405;
ecStepOver = ecUserFirst + 406;
ecRunToCursor = ecUserFirst + 407;
ecStopProgram = ecUserFirst + 408;
ecResetDebugger = ecUserFirst + 409;
ecBuildLazarus = ecUserFirst + 410;
// project menu
ecNewProject = ecUserFirst + 500;
@ -628,6 +629,7 @@ begin
// run menu (menu string resource)
ecBuild : Result:= srkmecBuild;
ecBuildAll : Result:= srkmecBuildAll;
ecAbortBuild : Result:= srkmecAbortBuild;
ecRun : Result:= srkmecRun;
ecPause : Result:= srkmecPause;
ecStepInto : Result:= lisMenuStepInto;
@ -1474,6 +1476,7 @@ begin
C:=Categories[AddCategory('RunMenu',srkmCatRunMenu,caAll)];
Add(C,'Build project/program',ecBuild,VK_F9,[ssCtrl],VK_UNKNOWN,[]);
Add(C,'Build all files of project/program',ecBuildAll,VK_UNKNOWN,[],VK_UNKNOWN,[]);
Add(C,'Abort building',ecAbortBuild,VK_UNKNOWN,[],VK_UNKNOWN,[]);
Add(C,'Run program',ecRun,VK_F9,[],VK_UNKNOWN,[]);
Add(C,'Pause program',ecPause,VK_UNKNOWN,[],VK_UNKNOWN,[]);
Add(C,'Step into',ecStepInto,VK_F7,[],VK_UNKNOWN,[]);

View File

@ -195,6 +195,7 @@ resourcestring
lisMenuBuild = 'Build';
lisMenuBuildAll = 'Build all';
lisMenuAbortBuild = 'Abort Build';
lisMenuProjectRun = 'Run';
lisMenuPause = 'Pause';
lisMenuStepInto = 'Step into';
@ -1131,6 +1132,7 @@ resourcestring
// run menu
srkmecBuild = 'build program/project';
srkmecBuildAll = 'build all files of program/project';
srkmecAbortBuild = 'abort build';
srkmecRun = 'run program';
srkmecPause = 'pause program';
srkmecStopProgram = 'stop program';

View File

@ -183,6 +183,7 @@ type
// run menu
procedure mnuBuildProjectClicked(Sender : TObject);
procedure mnuBuildAllProjectClicked(Sender : TObject);
procedure mnuAbortBuildProjectClicked(Sender : TObject);
procedure mnuRunProjectClicked(Sender : TObject);
procedure mnuPauseProjectClicked(Sender : TObject);
procedure mnuStepIntoProjectClicked(Sender : TObject);
@ -496,6 +497,7 @@ type
procedure DoWarnAmbigiousFiles;
function DoSaveForBuild: TModalResult; override;
function DoBuildProject(BuildAll: boolean): TModalResult;
function DoAbortBuild: TModalResult;
function DoInitProjectRun: TModalResult; override;
function DoRunProject: TModalResult;
function SomethingOfProjectIsModified: boolean;
@ -1492,6 +1494,7 @@ begin
inherited;
itmProjectBuild.OnClick := @mnuBuildProjectClicked;
itmProjectBuildAll.OnClick := @mnuBuildAllProjectClicked;
itmProjectAbortBuild.OnClick := @mnuAbortBuildProjectClicked;
itmProjectRun.OnClick := @mnuRunProjectClicked;
itmProjectPause.Enabled := false;
itmProjectPause.OnClick := @mnuPauseProjectClicked;
@ -1792,6 +1795,7 @@ begin
ecBuild,
ecBuildAll: DoBuildProject(Command=ecBuildAll);
ecAbortBuild: DoAbortBuild;
ecRun: DoRunProject;
ecPause: DebugBoss.DoPauseProject;
@ -2265,6 +2269,11 @@ Begin
DoBuildProject(true);
end;
Procedure TMainIDE.mnuAbortBuildProjectClicked(Sender : TObject);
Begin
DoAbortBuild;
end;
Procedure TMainIDE.mnuRunProjectClicked(Sender : TObject);
begin
DoRunProject;
@ -5572,6 +5581,13 @@ begin
DoCheckFilesOnDisk;
end;
function TMainIDE.DoAbortBuild: TModalResult;
begin
Result:=mrOk;
if ToolStatus<>itBuilder then exit;
TheOutputFilter.StopExecute:=true;
end;
function TMainIDE.DoInitProjectRun: TModalResult;
var
ProgramFilename, WorkingDir: String;
@ -9338,6 +9354,9 @@ end.
{ =============================================================================
$Log$
Revision 1.620 2003/07/08 11:30:22 mattias
added Abort Build
Revision 1.619 2003/07/07 18:06:05 mattias
fixed switching TARGET_OS

View File

@ -297,6 +297,7 @@ type
// run menu
itmProjectBuild: TMenuItem;
itmProjectBuildAll: TMenuItem;
itmProjectAbortBuild: TMenuItem;
itmProjectRun: TMenuItem;
itmProjectPause: TMenuItem;
itmProjectStepInto: TMenuItem;
@ -1112,6 +1113,11 @@ begin
itmProjectBuildAll.Graphic:=LoadPixmap('menu_buildall');
mnuRun.Add(itmProjectBuildAll);
itmProjectAbortBuild := TMenuItem.Create(Self);
itmProjectAbortBuild.Name:='itmProjectAbortBuild';
itmProjectAbortBuild.Caption := lisMenuAbortBuild;
mnuRun.Add(itmProjectAbortBuild);
mnuRun.Add(CreateMenuSeparator);
itmProjectRun := TMenuItem.Create(Self);
@ -1426,6 +1432,7 @@ begin
// run menu
itmProjectBuild.ShortCut:=CommandToShortCut(ecBuild);
itmProjectBuildAll.ShortCut:=CommandToShortCut(ecBuildAll);
itmProjectAbortBuild.ShortCut:=CommandToShortCut(ecAbortBuild);
itmProjectRun.ShortCut:=CommandToShortCut(ecRun);
itmProjectPause.ShortCut:=CommandToShortCut(ecPause);
itmProjectStepInto.ShortCut:=CommandToShortCut(ecStepInto);

View File

@ -72,6 +72,7 @@ type
procedure InternalSetCurrentDirectory(const Dir: string);
public
ErrorExists: boolean;
Aborted: boolean;
function Execute(TheProcess: TProcess): boolean;
function GetSourcePosition(const Line: string; var Filename:string;
var CaretXY: TPoint; var MsgType: TErrorType): boolean;
@ -159,9 +160,16 @@ begin
OutputLine:='';
ErrorExists:=true;
Aborted:=false;
repeat
Application.ProcessMessages;
if StopExecute then exit;
if StopExecute then begin
TheProcess.Terminate(0);
Aborted:=true;
Result:=false;
ReadLine('aborted',true);
break;
end;
if TheProcess.Output<>nil then
Count:=TheProcess.Output.Read(Buf[1],length(Buf))