Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-10-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Saliéndome un poco del planteo inicial de danielmj...

Código Delphi [-]
...
procedure TForm1.FormCreate(Sender: TObject);
var
  Device  : DWORD;
  U  : string;
  i  : Integer;
begin
  Device := GetLogicalDrives;
  for i := 1 to 32 do
    if Device shr i and 1 = 1 then
    begin
      U:= Chr(Ord('A') + i) + ':';
      if GetDriveType(PChar(U)) in [DRIVE_REMOVABLE, DRIVE_FIXED] then
        ComboBox1.Items.Add(U);
    end;
  ComboBox1.ItemIndex := 0;
end;


function DriveReady(Drv: string): Boolean;
var
  MaxLen, SysFlags: DWORD;
  SNumber: DWORD;
  OldErr,Error : DWORD;
  Msg   : string;
begin
  OldErr := SetErrorMode(SEM_FAILCRITICALERRORS);
  try
    if GetVolumeInformation(PChar(Drv+'\'),nil,0,@SNumber,MaxLen,SysFlags,nil,0) then
     Result:= True
    else
    begin
      Error := GetLastError;
      case Error of
          ERROR_INVALID_NAME       : Msg := 'Nobre de archivo, de directorio o etiqueta de volumen inválido';
          ERROR_PATH_NOT_FOUND     : Msg := 'Ruta no encontrada';
          ERROR_TOO_MANY_OPEN_FILES: Msg := 'Demasiados archivos abiertos';
          ERROR_ACCESS_DENIED      : Msg := 'Acceso denegado';
          ERROR_WRITE_PROTECT      : Msg := 'Unidad protegida contra escritura';
          ERROR_NOT_READY          : Msg := 'La unidad no esta lista';
          ERROR_NOT_DOS_DISK       : Msg := 'El disco especificado no puede ser accedido';
          ERROR_HANDLE_DISK_FULL   : Msg := 'Disco lleno';
          ERROR_INVALID_DRIVE,
          ERROR_BAD_UNIT           : Msg := 'No se puede encontrar la unidad especificada';
          // ...
       end;
       raise Exception.Create(Msg);
    end;
  finally
    SetErrorMode(OldErr);
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  if DriveReady(ComboBox1.Text) then
  begin
    // Guardar contenido del Memo
  end;
end;

Para contemplar mas errores revisa: System Error Codes

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #2  
Antiguo 21-10-2013
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
Hola, pregunta desde mi ignorancia... en mi proyecto, supuestamente si selecciono una unidad no válida (por que no sea accesible), me captura el error y me muestra el mensaje, pero solo contemplo ese error, entonces ¿sería acertado cubrir todos los posibles errores o con mostrar el "unidad no valida" es suficiente? Aclaro que el proyecto simplemente se centra en coger un archivo de 15Gb (ejemplo) y cortarlo en trozos para luego unirlo.

Ahora mismo muestra el mensaje de error si por ejemplo a la hora de unir los trozos selecciono la unidad de CD y no hay disco, pero como digo solo contemplo ese error en concreto.
Saludos.
Responder Con Cita
  #3  
Antiguo 21-10-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por danielmj Ver Mensaje
Hola, pregunta desde mi ignorancia... en mi proyecto, supuestamente si selecciono una unidad no válida (por que no sea accesible), me captura el error y me muestra el mensaje, pero solo contemplo ese error, entonces ¿sería acertado cubrir todos los posibles errores o con mostrar el "unidad no valida" es suficiente?
Hola Daniel.

Depende de la profundidad de la información que vos consideres que el usuario debería conococer para dar solución al problema. En mi opinión el punto es que, sea por H o sea por B, no se puede guardar el archivo. Así un mensaje que exponga de forma simple el problema, a veces es mas sencillo de entender para el lector no avezado.

Por ejemplo algo como:
Cita:
ERROR AL INTENTAR GUARDAR EL ARCHIVO.
Revise que haya un disco insertado y que haya espacio en el mismo.
Si el error persiste controle el correcto funcionamiento del disco o la unidad.
De ese modo el que está ingresando los datos hará lo que está a su alcance para corregirlo y si no puede, llamará a quién corresponda

Por mas que nuestro mensaje indique cada posible error incluyendo el número (como pa' no errarle ), de nada sirve si quién lo lee no puede interpretarlo.

Es decir, un empleado que solo carga datos en un programa de gestión y no tiene ni la más remota idea del funcionamiento de S.O. quedaría bastante confundido con mensajes como: "Error, acceso denegado", "Error, manejador inválido", ... (y me consta que de esos empleados hay)

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 22-10-2013 a las 00:44:00.
Responder Con Cita
  #4  
Antiguo 22-10-2013
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
hola ecfisa,

entiendo supongo que tambien iran en funcion del tipo de usuario final, es decir, no tiene sentido dar grandes detalles de errores y sus causas y soluciones sobre una aplicacion que como es el caso de mi proyecto (cortar y unir archivos) que va dirigida a un publco determinado y digamos que no es un soft de gestion o de cierta complicacion sobre todo cuando los pocos errores que pueda dar, son los de acceso a dispositivo.

Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
duda con ECO VCL.NET cmm07 .NET 4 03-03-2008 18:53:25
duda empty Varios 4 05-05-2004 16:56:07
duda vetustas Conexión con bases de datos 12 05-11-2003 19:54:22
duda sql vetustas SQL 5 04-11-2003 15:35:39
duda haffo Varios 3 17-10-2003 19:03:37


La franja horaria es GMT +2. Ahora son las 08:44:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi