Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-06-2008
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Problema con propiedad TRadioButton.Checked en Runtime

Hola,
He creado un form con varios RadioButton. Este form posee varios constructores y según el constructor con el que se cree deben activarse unos u otros RadioButtons. El problema es que cuando hago en el constructor RadiButton.checked := true; me salta una excepción que me dice que no puede establecer el foco en un elemento que no es visible. ¿Alguna idea de como lo podría solucionar?
Gracias
Responder Con Cita
  #2  
Antiguo 06-06-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Hola, puede ser por varias razones, al llamar o crear el form puede que le estes dando foco a algo que no existe o no está visible ó le estas dando foco a un compenente que no acepta el foco, revisa la llamada al form.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 06-06-2008
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
me imagino que creas el radiobutton al crear la forma por lo tanto te va a mandar ese error, porque no revisas primero que la forma este visible y si esta, actualizas el checked
Responder Con Cita
  #4  
Antiguo 06-06-2008
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
No sé bien a qué se deba el problema (hice una prueba rápida y funcionó bien), quizá tienes algún evento asociado al evento OnClick de los RadioButtons que provoca el cambio de foco de algún control -cosa que no se puede hacer hasta que el formulario no esté visible.

Por otro lado, en mi opinión, el constructor debe reservarse para creación de controles y no para ajustes visuales, como lo es el marcar un radio button como seleccionado. Viene mejor el evento OnShow del formulario, o bien, redefinir el método DoShow.

Tampoco veo muy conveniente usar distintos constructores. Me parece más prolijo usar el constructor de siempre y pasarle información vía propiedades. Algo como:

Código Delphi [-]
Form := TMiForm.Create;
Form.Tipo := tipo_de_formulario;
Form.Show;

Entonces, en la redefinición de DoShow actúas en consecuencia:

Código Delphi [-]
procedure TMiForm.DoShow
begin
  case Tipo of
    0: AjustarControles;
    1: AjustarOtrosControles;
    
    etc
  end;
end;

// Saludos
Responder Con Cita
  #5  
Antiguo 06-06-2008
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Gracias por vuestras respuestas,
Roman ha dado con el problema y con la solucion (como siempre )... Yo usaba el evento onClick de los RadioButton y establecía el foco en otro componente (supongo que de ahí el error)... Ahora en vez de hacer el checked en el constructor lo hago en el evento onShow del form y funciona bien y revisaré bien como pasar parámetros sin usar constructores porque si Roman lo dice seguro que es bueno hacerlo así.

Muchas gracias a todos!!!
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
TButton como el TRadioButton Amos OOP 4 06-06-2008 16:18:54
Problema con LIKE en runtime anghell77 SQL 8 04-05-2006 12:16:57
Cambiar el estado de un RadioButton......"Checked o no Checked" chileno Varios 3 29-04-2006 22:34:18
Propiedad Checked de TCheckBox FunBit OOP 4 05-09-2005 10:53:06
problema con checked Cosgaya Varios 2 08-06-2005 10:03:46


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


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