[Delphi] Erreur Pas de disque dans le lecteur [Résolu]

Signaler
Messages postés
7
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
19 mai 2008
-
Messages postés
7
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
19 mai 2008
-
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


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;
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
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.
Messages postés
3825
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
1 février 2021
39
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="" />
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
<HorsSujet>
c'est quoi cette nouvelle mode des tetes de mort?
</HorsSujet>
Messages postés
3825
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
1 février 2021
39
ce n'est que pure coïncidence

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

 
@+
Cirec

<hr siz="" />
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
"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%" />
Messages postés
7
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
19 mai 2008

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