DeleteObjects (objectlist)
<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 —
}}