![]() |
Ayudaaa Pilas estaticas
Espero que alguien me pueda ayudar. Soy nuevo en el mundo de delphi, y bueno como todos los que poco sabemos de un tema, preguntamos.
Es la primera vez que pongo dentro de un objeto un arreglo, y creo que ese es el problema. Mi dice el compilador que hay problemas con la inicializacion de la variable pila. Así es el warning que me muestra cuando lo compilo. Es una advertencia, sigo entonces. Al seguir todo el probrama con F7 (linea por linea) ejecuta pila.crear (desde algortmo principal), me abre todo correcto la unit de pila, y al hacer cima:=0, dentro de tpila.crear me muestra esto: PROJECT PALINDROMO.EXE RAISED EXCEPTION CLASS EACCESSVIOLATION WITH MESSAGE 'ACCESS VIOLATION AT ADDRESS 0044EE8C IN MODULE 'PALINDROMO.EXE'. WRITE OF ADDRESS 004280B8'. PROCESS STOPPED. Esta es la unit de pilas que tengo hecha yo:
Las formas que vi para inicializar que vienen con Delphi son el new( ) y el create. Pero a ambos le tengo que asignar un puntero, no los puedo usar aca. Si alguien me da una mano se lo agradeceria. Y si necesitan mas datos preguintenme. Saludos; |
Creo que va por aquí....
viendo tu código, te diría:
1)Declara todos los tipos de datos que use la pila fuera:
2) Segundo.... define el ámbito de las variables y funciones y/o procedimientos: son públicas?Son privadas? Por ejemplo quedaría:
Cita:
Para ello debes definir un constructor en la definición de la clase:
Y luego, (en la implementación) ingresas el código que deseas que se ejecute. En tu caso sería crear(). Puedes , si deseas, definir el constructor de manera que reciba parámetros. También puedes definir un destructor:
Espero que te sirva. |
Debe ser otra cosa
Gracias Delphius por la ayuda, pero me sigue diciendo las mismas cosas.
El problema me parece que viene por otro lado. Te muestro el procedimiento que lo llama es asi: Cuando lo compilo me dice: [Warning] Main.pas(38): Variable 'pila' might not have been initialialized. Asi me quedo la unit de pilas, luego de los consejos que me diste. Quizas estoy haciendo algo mal aqui:
Si lo ejecuto linea a linea, cuando entra en el pila.crear cuando le va a asignar a cima 0, es cuando ocurre la catastrofe, jajaj Delphius de verdad, gracias por tu ayuda. :) |
Lo que Delphius te dijo es:
Y la forma de usarlo: Eso sin ver los fallos internos que pueda tener la pila, que no lo he mirado ;) Saludos |
Pues... debí ser más claro...
Cita:
Si lo hubiera explicado mejor, con mayores detalles... tal vez.... alekandro ya lo hubiera tenido solucionado. Daba por entendido con mi explicación cómo debía proceder. :rolleyes: No quería poner tanto código... pues... sería como darlo de "regalo", y yo (no es que esté de malas) creo que se debe entender bien algunas ideas iniciales como para la otra persona pueda sacarlo. Algo como "yo te tiro la pelota... tu juegas".;) |
Cita:
El código no es lo importante, lo importante es por qué está escrito así, por qué inherited se pone antes o despues, ahí es donde ... una vez visto el código, hay que estudiarlo, y eso es tarea del amigo alekandro ;) Saludos ;) |
Solucionado
Gracias muchachos :) , de aqui en adelante voy a intentar continuar solo, Delphius no te preocupes que fue tal como vos querias ;) .
Lo que me dio Lepe fue un empujoncito, aun me faltan muchas cosas por resolver. Lo bueno fue que me dieron una mano, estaba trabado desde hace tiempo. Como dije soy nuevo en esto y todo lo que estuve averiguando por internet no me resolvia esa duda, lo entenderian como una tonteria quizas, gracias amigos. |
La franja horaria es GMT +2. Ahora son las 04:46:23. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi