DeleteObjects (objectlist)

De Wiki1000

<source lang='delphi'>procedure DeleteObjects(iStopOnError:boolean);</source>

Cette procédure supprime les objets de la liste.

iStopOnError Stoppe si une erreur se produit
  • Si une transaction est ouverte la suppression se fait dans la transaction courante
  • Si aucune transaction n'est ouverte une transaction séparée est utilisé

Pseudo code équivalent: <source lang="delphi">

procedure doDeletes(iStopOnError:boolean); var idx:Integer; aRef:TitObject; begin

 //
 // Delete all the objects.
 //
 for idx:=Count-1 downto 0 do
   begin
     aRef := Refs[idx].Instance;
     if Assigned(aRef) then aRef._AddRef;
     Delete(idx);
     try
       if Assigned(aRef) then
         begin
           aRef.Deleted := TRUE;
         end;
     except
       if iStopOnError then
        begin
          Insert(idx,aRef);
          if Assigned(aRef) then aRef._Release;
          raise;
        end;
     end;
     if Assigned(aRef) then aRef._Garbage;
   end;

end;

procedure DeleteObjects(iStopOnError:boolean); begin

 if ClassManager.TranCount>0 then
  begin
    // instances are removed from the list
    doDeletes(iStopOnError);
  end
  else
  begin
    old := ClassManager.NewTransContext;
    try
      ClassManager.BeginTran;
      try
       doDeletes(iStopOnError);
       ClassManager.Commit([coNoConfirmDialog]);
      except
      Classmanager.RollBack;
      raise ;
      end;
    finally
    ClassManager.ActivateContext(old);
    end;
  end;

end;

</source>

Voir aussi:

{{#if:Listes d'objets (tech)|

{{#if:Listes d'objets (tech)|— Listes d'objets (tech) |}} — Développement DSM

|

{{#if:|— [[{{{1}}}]] |}} — Développement DSM

}}