Problème ensemble d'exploration (TDriveCombobox, TDirectoryListBox...) - Delphi/Pascal - Programmation
Marsh Posté le 18-02-2005 à 11:10:01
Ya personne ici ??
J'ai trouvé une fonction ki vérifie si le lecteur contient un disque :
function DiskInDrive(const Drive: Char): Boolean;
var
DrvNum: Byte;
EMode: Word;
begin
Result := False;
DrvNum := Ord(Drive);
if DrvNum >= Ord('a') then
Dec(DrvNum, $20);
EMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
if DiskSize(DrvNum - $40) <> -1 then
Result := True
finally
SetErrorMode(EMode);
end;
end;
Ensuit, sur L'évènement OnChange de ma TDriveCombobox je met :
drivezone.DirList:=nil;
try
if not DiskInDrive(drivezone.drive)
then begin
showmessage('Le lecteur '+drivezone.drive+': est vide');
end;
finally
drivezone.DirList:=arbre;
end;
Cependant, J'ai à chauqe PREMIER clique sur un lecteur vide un message d'erreur Windows Erreur E/S et seulement ensuite si je reclique SANS CHANGER DE LECTEUR sur mon lecteur vide, j'ai ma boite de dialogue de remplacement, Pouvez vous m'aider ?
Merci
Marsh Posté le 18-02-2005 à 11:11:07
Comment ça "plante" ? Si c'est juste une Exception qui est lancée, il faut la récupérer avec un try/except.
Marsh Posté le 18-02-2005 à 11:12:32
Ces composants ce sont des machins datant de Windows 3.1, ça donne un look assez vieillot quand même
Marsh Posté le 18-02-2005 à 09:05:16
Bonjour à tous !
J'ai un soucis. Je suis en train de faire une zone d'exploration composée d'un TDriveCombobox, TDirectoryListBox, TFileListBox, FilterCombobox.
Or, lorsque je sélectionne le lecteur D (mon lecteur CD) dans le TDriveCombobox, l'appli plante (sans doute dut au fait que ce lecteur soit vide ).
Comme faire pour vérifier si le lecteur est vide ?
Merci !
---------------
Avec Linux, je fais ce que je veux! Avec Windows, je fais ... ce que je peux...