Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-08-2013
Efren2006 Efren2006 is offline
Miembro
 
Registrado: feb 2006
Posts: 172
Poder: 19
Efren2006 Va por buen camino
Mover un Application.MessageBox

Saludos


Tengo el siguiente problema ,, tengo un Formulario con una especia de planilla que el usuario debe llenar, cuando termina el usuario de incluir los datos y pulsa un boton de OK :

Código Delphi [-]
Application.MessageBox('Esta Conforme con los Datos..?','VALIDAR',MB_YESNO+MB_ICONQUESTION)

El Problema es cuando se muestra la ventana en el medio de la Pantalla la misma TAPA o no deja ver un dato que necesito que el usuario verifique visualmente antes de conformar, entonces el usuario se la pasa moviendo la ventana,, mi pregunta simplemente es;
Se puede mover esta ventana a otras coordenadas... ?
Responder Con Cita
  #2  
Antiguo 10-08-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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 Efren2006.

Podes hacerte un hook CBT, crear tu propio cuadro de dialogo o más simple, usar la función MessageDlgPos:
Código Delphi [-]
 if MessageDlgPos('Esta Conforme con los Datos..?',  // Msg
                    mtConfirmation, // Dialog Type
                    [mbYes,mbNo],  // Buttons
                    0,    // Help context
                    10,  // Pos X
                    10   // Pos Y
                    ) = mrNo then 
    ...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 10-08-2013
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
prueba agregando los flags

Cita:
Empezado por AboutDelphi.com
MB_SYSTEMMODAL flag ensures that the user must respond to the message box before continuing work in the window identified by the hWnd parameter.
MB_TOPMOST flag specifies that the message box should be placed above all non-topmost windows and should stay above them, even when the window is deactivated.
MB_SETFOREGROUND flag ensures that the message box becomes the foreground window.
link: http://delphi.about.com/od/windowssh...tive_modal.htm
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #4  
Antiguo 10-08-2013
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 18
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
  #5  
Antiguo 10-08-2013
Efren2006 Efren2006 is offline
Miembro
 
Registrado: feb 2006
Posts: 172
Poder: 19
Efren2006 Va por buen camino
Buenas Noches

Gracias a Todos por sus valiosos aporte y conocimientos,,, me funciono a la perfección la solución que me dio ecfisa

Saludos
Responder Con Cita
  #6  
Antiguo 10-08-2013
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
and the winner is...
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
¿Application.MessageBox? Ledian_Fdez Varios 8 23-10-2006 23:19:44
Application.MessageBox !!! !3d1@n Varios 2 07-03-2005 21:22:20
problema con application.MessageBox ctronx Varios 3 12-01-2005 18:27:44
Cerrar MDI y Application.MessageBox MaJeSTiC Varios 6 05-08-2004 15:28:04
Ayuda con el Application.MessageBox? danytorres Varios 7 16-07-2003 22:05:32


La franja horaria es GMT +2. Ahora son las 23:42:20.


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
Copyright 1996-2007 Club Delphi