FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema con asignar valor nil a un puntero
Que tal comunidad, se me presento un problema a la hora de asignar y comparar un puntero con el valor nil.. me sale la excepcion "EAccessViolation" cuando se ejecutan las lineas en rojo, seguramente haya mas "EAccessViolation" pero si resuelvo esas dos resuelvo todos..
Codigo:
Gracias y Saludos ! |
#2
|
||||
|
||||
Hola.
Tendrías que dar información más detallada, pero el problema podría estar en la forma en que estés llamando al constructor Create de TCola. ¿Podrías mostrarnos eso? También se agradecería si pudieras poner una copia exacta del mensaje de error (oprime Ctrl+C cuando aparezca). |
#3
|
|||
|
|||
El error es :
Cita:
Igualmente tmb dejo el codigo del Form principal.
Última edición por kdemia fecha: 23-11-2011 a las 23:53:41. |
#4
|
||||
|
||||
"Write of address 00000008" indica que estás tratando de asignar (escribir) en una dirección de memoria muy baja. Como si tuvieras un objeto TCola sin "instanciar", es decir, un objeto Nil, y quisieras escribir en uno de los campos de dicho objeto. La dirección 8, correspondería al campo Ultimo de tal objeto Nil.
Pero, para no especular más, ¿podrías mostrar el código de cómo estás creando y usando objetos TCola? |
#5
|
|||
|
|||
En la respuesta anterior copie el codigo del Form.. Disculpen pero es la primera vez que programo directamente con objetos en Delphi.
|
#6
|
|||
|
|||
Resuelto, me faltaba el contructor del objeto, no me habia dado cuenta muchas gracias por hacerme dar cuenta
|
#7
|
||||
|
||||
No te preocupes kdemia, aquí todos aprendemos algo nuevo todos los días.
Bien, veo que editaste tu mensaje para poner el código que deseaba ver. Es lo que me temía. Te falta crear la instancia del objeto. La sintaxis es: Y para destruirlo:
Adicionalmente, es aconsejable que no crees un método llamado Free para las tareas de finalización / liberación (el método Free ya existe en la clase base TObject). Lo recomendable es definir un destructor llamado "Destroy", declarándolo además con la directiva Override. Así, cuando llames al método Free (el nativo que TCola hereda de TObject), éste llamará a tu destructor para liberar los elementos de la lista. En el foro encontrarás mucho material y ejemplos sobre definición de clases con constructores y destructores. Por otro lado, considera que en Delphi ya existen varias clases nativas de propósito similar a TCola. Saludos. |
#8
|
|||
|
|||
Genial, muchas gracias, si con respecto al destructor me di cuenta tarde xD jajaja, te hago una pregunta adicional, puedo llegar a hacer una Cola generica, algo asi como el <T> de Java?
|
#9
|
||||
|
||||
Cita:
Por cierto, si este hilo se llegara a desviar del tema original, abrir uno nuevo no sería mala idea. |
#10
|
|||
|
|||
Uso delphi 2010.. y como seria? o abro otro thread?
|
#11
|
|||
|
|||
Nuevamente Resuleto xD con T como en java
|
#12
|
||||
|
||||
Hay un par de artículos que a simple vista me parecen recomendables:
http://sjrd.developpez.com/delphi/tutoriel/generics/ http://www.drbob42.com/examines/examinA6.htm Saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema al asignar valor a array | ferjavrec2 | OOP | 6 | 06-03-2011 22:14:33 |
Error al asignar un valor | ioco | Lazarus, FreePascal, Kylix, etc. | 3 | 14-02-2010 15:06:59 |
Problema al asignar valor antes de visualizar el form | drykea | Varios | 20 | 19-01-2009 17:38:37 |
Asignar valor a un DBLOOKUPCOMBOBOX | lucasarts_18 | OOP | 3 | 30-10-2005 23:35:21 |
Asignar el valor de DayOfTheWeek a una variable | gluglu | Varios | 7 | 23-01-2005 19:47:47 |
|