Bonsoir à tous!

Toujours sur un petit soft de gestion de fichiers, le code est quasiment fini...Merci encore à OutOfRange d'ailleurs Wink !

Cependant, comme c'est marqué, c'est quasiment fini: il m'arrive une tuile un peu...bizarre.

Pour résumer, selon le mode choisi, l'utilisateur aura "en visuel" soit une listbox qui liste les fichiers du répertoire A, soit une autre listbox, qui elle, listera les fichiers du répertoire B.

Tout s'est très bien passé pour les fichiers du répertoires A; voici une partie du code.

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
 
{---Procédure de création en Mode non-scripté ---------------------------------}
procedure TForm1.RadioButtonNonScriptModeClick(Sender: TObject);
 
Var
  IniPath : String;
  IniInfo   : TSearchRec;
 
begin
  GroupBoxNonScriptedMode.Visible := True;
  GroupBoxScriptMode.Visible := False;
  GroupBoxCCSCP.Visible := False;
  ListBoxIniFiles.Items.Clear;
 
  IniPath := IncludeTrailingPathDelimiter(RepCCSLauncher+'Fichiers_ini');
 
  If FindFirst(IniPath+'*.*',faAnyFile,IniInfo)=0 Then
  Begin
    Repeat
 
    ListBoxIniFiles.Items.Add(IniInfo.FindData.cFileName)
 
     Until FindNext(IniInfo)<>0;
 
     FindClose(IniInfo);
  end;
end;
 
//Affiche les fichiers ini disponibles
procedure TForm1.ListBoxIniFilesClick(Sender: TObject);
begin
   LabelIniChoice.Caption:=listboxIniFiles.items[listboxIniFiles.itemindex];
end;
 
//Copie le fichier ini sélectionné, le renomme et lance soft.exe
procedure TForm1.ButtonNonScriptRunClick(Sender: TObject);
 
begin
  DeleteFile('ccs.ini');
  CopieFichier('Fichiers_ini\'+LabelIniChoice.Caption,'ccs.ini');
  ShellExecute(0,'OPEN','soft.exe', Nil, Nil, SW_SHOW);
end;
{------------------------------------------------------------------------------}
Jusque là, aucun souci après moults tests! C'est cool!
Mais là çà se gatte; voici le code pour les fichiers du répertoire B:

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
 
procedure TForm1.RadioButtonScriptModeClick(Sender: TObject);
var
  SPath : String;
  SInfo: TSearchRec;
 
begin
  ListBoxScriptFiles.Items.Clear;
  GroupBoxNonScriptedMode.Visible := False;
  GroupBoxScriptMode.Visible := True;
  GroupBoxCCSCP.Visible := False;
 
  SPath := IncludeTrailingPathDelimiter(RepCCSLauncher+'Fichiers_script');
  If FindFirst(SPath+'*.*',faAnyFile,SInfo)=0 Then
    Repeat
      ListBoxScriptFiles.Items.Add(SInfo.FindData.cFileName);
    Until
      FindNext(SInfo) <> 0;
      FindClose (SInfo);
  end;
 
//Affiche les fichiers script disponibles
procedure TForm1.ListBoxScriptFilesClick(Sender: TObject);
begin
   LabelScriptChoice.Caption:=listboxScriptFiles.items[listboxScriptFiles.itemindex];
end;
 
//Copie le fichier script sélectionné, le renomme et lance soft.exe
procedure TForm1.ButtonScriptRunClick(Sender: TObject);
 
begin
  DeleteFile(script.dat);
  CopieFichier('Fichiers_script\'+LabelScriptChoice.Caption,'script.dat');
  ShellExecute(0,'OPEN','soft.exe', Nil, Nil, SW_SHOW);
end;
{------------------------------------------------------------------------------}
J'ai voulu faire le kakou et faire un copier-coller de la 1ère partie et changer juste ce qu'il fallait...Bien évidemment çà n'a pas marché, alors j'ai retapé la 2nde partie du code...
Après compilation (sans warning d'ailleurs), je lance le soft, la 1ère partie marche toujours, tandis que la seconde déconne un peu: au moment de sélectionner un des fichiers du répertoire B, je me mange un message d'erreur qui stipule "Indice de Liste Hors Limite (-1).

Après recherche sur le forum, je trouve qq post qui mentionnent ce genre d'erreurs (erreurs d'énumérations si j'ai bien compris Embarassed), mais je ne vois pas vraiment où est le souci chez moi, puisque le code marche pour le 1er fichier...C'est à s'arracher les cheveux!!! Shocked

Alors si quelqu'un aurait ZE solution, çà m'arrangerait bien vu que j'arrive quasiment au bout du tunnel! Wink