Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-09-2005
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 244
Poder: 24
ingel Va por buen camino
y como puedo solucionarlo ?

tengo forma de saber que me presioanron el boton cancelar aunque el foco siga en el edit?
Evidentemente la propiedad focused no me sirve?
Saludos
Gracias
Ingel
Responder Con Cita
  #2  
Antiguo 29-09-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por ingel
tengo forma de saber que me presioanron el boton cancelar aunque el foco siga en el edit?
Creo que ahí hay una contradicción, puesto que, si se hace clic en el botón obviamente el foco estará en el botón y no en el "edit"... ¿no es así?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 29-09-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 26
vtdeleon Va por buen camino
Saludos

que use Un TSpeedButton, que este no obtiene el foco.

Creo que debe haber un analisis mejor sobre el manejo del eventos
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #4  
Antiguo 29-09-2005
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 244
Poder: 24
ingel Va por buen camino
no se donde estara el foco ...

pero lo primero que se ejecuta , al clickear el boton cancelar es el evento OnExit del EDIT ( o me equivoco ? ) . Debe haber una forma de saber que se presiono el boton cancelar ( voy a decir una antiguedad , pero tipo el Lastkey de clipper .. ) ..probe poniendo un showmessage en todos los eventos del boton .. pero siempre ejecuta el OnExit del Edit ...
(El foco sigue en el Edit.. edit.focused me da true en el evento onexit)
SAludos
Ingel
Responder Con Cita
  #5  
Antiguo 29-09-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Vamos a recapitular.

Para empezar, cuando vtdleon dijo al principio:

Cita:
Empezado por vtdleon
Al momento de dar click en el boton cancelar, este toma el foco y despues ejecuta tu codigo, por lo tanto nunca entrara en el Else.
él tenía toda la razón, yo estaba equivocado, lo cual se puede verificar simplemente poniendo:

Código Delphi [-]
procedure TForm1.Edit1Exit(Sender: TObject);
begin
  Assert(Button1.Focused);
end;

La aserción será cierta si se oprime el botón y falsa en cualquier otro caso.

Yo le propongo a ingel que exponga desde el comienzo lo que quiere hacer porque semánticamente es raro lo que originalmente puso:

Código Delphi [-]
if not bcancelar.focused then ejecutarcodigo
else bCancelarClick(self);

Esto está diciendo: "Si no se oprimió el botón Cancelar ejecútese algo, de lo contrario oprímase Cancelar" pero lo contrario es que sí se oprimió así que ¿para qué volver a hacerlo?

// Saludos
Responder Con Cita
  #6  
Antiguo 30-09-2005
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 244
Poder: 24
ingel Va por buen camino
recapitulando...

Lo que quiero hacer es en el ONEXIT de un EDIT ejecutar un codigo 'siempre', SALVO que se presione el boton CANCELAR.

- Con el foco en el TEDIT , si presiono el TBitBtn CANCELAR , lo priemro que ejecuta es el evento OnExit del Tedit y ahi dentro 'todo lo que pongo' que haga referencia al boton CANCELAR me da access violation
por lo tanto no encuentro forma de saber si se presiono o no dicho boton.

el codigo del OnExit seria asi

procedure TForm1.Edit1Exit(Sender: TObject);
begin
EjecutarCodigo;
end;

mi intencion era agregar algo como :

if not Cancelar.focused then EjecutarCodigo;

pero no funciona. El Assert(Cancelar.focused) tampoco me responde .
y si ahi pregunto por Edit1.focused SI ME DA TRUE ..por lo que presumo que el foco SIGUE en el EDIT (aun despues de haber presionado el boton CANCELAR)...

Saludos
Ingel
Responder Con Cita
  #7  
Antiguo 30-09-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 26
vtdeleon Va por buen camino
Saludos

Que extraño
Código Delphi [-]
procedure TForm1.Edit1Exit(Sender: TObject);
begin
  if Button1.Focused then
    ShowMessage('Boton con foco')
  else
    ShowMessage('OnExit');
end;
Hice esto con un solo botón y dos edit, y cada vez que doy click al boton éste presenta el 1er mensaje. Si el foco se va hacia el edit2 presenta el 2do mensaje
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
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


La franja horaria es GMT +2. Ahora son las 03:48:29.


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