Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-07-2013
Caroso Caroso is offline
Miembro
NULL
 
Registrado: jul 2013
Posts: 44
Poder: 0
Caroso Va por buen camino
Post Ayuda Delphi!!

Hola muchachos soy nuevo en el FORO!!, lo eh observado con frecuencia y me ah sido de mucha utilidad... en esta oportunidad me dispongo a preguntar si alguien me podría ayudar...
El tema es el siguiente:

1) Necesitaría saber como hacer para que, al llevar el cursor (mouse) fuera de mi aplicación, fuera de mi form, la misma se cierre... eh estado probando con el evento OnMouseLeave, pero al colocar un botón en el mismo e intentar posicionarme sobre él, el formulario llama al evento OnMouseLeave y lo cierra.

Desde ya muchas gracias!! PD:\ eh estado leyendo muchos hilos en este foro... pero ninguno se ajusta a mis necesidades.
Responder Con Cita
  #2  
Antiguo 09-07-2013
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración

Y no olvides poner títulos descriptivos a tus preguntas, gracias
Responder Con Cita
  #3  
Antiguo 09-07-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.015
Poder: 22
oscarac Va por buen camino
coloca tu codigo a ver q tienes
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 09-07-2013
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Y recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #5  
Antiguo 09-07-2013
Caroso Caroso is offline
Miembro
NULL
 
Registrado: jul 2013
Posts: 44
Poder: 0
Caroso Va por buen camino
Unhappy Este es mi codigo...

Cita:
Empezado por oscarac Ver Mensaje
coloca tu codigo a ver q tienes
Hola oscarac gracias por tu pronta respuesta... te muestro lo que tengo hasta ahora... este codigo lo obtube de este mismo foro...

esto lo ubique en el evento OnDesactivate del formulario...
Código Delphi [-]
procedure TForm1.FormDeactivate(Sender: TObject);
begin
  ReleaseCapture;
end;

y esto otro en el evento OnMouseLeave...

Código Delphi [-]
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
  If GetCapture = 0 then
    SetCapture(frmLateralDerecho.Handle) ;
  If PtInRect(Rect(frmLateralDerecho.Left, frmLateralDerecho.Top, frmLateralDerecho.Left + frmLateralDerecho.Width, 
              frmLateralDerecho.Top + frmLateralDerecho.Height), ClientToScreen(Point(x, y))) then
    { Cosas a hacer si el puntero del mouse está dentro del formulario }
  else
    Form1.close; { Cosas a hacer si el puntero del mouse está fuera del formulario }
end;

el codigo anda... pero al sacar el mouse del formulario muy rapidamente el mismo permanece abierto...

Muchas Gracias

Última edición por Casimiro Noteví fecha: 09-07-2013 a las 18:55:35.
Responder Con Cita
  #6  
Antiguo 09-07-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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 Caroso.

Código Delphi [-]
...
type
  TMainForm = class(TForm)
    ...
  private
    procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
  public
  end;

...

implementation

procedure TMainForm.CMMouseLeave(var Msg: TMessage);
begin
  Close;
end;
...

Saludos.

Edito: Disculpas, no leí lo del boton...
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 09-07-2013 a las 19:04:36.
Responder Con Cita
  #7  
Antiguo 09-07-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.015
Poder: 22
oscarac Va por buen camino
Creo que el problema esta en el

Form1.Close

no deberia ser

frmLateralDerecho.Close
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #8  
Antiguo 09-07-2013
Caroso Caroso is offline
Miembro
NULL
 
Registrado: jul 2013
Posts: 44
Poder: 0
Caroso Va por buen camino
Smile Respuesta a ecfisa

Cita:
Empezado por ecfisa Ver Mensaje
Hola Caroso.

Código Delphi [-]
...
type
  TMainForm = class(TForm)
    ...
  private
    procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
  public
  end;

...

implementation

procedure TMainForm.CMMouseLeave(var Msg: TMessage);
begin
  Close;
end;
...

Saludos.

Edito: Disculpas, no leí lo del boton...
jeje no hay problema ecfisa! jeje a cualquiera le puede pasar... este codigo lo eh probado anteriormente... y realmente funciona pero al intentar posicionarme sobre un elemento dentro de el form se cierra...

Desde ya muchas gracias por tu tiempo
Responder Con Cita
  #9  
Antiguo 09-07-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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.

Como edité en el mensaje anterior, se me pasó tu comentario sobre el TButton, así que rectifico el código anterior:
Código Delphi [-]
...
type
  TMainForm = class(TForm)
    ...
  private
    procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
  public
  end;

...

implementation

procedure TMainForm.CMMouseLeave(var Msg: TMessage);
begin
  if FindVCLWindow(Mouse.CursorPos) = nil then
    Close;
end;
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 09-07-2013
Caroso Caroso is offline
Miembro
NULL
 
Registrado: jul 2013
Posts: 44
Poder: 0
Caroso Va por buen camino
Post

