Error al ejecutar editor de componentes
Alguien sabe porqué no puedo acceder a las propiedades del formulario de un editor de componentes. Cuando trato de modificar algo (p. ej. FormComponente.Width := ...) durante la ejecución del editor me da un error que reza:
"Access violation at address 0081F52D in module vcl70.bpl. Read of address 0000004C" No es el código específico de ese editor ya que lo he probado con otros editores que funcionaban y si les agrego caprichosamente en cualquier lado la linea corresponediente que diga FormComp.width := ... (FormComp es, por supuesto, un nombre genérico, yo le pongo el que corresponde) me da un error similar. Yo necesito acceder (si es que se puede) a modificar las dimensiones del Form (digamos... a agrandarlo) según el ancho que el usuario le de al componente utilizando el editor gratzie |
Sin algo de código es difícil de imaginarse qué puede estar pasando...:(
Ese error suele pasar al acceder a algun objeto que no está inicializado, o acceder a un apuntador que "apunta" a basura. |
codigo
No soy amigo de aburrir con largos códgos, sin embargo como no sé donde puede estar la falla, intenté hacer un hipotético codigo (suficientemente corto) con el esquema que tanía programado en mi componente para ver si pueden descubrir algo. Imaginen un (inutil, por cierto) editor de botones standard de delphi. El form del editor, tiene un botón (button2) que fija el ancho de la ventana en 500 pixels (acá es donde daría el error).
ACLARO: No probé este editor y además lo armé de memoria en el block de notas de windows, ya que no voy a tener acceso a una máquina con Delphi hasta la noche, así que puede tener más errores. Lo importante es la idea. Código:
|
¿Existe el objeto Application?
Cita:
|
Si...
Según tengo entendido TMiForm.Create(Application) hace lo mismo que Application.CreateForm excepto porque con el primero setea automáticamente la form creada como la primera (o main form) de la applicación. De todas formas insisto: el error lo da en la linea: "FrmButton.Width := 500;", y entiendo que es un error que me indica que estoy tocando algo que no debo (en este caso el Form del editor). El problema es porqué "no debo"... |
Estas haciendo referencia a una variable que no has asignado: frmButton.
Yo ni la declararía. |
Cita:
Saludos! |
FrmButton jamás se crea.
En el método ExecuteVerb del editor creas una instancia de TfrmButton que asignas a la variable local aForm mientras que en TfrmButton.Button2Click intentas acceder a la variable global frmButton. ¿Porqué no simplemente en lugar de FrmButton.Width := 500; pones Width := 500;? // Saludos |
La franja horaria es GMT +2. Ahora son las 17:24:39. |
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