Ver Mensaje Individual
  #5  
Antiguo 05-07-2004
NeWNeO NeWNeO is offline
Miembro
 
Registrado: ago 2003
Posts: 35
Reputación: 0
NeWNeO Va por buen camino
... :(

Ok, voy a intentar aclarar esto:

Hace tiempo estuve trabajando en un componente de control de cd (que hay algunos comentarios por el foro). Finalmente conseguí hacer trabajar el AllocateHWND y el DeallocateHWND para captar mensajes de las unidades del sistema y pude hacer trabajar mi componente. Pero hay un problemita con todo esto: Cuando hago algún movimiento sobre las unidades (abrir, cerrar, obtener el ID etc..) la aplicación se queda "colgada" esperando el mensaje del lector hasta que este llega. La solución a esto es usar un thread que envie y reciba el mensaje en lugar del componente. Ejemplo:

Código Delphi [-]
 
Type
 TCDThread = Class(TThread)
  Private
   fresult: PAnsiChar;   //Aqui almacenamos el resultado
   procedure PostMCIString(Handle: HWND;Mensaje: String); // Con esto enviamos el comando a la unidad
  procedure GetBack; // Con este proceso enviamos el fResult al componente
  Public
 end;
 TCDControl = Class(TComponent)
 private
 procedure ProcessResult(P: PAnsiChar);
 public 
  property OpResult: PAnsiChar write ProcessResult;
...

// Mi problema viene cuando ejecuto el GetBack, y hago : 

...
procedure TCDThread.GetBack
begin
 TCDControl.OpResult := fResult;
end;

Cuando pongo TCDControl. no aparece ni OpResult ni ninguna de las variables, procesos o propiedades que tiene el componente... No se si me he explicado bien del todo... Si hay alguna duda sobre algo pliz ruego me lo pregunteis. Gracias por vuestro tiempo

NOTA: Gybda, ese link puede que solucione mi problema, lo aplico y ya comento el resultado. Gracias

Última edición por NeWNeO fecha: 05-07-2004 a las 14:06:51.
Responder Con Cita