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.
Jusque là, aucun souci après moults tests! C'est cool!
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; {------------------------------------------------------------------------------}
Mais là çà se gatte; voici le code pour les fichiers du répertoire B:
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...
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; {------------------------------------------------------------------------------}
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
Partager