Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
wanderson_alves@msn.com Novato

Registrado: Terça-Feira, 4 de Janeiro de 2011 Mensagens: 7
|
Enviada: Seg Jan 31, 2011 4:21 pm Assunto: Passando objetos como referencia |
|
|
Uso o delphi 2010 e tenho uma funções que gravo alguns itens no banco como:
function gravaMovimento(var ListaMovimentoAnalitico: TObjectList <TModEcfMovimentoAnaliticoSiac> ): Boolean;
é uma lista de movimentos e uso o recurso Generics.Collections pra criar essa lista e em outro procedimento eu crio uma objeto.
var
listaEcfMovAnalitico : TObjectList<TModEcfMovimentoAnaliticoSiac>;
passando para essa função:
if not ContMovimentoAnalitico.gravaMovimento(listaEcfMovAnalitico) then
mas o compilador do delphi me retorna o sequinte erro:
"E2033 Types of actual and formal var parameters must be identical"
mas os meu tipos são iguais não sei o que estou fazendo de errado o que eu devo fazer quando eu criar um funções com a referencia var para passar esse objeto como referencia por que eu precisa fazer algumas alterações nele elas tem que ser refletidas no objeto que passei.. |
|
Voltar ao Topo |
|
 |
fabiofs Profissional


Registrado: Sábado, 29 de Março de 2003 Mensagens: 660 Localização: Rio de Janeiro
|
Enviada: Seg Jan 31, 2011 4:36 pm Assunto: |
|
|
Caro amigo, acho que todo objeto passado pelo Delphi é passado como referência. Não há necessidade se se passar com o prefixo var. _________________ MBA. Fábio Ferreira da Silva
fabiofs@hotmail.com |
|
Voltar ao Topo |
|
 |
wanderson_alves@msn.com Novato

Registrado: Terça-Feira, 4 de Janeiro de 2011 Mensagens: 7
|
Enviada: Seg Jan 31, 2011 5:05 pm Assunto: |
|
|
fabiofs escreveu: | Caro amigo, acho que todo objeto passado pelo Delphi é passado como referência. Não há necessidade se se passar com o prefixo var. |
Segundos algums teste que eu fiz aqui me parece que os tipos primitvos como variaveis do tipo inteiro, string ect são feito copias e para passar por referencia temos que usar o var e pelo que eu pude ver os objetos me parecem que realmente não passado por referencia só preciso confirma isso.. |
|
Voltar ao Topo |
|
 |
marcosalles Moderador

Registrado: Quarta-Feira, 26 de Março de 2008 Mensagens: 1695 Localização: Muriaé Mg
|
Enviada: Seg Jan 31, 2011 7:57 pm Assunto: |
|
|
ta confirmado ... Faça um teste simples
procedure Destruir(edt:Tedit);
begin
edt.free; //nen vou testar com assigned pq é so teste
end;
agora no from com pelo menos um botão e um edit faça no Onclik
Destruir(edit1);
Ja era .. _________________ http://marcosalles.wordpress.com
Desenvolvo FreeLancer e presto Consultoria
Orientação Online DataSnap DbX ClientDataSet
POO , Padrões de Projeto e dúvidas de Delphi em
Geral |
|
Voltar ao Topo |
|
 |
|