JEU DU PENDU DES SAVANTS DE PHYSIQUE-CHIMIE

Messages postés
390
Date d'inscription
vendredi 18 juin 2004
Statut
Membre
Dernière intervention
7 mai 2009
- - Dernière réponse : John Dogget
Messages postés
390
Date d'inscription
vendredi 18 juin 2004
Statut
Membre
Dernière intervention
7 mai 2009
- 20 août 2007 à 18:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43829-jeu-du-pendu-des-savants-de-physique-chimie

Afficher la suite 
John Dogget
Messages postés
390
Date d'inscription
vendredi 18 juin 2004
Statut
Membre
Dernière intervention
7 mai 2009
-
Si je peux aider ...
De quelle remarque tu parles ?
james le programmeur
Messages postés
1
Date d'inscription
mardi 9 mai 2006
Statut
Membre
Dernière intervention
20 août 2007
-
John, je n'ai pas compris comment faire pour la localisation du fichier dictionnaire, comment initialiser les champs "FileName" de "Open" et "Save".Si tu peux me donner plus de détail merci.
John Dogget
Messages postés
390
Date d'inscription
vendredi 18 juin 2004
Statut
Membre
Dernière intervention
7 mai 2009
-
Oki.

Avant de t'expliquer, j'ai vu quelques petites choses qui ne vont pas dans ton code, particulierement dans l'unité "Dictionnaire" puisque c'est elle qui te pose problème lors du chargement ou de la sauvegarde du fichier ...

A la ligne 49, tu ecris

if length(Edit1.Text)<3 then
Formerreur.showmodal
else
listdico.Items.Add(uppercase(Edit1.Text));
Edit1.Clear;
dico.listdico.Items.SaveToFile(open.filename);

Traduit textuellement, ça donne si la longueur est <3, j'affiche l'erreur, sinon j'ajoute l'element à la liste, ensuite je sauvegarde. Ce qui signifie qu'erreur ou pas, l'élement sera sauvegardé -> pas glop à mon avis ...

Il aurait été plus logique d'ecrire (pas la peine de sauvegarder un élément vide) :

if length(Edit1.Text)<3 then
begin
Formerreur.showmodal;
exit;
end;
listdico.Items.Add(uppercase(Edit1.Text));
Edit1.Clear;
dico.listdico.Items.SaveToFile(open.filename);

Ensuite je suis pas sûre que tu utilises correctement les compo TSaveDialog et TOpenDialog. Ceux ci sont censé ouvrir une boite de dialogue windows pour ouvrir ou sauver un fichier, or tu ne te sers pas de ces boîte de dialoges ...

Si tu veux sauver ou ouvrir un fichier, pas besoin de ces deux compo, écrire simplement "dico.listdico.Items.SaveToFile(<chemin fichier>)" devrait suffire.

Pour finir, si tu veux localiser un fichier qui est dans le même dossier que ton application fait comme ceci :

1) tu crée une variable chaine de caracteres

var CheminApplcation:string;

2) tu initialise ta variable avec le chemin complet vers ton application

CheminApplication:=ExtractFilePath(Application.ExeName);

3) si tu veux utiliser le fichier "dico.txt"

dico.listdico.Items.LoadFromFile(CheminApplication+'dico.txt');

Voila :)