PDA

Ver la Versión Completa : hibernacion del windows da problemas


aladelta
20-09-2006, 23:54:13
Hola a todos;

Que tal, da gusto ver que todo funciona muy bien por estos fantasticos foros..

Pues para quien pueda hechar una manita, decir que tengo problemas con la hibernación del windows... es decir, que estoy trabajando en un programa, y cuando dejas de usar el aparato (me pasa tanto en pcs como en portatiles) el windows se pone a hibernar y se desconecta del servidor (tambien me pasa en local), hecho que ha de ser asi porque al reactivar ha de pedir de nuevo el usuario y la contraseña (debido a la ley de proteccion de datos), y ocurre que al activar el windows y aparecer la pantalla con el programa, "sorpresa"...hay datos que han desaparecido del dbgrid...y conforme te mueves por el dbgrid van apareciendo.

Bien es cierto que no pasa con todos los campos, y me he dado cuenta que es con los campos calculados, pero no tengo ni repajolera idea de como enfrentarme a esto, ya que no puedo quitar la hibernación...

Gracias de antemano a todos....:)

roman
21-09-2006, 01:06:14
Por lo que comentas, parece no que se pierdan los datos, sino que el grid no se redibuja correctamente al regresar de la hibernación. Podrías intentar hacer un Refresh, ya sea del grid o del formulario, cuando se restaure el sistema. Para ello interceptas el mensaje WM_POWERBROADCAST:


const
PBT_APMRESUMESUSPEND = $07;

type
TForm1 = class(TForm)
private
procedure WMPowerBroadcast(var Msg: TMessage); message WM_POWERBROADCAST;
end;

implementation

procedure TForm1.WMPowerBroadcast(var Msg: TMessage);
begin
inherited;

if Msg.WParam = PBT_APMRESUMESUSPEND then
begin
{
Aquí haces el refresh;
}
end;
end;


// Saludos

aladelta
21-09-2006, 18:03:03
Gracias Roman por la respuesta y tu interes, voy aprobarlo ahora mismo y cuento los resultados...

Hasta luego

aladelta
05-10-2006, 20:39:34
Perfecto!!!...muchas gracias...

roman
05-10-2006, 21:11:06
Pues vaya que estuvo larga la hibernación :p :D

JerS
21-01-2009, 03:18:17
Por lo que comentas, parece no que se pierdan los datos, sino que el grid no se redibuja correctamente al regresar de la hibernación. Podrías intentar hacer un Refresh, ya sea del grid o del formulario, cuando se restaure el sistema. Para ello interceptas el mensaje WM_POWERBROADCAST:

Código Delphi [-] (http://www.clubdelphi.com/foros/#)const PBT_APMRESUMESUSPEND = $07; type TForm1 = class(TForm) private procedure WMPowerBroadcast(var Msg: TMessage); message WM_POWERBROADCAST; end; implementation procedure TForm1.WMPowerBroadcast(var Msg: TMessage); begin inherited; if Msg.WParam = PBT_APMRESUMESUSPEND then begin { Aquí haces el refresh; } end; end;


// Saludos

Buenas amigo Roman, llevando mas o menos la ide de este hilo, yo necesito hacer algo parecido pero mi problema es que cuando hiberna y vuelve a la normalidad me desactiva los dispositivos USB, me gustaria saber si puedo mandar a reactivar los puertos USB por delphi