ayuda con asignacion de objetos
- From: "jfer.com@xxxxxxxxx" <jfer.com@xxxxxxxxx>
- Date: Wed, 30 Apr 2008 10:57:22 -0700 (PDT)
Hola espero que esten bien, me podrian ayudar con un problemita en mi
aplicacion, en la que tengo estas definiciones:
PNodo= ^TNodo;
TNodo = record
Elem: TObject;
Suce: PNodo;
Pred: PNodo;
end;
TLista = class
Tam: word;
Prim: PNodo;
Ulti: PNodo;
constructor NewLista; {Crea una nueva lista vacia y retorna
el puntero a esta}
procedure InserInicio( n: PNodo); {inserta el nodo 'n' al
inicio de la lista}
function TomarPrim(): PNodo; {Retorna el primer nodo de la
lista}
{y otros metodos}
end;
TLugar = class
Xpos, Ypos: Integer; {Centro del objeto en la
pantalla}
Tam: Integer; {Tamaño del objeto}
Color: Byte; {Color del objeto y de su
nombre}
Nombre: String[LongNom] ; {Nombre del objeto}
Tipo: Integer; {Tipo del objeto usado por
el usuario}
ColorMa: Byte; {Color de la marca del lugar}
Marca: LongInt; {Numero de señales}
MarcaVieja: LongInt; {Registro de la marca}
Timing: Boolean; {si se registra senal de marca}
procedure IniLug(Xp,Yp, Taman:Integer; Col,ColMa:Byte;
Mar:LongInt; Nom:String; Tip:Integer) ;
end;
TTrans = class
Xpos, Ypos: Integer; {Centro del objeto en la
pantalla}
Tam: Integer; {Tamaño del objeto}
Color: Byte; {Color del objeto y de su
nombre}
Nombre: String[LongNom] ; {Nombre del objeto}
Tipo: Integer; {Tipo del objeto usado por
el usuario}
Direc: Byte; {Direccion: Horizontal o
Vertical }
ListEntr: TLista; {Lista de Arcos de los
lugares de entrada}
ListSal: TLista; {Lista de Arcos de los
lugares de salida}
FinDisp: Real; {Tiempo de fin del disparo}
Disparo: Boolean; {Si el disparo esta On/Off}
NroTrans: Integer; {Numero de la Transicion}
Prioridad: Word; {Prioridad, por defecto 100, 0
maximo}
{RandDur : Rand; {Duracion aleatoria del
disparo}
Procedure IniTran(Xp,Yp, Taman:Integer; Col,Dir:Byte;
Nom:String; NumT,Tip:Integer) ;
end;
TArco = class
Ancho: Byte;
Color: Byte;
Tipo: Integer;
PtoRopt: TList; {Lista de los puntos de roptura del
arco}
Estilo: Byte; {Estilo del arco}
Lugar: TLugar; {Puntero a un lugar}
Trans: TTrans; {Puntero a una transicion }
Peso: LongInt; {Multiplicidad del margen}
ProbRamif: Real; {Probabilidad de ramificacion}
CdfRamif: Real; {Cdf de ramificacion (Branching
Cdf)}
Procedure IniArc(Col:Byte; Anc:Byte; Estil:Byte; Pes:LongInt;
Tip:Integer) ;
End;
el problema que tengo es el siguiente, cuando realizo esto por
ejemplo:
var
Nod: Pnodo;
Lug: Tlugar;
Lis: TLista;
begin
Lug:= TLugar.create;
Lug.IniLug(' bueno aca van todos los parametros') ;
New(Nod);
Nod^.elem:= lug;
Lis:= TLista.NewLista;
Lis.InserInicio( Nod); //hasta aca va todo bien
.
.
. //hasta aqui
nod:= Lis.TomarPrim;
Lug:= Nod^.Elem;
Al realizar esto me da errores en la ejecucion.
No se a que se debe, creo que es por que no puedo guardar en un objeto
hijo un objeto padre, eso creo yo, y no se como poder arreglarlo ya
que si o si tengo que hacer esta asignacion.
Me podrian dar ayuda para resolver este problema o explicarme a que se
debe los errores que me salen y como podria resolverlos, o que deberia
hacer para poder realizar esta asignacion (Lug:= Nod^.Elem;) ya que
tengo que hacer esto si o si.
Por favor, sin mas que decir desde ya muchas gracias
.
- Prev by Date: Re: Multi core
- Next by Date: Re: Is Delphi for Win32 still mainstream?
- Previous by thread: Private variables question
- Index(es):
Relevant Pages
|