[Delphi] Erreur Pas de disque dans le lecteur

Résolu
Tavounet Messages postés 7 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 19 mai 2008 - 16 mai 2008 à 13:46
Tavounet Messages postés 7 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 19 mai 2008 - 19 mai 2008 à 11:16
Bonjour,

J'ai un petit problème en programmation d'un logiciel en Delphi, je réalise le programme de façon à le lancer à partir d'un CD, j'ai donc créé une procédure de test afin de "capter" la lettre du lecteur où se trouve le CD.

Cependant, lorsqu'il n'y a pas de CD dans le lecteur, il me met une erreur "Pas de Disque" avec trois boutons, Continuer, Recommencer et Annuler.

J'aurais aimé ignorer cette erreur mais apparemment Delphi reste bloqué à la ligne qui génére l'erreur.

Code : if FileExists('e:\Txt\FichDetect0123.txt') then Lecteur:='e';

Merci d' avance pour vos réponses =)

7 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
17 mai 2008 à 11:05
Salut,

sous XP Pro SP2
la fonction FileExists ne bloque pas si le lecteur est vide ... elle renvoie juste False ....

au lieu de se poser des questions .... un petit teste répondrait plus rapidement à vos interrogations

 
@+
Cirec

<hr siz="" />
1
Utilisateur anonyme
16 mai 2008 à 14:52
Salut,

if FileExists('e:\Txt\FichDetect0123.txt') then Lecteur:='e';
// <----- le beug est surement ici.

Donc si on réfléchit 5 min : Si le fichier  'e:\Txt\FichDetect0123.txt' existe alors  Lecteur:='e'; Mais si le fichier n'existe pas, qu'est ce qui passe ? Bien dans ton code rien : le reste de ta procédure continue d'avoir lieu. Donc effectivement si le fichier existe pas et que tu n'as pas arreté ta procédure, tu vas avoir droit à un beug.

Solution possible :
if FileExists('e:\Txt\FichDetect0123.txt') then Lecteur:='e'
Else Exit;
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
16 mai 2008 à 18:22
je pense pas que ce soit ca le probleme francky.
Son probleme vient du fait que la fonction FileExists de l'API windows ne retourne pas tant que l'utilisateur n'a pas inseré un cd ou cliqué sur abandonner.

Le probleme reel est de savoir si l'appel de fileExist va afficher un message qui fait qu'elle ne retournera pas avant une intervention de l'utilisateur. En gros, existe-il un fonction pour savoir si un lecteur est present.
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
17 mai 2008 à 15:25
<HorsSujet>
c'est quoi cette nouvelle mode des tetes de mort?
</HorsSujet>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
17 mai 2008 à 16:01
ce n'est que pure coïncidence

il n'y a pas eut de concertations à ce sujet

 
@+
Cirec

<hr siz="" />
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
17 mai 2008 à 19:58
"c'est quoi cette nouvelle mode des tetes de mort?"



voir reponse de Cirec.

c'est une pure coïncidence.

Cirec c'est fait un avatar perso.
Mauricio a mis la tete de mort d'Albator je crois
et moi c'est le drapeau de pirate de Luffy dans One Piece.

Aucun n'est donc lié.

<hr size="2" width="100%" />
0
Tavounet Messages postés 7 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 19 mai 2008
19 mai 2008 à 11:16
En réponse à Francky : Je ne pouvais pas faire un exit si le fichier n'existait pas car je testais toutes les lettres.


Réponse à f0xi : Parfait, je me suis servi de ParamStr(0) et du ExtractFileDrive, ça réduit déjà mon code d'une vingtaine de ligne =p


Les tests après reboot sont à venir, je tiens au courant ^^


 


Merci de vos réponses
0
Rejoignez-nous