![]() |
Error "A control cannot have itself as its parent"
Buenos dias, les comento... estoy tratando de crear objetos(botones, edit y demas cosas que se me ocurran) en una grilla.. cuando ejecuto el programa recibo este error al hacer la llamada a mi procedimiento
"A control cannot have itself as its parent" la llamada es Código:
stgboton(1, StringGrid1, 'hola', EventoClick, 5 ); Código:
procedure stgboton(objeto:integer; Grid : TStringGrid; txtcaption:string; evento:TNotifyEvent; columna:integer); |
Hola
Porque pones TButton(btn)??? No veo que crees el objeto (btn) en ninguna parte. |
No estas asignando ningun valor a la variable Btn, a la que luego le aplicas un casting a TButton usando el with
|
De cualquier forma el no instanciar una variable generaría un Access Violation #000000... no un "A control cannot have itself as its parent"
Yo creo (no tengo compilador a la mano) que el problema está en la utilizacion del With (Ya nuestro amigo Al Gonzalez en algún hilo habló de su uso y abuso) Asumo que al hacer el Create(nil); quieres asignarlo a tu btn... pues no funciona asi.
La linea create dentro del with equivale a hacer:
instancia un objeto pero no lo asigna a la variable btn. Lo que está ocurriendo es que dentro del with está asignando las variables a otro objeto, y segun parece, se está haciendo al StringGrid, de forma que en la linea parent:= grid, genera el error que te está enviando Creo que deberias hacer algo como:
Saludo, |
Cita:
Es eso, o bien en esa ejecucion se presento esa oportunidad y btn podria apuntar a cualquier lado |
Cita:
es incorrecta, usando with podrías hacer: Por otro lado usar como el tipo de parámetro a la clase TObject va a limitar las propiedades disponibles y la totalidad de los eventos. Te pongo un ejemplo usando un parámetro con otro tipo de clase que te va a permitir crear muchos controles (no los que se te ocurran :)), pero sí unos cuantos descendientes ella:
Salida: ![]() Saludos :) |
Muchas gracias muchachos, tengo ganas de llorar de la emoción! :D :D El ejemplo de ecfisa y la correccion de [gatosoft] funcionaron de 10...Gracias
Saludos |
La franja horaria es GMT +2. Ahora son las 16:54:52. |
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