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:
Código Delphi
[-]
procedure comienzo;
var
pila:tpila;
i:integer;
palabra:string;
begin
i:=0;
palabra:=form1.Edit1.Text;
pila.crear;
while (not pila.llena) and (form1.Edit1.Text[i+1]<>'') do
begin
i:=i+1;
pila.poner(palabra[i]);
end;
end;
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:
Código Delphi
[-]
unit Pilas;
interface
const max=10;
type
tdato=char;
type
tpila=class
public
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.
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.