Bonjour à tous,
Image 5 est un TImage pour stopper la boucle.
lorsque je clique sur Image5, je mets son Tag à 1, et décharge les objets créés, sauf que, la libération de StringListTravail déclenche la classe d'exception EInvalidPointer avec la message 'Opération de pointeur incorrecte'.
Je pense que c'est peut être parce que je demande à StringListTravail de travailler comme si c'était une autre liste => StringListTravail := StringListxxxxx ?.
Comment empêcher cette exception ? il y a quelque chose que je fais et qui n'est pas orthodoxe ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
var
        ...//...
  	StringListDebit : TStringList;
  	StringListCredit : TStringList;
  	StringListSortieDebit : TStringList;
  	StringListSortieCredit : TStringList;
        StringListTravail : TStringList;
  	StringListSortie : TStringList;
        NumList : byte;
begin
        StringListDebit:=TStringList.Create();
	StringListCredit:=TStringList.Create();
        StringListTravail:=TStringList.Create();
        StringListSortie:=TStringList.Create();
  	StringListSortieDebit := TStringList.Create();
  	StringListSortieCredit := TStringList.Create();
   Image5.Tag := 0;
 
   for NumList := 1 to 2 do
   begin
      if NumList = 1
      then StringListTravail := StringListDebit
      else StringListTravail := StringListCredit;
 
      for K := 1 to StrToInt(ComboBox2.Text)
      do begin
 
               ...//... code  
 
               Application.ProcessMessages;
               if Image5.Tag = 1
               then begin
                  FreeAndNil(StringListDebit);
                  FreeAndNil(StringListCredit);
                  FreeAndNil(StringListSortie);
                  FreeAndNil(StringListSortieDebit);
                  FreeAndNil(StringListSortieCredit);
                  FreeAndNil(StringListTravail);
                  Label34.Caption:= 'Process abandonné';
                  Exit;
               end;
 
               ...//... code  
         end;
    end;
end;