FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
EAccessViolation al asignar valores a un array
Buenass
Tengo un problema que no entiendo muy bien porque ocurre, pero creo que no es culpa mia... El problema me lo da este fragmento de código:
Cuando llamo a este procedure me salta el siguiente error: Código:
Project parchis.exe reaised exception class EAccessViolation with message 'Access violation at adress 0041D6B7 in module 'parchis.exe'. Read of adress 0000000F' Process stoped. PD: Otra preguntita que tengo, es que cuando creo procedures manualmente, que los uso para llamarlos por ejemplo desde un boton, tengo que asignar siempre el formulario con el que estoy trabajando, por ejemplo, si quiero cambiar el texto de un panel, en vez de poner panel1.caption:= me obliga a escribir form1.panel1.caption:=. Hay alguna manera de decirle que todo lo de ese procedure esta en el form1? Saludos y gracias de antemano!! |
#2
|
||||
|
||||
Hola jularaXD.
Con seguridad no has creado una instancia de fjuego antes de usarla en la función crearmatrizjuego. Algo como:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
El procedimiento lo llamo desde un boton del fjuego, y si cambio las variables por numeros entonces si funciona perfectamente, asi que supongo que ese form ya esta creado, no?
|
#4
|
||||
|
||||
Cita:
Obviamente que si fjuego es el form y estas llamando al procedimiento dentro de él ya está creado, al igual que mjugadores si es atributo del mismo. Pero sin ver las declaraciónes en tu código, era imposible saber a que clase pertenecía el objeto fjuego. ¿ Cuál es la declaración del arreglo bidimensional ? Veo que no estas controlando el valor final de la variable c dentro del while anidado y bién podría exeder el valor máximo declarado en él. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
A ver si he entendido lo que me pides xD
La array mjugadores la declaro en private de esta manera
Lo que quiero hacer es que me cree esta array: [1, 1] [1, 2] [1, 3] [1, 4] [2, 1] [2, 2] [2, 3] [2, 4] [3, 1] [.. ..] [.. ..] [4, 4] También he intentado limitar el valor de C y me sigue dando el mismo error. salu2 |
#6
|
|||
|
|||
Ei, me acabo de enterar que no falla al crear la array, sino luego al leerla o al cerrar la aplicacion.
Subo este proyecto que se puede ver perfectamente el error. saludos! |
#7
|
|||
|
|||
Ya esta, he conseguido solucionar el problema.
Había escrito mal el codigo, puesto que una matriz que tenía tan solo 16 filas, y el bucle le ponía valores hasta la fila 64 o algo asi... Bueno, muchas gracias por tu tiempo ecfisa y disculpa si no me he explicado correctamente en algun momento |
#8
|
||||
|
||||
Cita:
Es decir: Código:
[1,1] = 0 [1,2] = 1 ... [n,m] = x
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#9
|
||||
|
||||
Cita:
No había visto tu último mensaje, y te consultaba sobre los valores que había que asignar a la matriz, por que generalmente es mas simple cargar la matriz con dos for, por ejemplo:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#10
|
||||
|
||||
Un consejo, esta forma de pensar suele llevar a que sea muy difícil encontrar los errores, en mucho más de un 90% de ocasiones, la culpa es del programador, ya sea por algo que ha hecho mal o por algo que no ha entendido bien o lo que sea. De hecho, incluso alguna veces que se cree que es un bug del IDE, es error del programador pero que no ha sido capaz de interpretar bien el error.
Mi consejo es que pienses, de primeras, que el error es casi seguro tuyo. Cita:
Para que un procedimiento sea del formulario, no basta con que esté en la misma unidad, deberías declarar el procedimiento de esta forma
Si te fijas, ya no tengo que poner el nombre del formulario cuando se usa mjugadores. De esta forma, además, te sirve para cualquier variable y no sólo la variable fjuego.
__________________
La Madurez se llama... ~~~Gaia~~~ |
#11
|
||||
|
||||
He simplificado mucho me temo.
La declaración del procedimiento ha de ir dentro de la sección public (o private, según de donde se llame) del formulario. (hablo de las secciones que viene por defecto)
__________________
La Madurez se llama... ~~~Gaia~~~ |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema al asignar valor a array | ferjavrec2 | OOP | 6 | 06-03-2011 22:14:33 |
Asignar 'array property' con record.elemento | yapt | OOP | 6 | 13-05-2010 21:16:05 |
Cómo asignar valores a una variable tipo Array | quinqui | OOP | 7 | 23-06-2006 15:59:17 |
Como Asignar Variable Tipo Array de Tform a otro Array del Mismo tipo | morfeo21 | Varios | 5 | 17-08-2004 17:39:51 |
asignar valores por default | NickName | Firebird e Interbase | 3 | 14-09-2003 12:01:43 |
|