Delphi - Error al seleccionar unidad

 
Vista:

Error al seleccionar unidad

Publicado por martin (33 intervenciones) el 23/04/2005 19:16:22
Hola, quisiera que me ayudaran en este asunto, si deseo seleccionar una unidad de un DriveComboBox que no sea la c:
aparece un error que no se como corregir, pongo la siguiente funcion pero me indica todo el tiempo que no hay un disco en a:
pero como lo hago para las demas unidades disponibles del equipo..
esto es lo que hago

var Driver: array [0..3] of char = 'a:\';
function DiskIn(unidad: char): boolean;
var u1, u2, u3, u4: longword;
begin
Driver[0] := unidad;
Result := GetDiskFreeSpace(Driver, u1, u2, u3, u4);
end;

procedure TForm1.DriveComboBox1Change(Sender: TObject);
begin
If not DiskIn('a') then
Showmessage(' No hay disco en la unidad');
end;

Pero al ejecutar el programa, lo primero que rebisa es la unidad a: y deseo que lo haga al seleccionarla, ademas que me indique tambien lo mismo para las otras unidades, para que no marque el error

I/0 Error 21

Espero su ayuda ... gracias
Martin


Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error con DriveComboBox

Publicado por Martin (33 intervenciones) el 27/04/2005 17:34:53
Buenos dias... alguien podria ayudarme a resolver este problema ?
espero su respuesta, gracias

Martin
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error con DriveComboBox

Publicado por joselito (3 intervenciones) el 03/05/2005 14:19:42
Pon un Try Except y mira a ver si entra por el Except.
Si es asi, lo tienes facil, nada mas que ubicar el foco donde desees.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error con DriveComboBox

Publicado por Martin (33 intervenciones) el 09/05/2005 21:04:36
Gracias... pero eso ya lo habia intentado y no funciona...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Espero que esto funcione...!!!

Publicado por Martin (33 intervenciones) el 09/05/2005 21:16:58
Acabo de encontrar esta funcion ....
que si a alguien mas le puede servir aqui esta

function DiskInDrive(Drive: Char): Boolean;
var
ErrorMode: word;
begin
{ make it upper case }
if Drive in ['a'..'z'] then Dec(Drive, $20);
{ make sure it's a letter }
if not (Drive in ['A'..'Z']) then
raise EConvertError.Create('Not a valid drive ID');
{ turn off critical errors }
ErrorMode := SetErrorMode(SEM_FailCriticalErrors);
try
{ drive 1 = a, 2 = b, 3 = c, etc. }
if DiskSize(Ord(Drive) - $40) = -1 then
Result := False
else
Result := True;
finally
{ restore old error mode }
SetErrorMode(ErrorMode);
end;
end;


Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar