Ver Mensaje Individual
  #13  
Antiguo 26-11-2010
LiAnTe- LiAnTe- is offline
Miembro
 
Registrado: oct 2007
Posts: 47
Reputación: 0
LiAnTe- Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Una pregunta Liante: ¿ Que hace el procedimiento 'BorrarPanelPersonal' previo a la creación ?

Saludos.
nada.

1. se crea el form con los botones de personas.
2. se borra los botones de personas.
3. se crean los botones de opciones de personas.

eso es lo unico que hace y siempre me salta un violate, igual tengo que hacer el procedimiento 5 o 6 veces y entonces salta el violate es iregular el pete pero lo da bastante veces...

Ahora estoy borrando el TTShet y lo estoy sustituyendo por un panel a ver si fuera eso.

Cita:
Empezado por Estifmauin Ver Mensaje
Yo también he probado tu código y funciona perfectamente.

¿No tendrás por ahí escondido algún método de dibujado o algo similar que esté accediendo a los controles del panel y que no esté comprobando la existencia de los mismos?
Un error bastante frecuente sería escribir algo como esto:
ActiveControl:=Personal.Controls[0]
sin comprobar antes si Personal.Controlcount > 0

Otra opción sería que después de llamar a BorrarPanelPersonal, hagas algo más...
Usa mensajes:
ShowMessage('empiezo a borrar los botones')
ShowMessage('he terminado de borrar los botones')
ShowMessage('voy a hacer otra cosa')
para saber dónde salta la liebre.

También puedes usar un manejador de excepciones global al programa (Application.OnException), dónde puedes investigar un poco de dónde viene el fallo, usando datos del objeto exception que te llegue.
No para nada no acceso asi al panel.
Responder Con Cita