Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   MessageBoxTimeout AccesViolation (https://www.clubdelphi.com/foros/showthread.php?t=92128)

Soa Pelaez 03-08-2017 22:25:32

MessageBoxTimeout AccesViolation
 
Buen día..

Tengo el siguiente problema dejo clic sostenido sobre el mensaje y como el se cierra pasado el tiempo que se le coloque si se deja el clic sostenido sobre la ventana del mensaje luego que se cierra sola genera un accesviolation.

http://www.clubdelphi.com/foros/showthread.php?t=92121

En el enlace está el código que utilizo.

Como podría solucionar el error de antemano gracias.

ecfisa 03-08-2017 22:44:34

Hola.

No logro reproducir la situación que mencionas. ¿ La excepción se produce estríctamente en el ejemplo que citas o hay involucrado algún elemento mas ?

Saludos :)

Soa Pelaez 03-08-2017 23:55:18

Cita:

Empezado por ecfisa (Mensaje 519962)
Hola.

No logro reproducir la situación que mencionas. ¿ La excepción se produce estríctamente en el ejemplo que citas o hay involucrado algún elemento mas ?

Saludos :)

En ese ejemplo tengo un formulario simple que saca el mensaje cuando le doy clic al botón y si dejo sostenido el mouse sobre la ventana del mensaje y esta por el tiempo que le coloque se cierra ahi arroja el acces violation.

Gracias.

Soa Pelaez 30-08-2017 17:23:14

Cita:

Empezado por Soa Pelaez (Mensaje 519974)
En ese ejemplo tengo un formulario simple que saca el mensaje cuando le doy clic al botón y si dejo sostenido el mouse sobre la ventana del mensaje y esta por el tiempo que le coloque se cierra ahi arroja el acces violation.

Gracias.

Revivo esta inquietud porque aún no logro solucionarla

ecfisa 30-08-2017 21:29:21

Hola de nuevo.

Sigo sin poder reproducir el error, por lo que intuyo que se trata de la versión de S.O., de Delphi o de algún programa externo que esté infirirendo.

El código que usé para la prueba es muy simple:
Código Delphi [-]
...
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

function MessageBoxTimeOut(hWnd: HWND; lpText: PChar; lpCaption: PChar;
  uType: UINT; wLanguageId: WORD; dwMilliseconds: DWORD): Integer; stdcall;

implementation  {$R *.dfm}

const
  MB_TIMEDOUT = 32000;

function MessageBoxTimeOut; external user32 name 'MessageBoxTimeoutA';

procedure TForm1.Button1Click(Sender: TObject);
var
  R : Integer;
begin
  R := MessageBoxTimeout(Handle,
                        'This box will close after 5 seconds.',
                        'Testing',
                        MB_SETFOREGROUND OR MB_SYSTEMMODAL OR
                        MB_ICONINFORMATION OR MB_OKCANCEL,
                        0,
                        5000);
  if R = IDOK then
    ShowMessage('Ok')
  else if R = IDCANCEL then
    ShowMessage('Canceled')
  else if R = MB_TIMEDOUT then
    ShowMessage('TimedOut');
end;
end.
La prueba fué realizada en Delphi 7 corriendo sobre Windows 7 64 bits, te adjunto los fuentes + ejecutable para que puedas cotejarlo con lo que te está dando el error.

Saludos :)

ecfisa 30-08-2017 21:33:09

1 Archivos Adjunto(s)
Se me había olvidado el adjunto... :o

Saludos :)


La franja horaria es GMT +2. Ahora son las 18:14:22.

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