Cita:
Empezado por oscarac Ver Mensaje
Creo que el problema esta en el

Form1.Close

no deberia ser

frmLateralDerecho.Close
mil disculpas oscarac! tienes razon... lo corrigire... pero aun continuo con el problema de al intentar posicionarme sobre un elemento dentro del form este se cierra
Responder Con Cita
  #11  
Antiguo 09-07-2013
Caroso Caroso is offline
Miembro
NULL
 
Registrado: jul 2013
Posts: 44
Poder: 0
Caroso Va por buen camino
Unhappy

gracias por tomarte el tiempo para responder ecfisa!!

Pero con la reforma del código el form cuesta cerrar... me explico mejor... al incorporar la reforma, debo intentar varias veces salir hasta que toma el evento y cierra el form...

Nuevamente muchas gracias por tu tiempo
Responder Con Cita
  #12  
Antiguo 09-07-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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.

Que extraño, en la prueba funciona de modo correcto. Es más, para salir de toda duda lo incorporé al form principal de un sistema (MDI) con varias ventanas abiertas y también cierra ni bién el cursor deja el form principal. Uso Delphi 7, tal vez se comporte diferente en otra versión...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #13  
Antiguo 09-07-2013
Caroso Caroso is offline
Miembro
NULL
 
Registrado: jul 2013
Posts: 44
Poder: 0
Caroso Va por buen camino
Smile

Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Que extraño, en la prueba funciona de modo correcto. Es más, para salir de toda duda lo incorporé al form principal de un sistema (MDI) con varias ventanas abiertas y también cierra ni bién el cursor deja el form principal. Uso Delphi 7, tal vez se comporte diferente en otra versión...

Saludos.
ahhh puede ser por eso... ahora lo pruebo en Delphi 7... yo lo estaba trabajando en Delphi 2010... pruebo y te comento ecfisa

Saludos
Responder Con Cita
  #14  
Antiguo 09-07-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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 Caroso.

Ya que estoy te adjunto los fuentes de la prueba para que puedas controlar sobre ella.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 17-09-2013 a las 19:32:32.
Responder Con Cita
  #15  
Antiguo 09-07-2013
Caroso Caroso is offline
Miembro
NULL
 
Registrado: jul 2013
Posts: 44
Poder: 0
Caroso Va por buen camino
Smile

gracias por el codigo fuente caroso... por ahi tengo un problema de configuracion de la pc... pero si te sirve eh grabado un video el cual muestra el proyecto que tu me enviaste... en el mismo posiciono el mouse sobre los controles dentro del form y anda esplendido... pero al intentar salir no se cierra automaticamente... el interesado me envia un mensaje privado pues no puedo colocar link... desde ya gracias a todos por su colaboracion
Responder Con Cita
  #16  
Antiguo 09-07-2013
Caroso Caroso is offline
Miembro
NULL
 
Registrado: jul 2013
Posts: 44
Poder: 0
Caroso Va por buen camino
Smile

Nuevamente yo amigos del Foro... eh encontrado la solucion a mi problema... esta en este enlace...

Cita:
delphi.about.com/cs/adptips2000/a/bltip0800_5.htm
Código Delphi [-]
procedure TForm1.FormDeactivate(Sender: TObject) ;
begin
   ReleaseCapture;
end;

procedure TForm1.FormMouseMove
(Sender: TObject; Shift: TShiftState; X,Y: Integer) ;
begin
  If GetCapture = 0 then
    SetCapture(Form1.Handle) ;
    if PtInRect(Rect(Form1.Left,
                    Form1.Top,
                    Form1.Left + Form1.Width,
                    Form1.Top + Form1.Height),
                    ClientToScreen(Point(x, y))) then
     Form1.Caption := 'Mouse is over form' else
     Form1.Caption := 'Mouse is outside of form';
end;


Muchisimas gracias a todos los que colaboraron conmigo... es de suma importancia para mi poder agradecer su tiempo y dedicacion...

Atte: Caroso...

PD:\ TEMA CERRADO

Última edición por Casimiro Noteví fecha: 09-07-2013 a las 20:45:57.
Responder Con Cita
  #17  
Antiguo 10-07-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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.

Me alegra que lo hayas solucionado

A modo de comentario, ese código se puede reducir:
Código Delphi [-]
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  If GetCapture = 0 then
    SetCapture(Handle) ;
  if not PtInRect(BoundsRect, Mouse.CursorPos) then
    Close;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



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
ayuda con delphi for php _CALI PHP 1 08-10-2010 15:31:42
Ayuda con Delphi 7 Amezola OOP 4 13-06-2007 09:12:40
Instalar Ayuda (.HLP) en la Ayuda de Delphi? MasterXP Varios 6 12-04-2006 06:57:49
No puedo abrir la ayuda de delphi 8/delphi 2005 ASAPLTDA Varios 0 24-12-2004 16:20:53


La franja horaria es GMT +2. Ahora son las 18:52:09.


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