Bonjour,

Lazarus version: 1.5
Lazarus svn revision: 49541 (SVN)
Lazarus build date: 2015/07/13
Lazarus was compiled for i386-win32 sous W7 64b
Lazarus was compiled with fpc 3.1.1 (SVN).

Dans une TStringList je veux supprimer les chaînes vides. Comme le programme provoque une erreur, j'ai fait un petit programme de test utilisant la même logique qui reproduit systématiquement la même erreur. Le voici dans le onclick d'un bouton.
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
procedure TForm1.Button1Click(Sender:TObject);
var
  i,j:Integer;
  s:string;
  MaListe:TStringList;
begin
  MaListe:=TStringList.Create;
  try
    MaListe.Add('une chaîne');
    MaListe.Add('une autre');
    repeat MaListe.Add('');
    until MaListe.Count=10;
    MaListe.Delete(MaListe.Count-1);//là on peut supprimer le dernier item
    i:=0;
    while i<MaListe.Count do
    begin
      while (MaListe[i]='') and (i<MaListe.Count) do
      begin
        s:='Index à supprimer : '+IntToStr(i);
        for j:=0 to MaListe.Count-1 do
          s:=s+LineEnding+'J= '+IntToStr(j)+' : '+MaListe[j];
        ShowMessage(s);//pour vérifier le contenu de MaListe
        MaListe.Delete(i);//erreur à l'index 2
      end;
      inc(i);
    end;
  finally
    MaListe.Free;
  end;
end;
Il lève systématiquement l'erreur "List index (2) out of bounds" lors du delete(2) lorsque cet item est devenu le dernier de la liste (affichée dans le showmessage pour vérifier).
Ai-je fait une erreur quelque part ou est-ce une anomalie de cette version mise à jour sur les serveurs SVN?

Merci.
André

Edit: Bon.. Sous Delphi 7 j'ai la même erreur, mais je ne comprend toujours pas pourquoi