FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Access violation at address al agregar TButtonCategory en TCategoryButtons
Buenas noches a todos,
Estoy utilizando uno de los componentes VCL disponible en Delphi, el componente TCategoryButtons. Mi intención es crear un componente TCategoryButton, dentro de este agregar varias categorias del tipo TButtonCategory, y finalmente en este último agregar TButtonItems. Aparentemente todo funciona a la perfección porque el componente y sus derivados realizan su función. Sin embargo, siempre aparece el error: "Access violation at address ... in module ... Read of address 00000000X" y no entiendo porqué. El código que estoy utilizando es el siguiente: Agradezco de antemano algún aporte que los usuarios del clubdelphi puedan realizar para la solución de este problema. |
#2
|
||||
|
||||
osmeg,
Cita:
Revisa este código: Espero sea útil Nelson. Última edición por nlsgarcia fecha: 10-12-2014 a las 06:10:47. |
#3
|
|||
|
|||
Hola nlsgarcia,
Gracias por contestar. Realicé lo que me indicaste (quitar sentencia redundante) pero ahora no aparece el componente en el Panel y sigue apareciendo el mismo error (Access violation at address...). Según entiendo, el problema se encuentra en la sentencia:
Porque 'categoria' no ha sido creada explícitamente en el código usando su respectivo constructor:
El problema es que no sé como crearlo porque el constructor exige un elemento TCollection como parámetro. Saludos. |
#4
|
||||
|
||||
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Gracias por responder ecfisa,
Estuve comparando el uso del componente TCategoryButtons (y todos sus derivados: TButtonCategory y TButtonItem) cuando se crea tanto en tiempo de diseño como en tiempo de ejecución. Tras revisar durante algún tiempo, encontré una solución al problema del error Access violation at address..., con la siguiente secuencia de pasos: 1. Se oculta el componente principal (TCategoryButtons) 2. Se agregan los elementos necesarios al componente principal 3. Una vez agregados todos los elementos, se muestra el componente principal. Creo que queda mas clara la idea expresandola en código:
La verdad desconozco porqué de esta forma se soluciona el problema del error. Depronto alguno de ustedes quiera complementar esa solución justificandola. Saludos y gracias por su colaboración. |
#6
|
||||
|
||||
osmeg,
Cita:
Cita:
Te comento: 1- El código del Msg #1 crea dos instancias del componente TCategoryButtons, una en la clase de TForm1 y otra dentro de un método de TForm1. 2- La idea de eliminar la sentencia redundante, era para ejemplificar que el problema se originaba por las dos instancias del componente, no como una solución definitiva. 3- Una forma de eliminar el error de Access Violation y evitar la redundancia del componente TCategoryButtons es la siguiente: El código anterior en Delphi XE6 sobre Windows 7 Professional x32, crea en Runtime un componente TCategoryButtons asociado a un TPanel y adiciona un botón al mismo. Otro ejemplo Revisa este código: El código anterior en Delphi XE6 sobre Windows 7 Professional x32, muestra un ejemplo de uso del componente TCategoryButtons configurado en Tiempo de Diseño, como se muestra en la siguiente imagen: El código del ejemplo funciona correctamente sin la necesidad de crear una nueva instancia del componente TCategoryButtons, dado que este es creado en la definición de la clase TForm1. El código esta disponible en : TCategoryButtons.rar Espero sea útil Nelson. Última edición por nlsgarcia fecha: 11-12-2014 a las 08:52:45. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ventana de error: Access violation at address 00CA1C10. Read of address 00CA1C10 | HERYCK | Varios | 3 | 06-10-2012 07:35:57 |
Access violation at address 7C92B1FA in module 'ntdll.dll'. Write of address 00000010 | genyus00 | Varios | 1 | 12-02-2011 09:41:20 |
Access violation at address | elarys | Varios | 6 | 22-11-2007 18:24:35 |
Access violation at address ... | Franklim | API de Windows | 2 | 03-12-2004 00:09:53 |
Access violation at address 005553D2 | Antonio Rosas E | Conexión con bases de datos | 2 | 08-10-2004 20:18:55 |
|