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:
Código Delphi
[-]
unit Pilas;
interface
const
max=10;
type
tdato=char;
tpila=class
cima:0..max;
elem:array[1..max]of tdato;
function vacia:boolean;
function llena:boolean;
procedure crear;
procedure poner (var ele:tdato);
procedure sacar (var ele:tdato);
end;
implementation
function tpila.vacia:boolean;
begin
vacia:=(cima=0);
end;
function tpila.Llena:boolean;
begin
llena:=(cima=max);
end;
procedure tpila.crear;
begin
cima:=0;
end;
procedure tpila.poner(var ele:tdato);
begin
cima:=cima+1;
elem[cima]:=ele;
end;
procedure tpila.sacar(var ele:tdato);
var
i:integer;
begin
for i:=1 to cima-1 do
elem[i]:=elem[i+1];
cima:=cima-1
end;
end.
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;