Duvida Parametros

Delphi

23/12/2004

Tenho uma duvida que é bastante básica, mas que está me incomodando muito!

Tenho a seguinte procedure no meu codigo:

ListaObjetos : TStringList;

procedure AdicionaLista(objeto : TObject);
begin
ListaObjetos.AddObject(Componente(objeto).pCodigo,objeto);
end;

Onde Componente é uma classe que eu criei. Considerem que a ListaObjetos está iniciada. Eu chamo o seguinte codigo:

var objetoRua : TObject;
objetoRua := Rua.Create();
Adicionalista(objetoRua);

Rua também é uma classe que eu criei, que é subclasse da classe Componente. Minha duvida basica é a seguinte: eu estou passando para a procedure um objeto da classe RUA. Dentro do codigo, ele insere na ListaObjetos um OBJETO que é TOBJECT. Muito bem, o objeto que estará inserido na ListaObjetos será um objeto da classe RUA, ou será um objeto da classe TOBJECT? O Delphi já trata isso automatico, ou eu tenho que fazer uma das coisas a seguir:

procedure AdicionaLista(objeto : Rua);
begin
ListaObjetos.AddObject(objeto.pCodigo,objeto);
end;

procedure AdicionaLista(objeto : TObject);
begin
ListaObjetos.AddObject(Rua(objeto).pCodigo,Rua(objeto));
end;

Eu sei que talvez essa duvida seja bastante amadora, mas preciso saber isso urgente!

Obrigado!

Jose Gustavo


Joeygustavo

Joeygustavo

Curtidas 0

Respostas

Paulo_amorim

Paulo_amorim

23/12/2004

Olá

Como Rua eh necessariamente descendente de Oject, ele pode ser passado normalmente sem o Casting. Quando você passar como parâmetro no AddObject, ele será tratado como Object pois eh assim que o parâmetro o requer, mas ele [b:b9cf55eac0]não deixa[/b:b9cf55eac0] de ser um objeto do tipo Rua. Se você precisar usar métodos da classe Rua mais tarde, será possível.

Espero que tenha ficado claro...
Até+


GOSTEI 0
Joeygustavo

Joeygustavo

23/12/2004

Beleza, não imagina como me deixou aliviado isso, hehe.... Mas a explicação foi muito clara sim, obrigado pela ajuda!!

Até mais!

Jose Gustavo


GOSTEI 0
POSTAR