Ver Mensaje Individual
  #4  
Antiguo 10-08-2013
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Reputación: 19
Chris Va por buen camino
Realmente no estoy seguro si el código que te proporcionaré funciona. Lo estoy escribiendo según mi conocimiento de la WinAPI y no tengo Delphi a mano.

El truco pasa por utilizar los Hooks que ofrece la API de Windows. Por eso yo mejor utilizaría la función nativa MessageBox en lugar de Application.MessageBox.

Código Delphi [-]
use Windows, SysUtils;

var
    hook_handle: HHOOK;

function CBTProc(nCode: Integer;
                 wParam: WPARAM;
                 lParam: LPARAM): LRESULT stdcall;
var
    message_wnd: HWND;
begin
    if (nCode = HCBT_ACTIVATE) then
    begin
        message_wnd = HWND(wParam);

        // Movemos la ventana del messagebox con SetWindowPos
        SetWindowsPos(message_wnd ... );

        // quitamos el hook
        UnhookWindowsHookEx(hook_handle);
    end
        CallNextHookEx(hhk, nCode, wParam, lParam);
    else
        CallNextHookEx(hhk, nCode, wParam, lParam);
end;

// instalamos el hook
hook_handle := SetWindowsHookEx(WH_CBT,
                            @CBTProc,
                            0,
                            GetCurrentThreadId());

// hacemos nuestra llamada a messagebox
Windows.MessageBox('Esta seguro de los datos...' .... );

Saludos!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita