Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-11-2005
Velia Velia is offline
Miembro
 
Registrado: oct 2005
Posts: 71
Poder: 19
Velia Va por buen camino
Liberar el foco de un objeto

Hola
Cuando tengo el foco en un objeto mas presisamente un maskedit y el usuario ingresa cierta cadena no permitada: tiene dos opciones la primera es corregir la cadena que se ingresa o salir de la aplicación

Cuando sale del formulario el foco queda en el maskedit con lo que cuando vuelve a entrar se produce un error de compilación.
Por lo que quiero liberar el foco en el evento onclose del formulario.

intenté haciendo:

maskedit1.free;
maskedit1.nil;

pero ninguno me soluciona el problema, el foco sigue existiendo.
¿Cómo puedo liberar el foco del formulario?

Gracias por la ayuda
Saludos
Responder Con Cita
  #2  
Antiguo 18-11-2005
Avatar de Sotrono
Sotrono Sotrono is offline
Miembro
 
Registrado: abr 2004
Ubicación: Buenos Aires - Argentina
Posts: 396
Poder: 21
Sotrono Va por buen camino
Hola, como va?
Podes darle el foco a otro componente, ej:

Button1.SetFocus;

Saludos..
Responder Con Cita
  #3  
Antiguo 18-11-2005
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por Velia
se produce un error de compilación.
Que error es?, seria muy util saberlo pues quiza el error no sea porque el maskedit tenga el foco, puede ser que al abrir la aplicacion estas enviando el foco a un objeto que no exista aun o que quiza este invisible.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #4  
Antiguo 18-11-2005
Velia Velia is offline
Miembro
 
Registrado: oct 2005
Posts: 71
Poder: 19
Velia Va por buen camino
Perdon la molestia ya solucioné el problema

Como estoy trabajando con DataSnap y tengo un monton de clientDataSet abiertos habeces confundo los errores y el procedimiento comentado anteriormente me hacia suponer que era el foco que quedaba activado.
Controlando y corrijiendo otras cositas solucione el problema.

Pero me quedó la duda de cómo puedo liberar el foco de un objeto ya que intenté liberar el objeto con free pero el foco sigue apuntándolo

maskedit1.free;
maskedit1:=nil

y el error que me tira delphi es: exception class EAccessViolation with message ' Access Violation at address 0044FD50 in module ' .exe' Read of address 000000070

Saludos y Gracias por la ayuda
Responder Con Cita
  #5  
Antiguo 18-11-2005
Avatar de Sotrono
Sotrono Sotrono is offline
Miembro
 
Registrado: abr 2004
Ubicación: Buenos Aires - Argentina
Posts: 396
Poder: 21
Sotrono Va por buen camino
Cuando liberas un objeto (Objeto.Free) lo estas destruyendo, por lo tanto a cualquier metodo o propiedad que quieras acceder se va a producir un error porque ese objeto ya no existe.
Para que se pierda el foco de un objeto tenes que darle el foco a otro.

Bytes...

Última edición por Sotrono fecha: 18-11-2005 a las 01:09:56. Razón: Correccion del texto
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


La franja horaria es GMT +2. Ahora son las 11:06:14.


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