anchor.diff:  
   procedure TMainForm.miRunMake(Sender: TObject);
   var
  -  p: TProcess;
  -  c: TfpgString;
  -begin
  -  p := TProcess.Create(nil);
  -  p.ShowWindow := swoShowNormal;
  -  p.CurrentDirectory := GProject.ProjectDir;
  -
  -  // build compilation string
  -  c := gINI.ReadString(cEnvironment, 'Compiler', '');
  -  c := c + GProject.GenerateCmdLine;
  -  c := GMacroList.ExpandMacro(c);
  -
  -  writeln('');
  -  writeln('Compile command:');
  -  writeln('  ' + c);
  -  AddMessage('Compile command: ' + c);
  -
  -  p.CommandLine := c;
  -  p.Execute;
  -  AddMessage('Compilation complete');
  -  p.Free;
  +  thd: TBuilderThread;
  +begin
  +  thd := TBuilderThread.Create(True);
  +  thd.OnTerminate := @BuildTerminated;
  +  thd.Resume;
  +end;
  +
  +procedure TMainForm.miRunBuild(Sender: TObject);
  +var
  +  thd: TBuilderThread;
  +begin
  +  thd := TBuilderThread.Create(True);
  +  thd.BuildMode := 1;
  +  thd.OnTerminate := @BuildTerminated;
  +  thd.Resume;
  +end;
  +
  +procedure TMainForm.miRunMake1(Sender: TObject);
  +var
  +  thd: TBuilderThread;
  +begin
  +  thd := TBuilderThread.Create(True);
  +  thd.BuildMode := 2;
  +  thd.OnTerminate := @BuildTerminated;
  +  thd.Resume;
  +end;
  +
  +procedure TMainForm.miRunMake2(Sender: TObject);
  +var
  +  thd: TBuilderThread;
  +begin
  +  thd := TBuilderThread.Create(True);
  +  thd.BuildMode := 3;
  +  thd.OnTerminate := @BuildTerminated;
  +  thd.Resume;
  +end;
  +
  +procedure TMainForm.miRunMake3(Sender: TObject);
  +var
  +  thd: TBuilderThread;
  +begin
  +  thd := TBuilderThread.Create(True);
  +  thd.BuildMode := 4;
  +  thd.OnTerminate := @BuildTerminated;
  +  thd.Resume;
  +end;
  +
  +procedure TMainForm.miRunMake4(Sender: TObject);
  +var
  +  thd: TBuilderThread;
  +begin
  +  thd := TBuilderThread.Create(True);
  +  thd.BuildMode := 5;
  +  thd.OnTerminate := @BuildTerminated;
  +  thd.Resume;
   end;
   
   procedure TMainForm.miConfigureIDE(Sender: TObject);
  
positive.code:     procedure   miProjectAddUnitToProject(Sender: TObject);
      procedure   tvProjectDoubleClick(Sender: TObject; AButton: TMouseButton; AShift: TShiftState; const AMousePos: TPoint);
      procedure   TabSheetClosing(Sender: TObject; ATabSheet: TfpgTabSheet);
      procedure   UpdateStatus(const AText: TfpgString);
      procedure   SetupProjectTree;
      procedure   PopuplateProjectTree;
  
negative.code:   ,idemacros
    ,Project
    ,UnitList
    ,BuilderThread
    ;
  
  
  