ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Passando objetos como referencia

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
wanderson_alves@msn.com
Novato
Novato


Registrado: Terça-Feira, 4 de Janeiro de 2011
Mensagens: 7

MensagemEnviada: Seg Jan 31, 2011 4:21 pm    Assunto: Passando objetos como referencia Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
fabiofs
Profissional
Profissional


Registrado: Sábado, 29 de Março de 2003
Mensagens: 660
Localização: Rio de Janeiro

MensagemEnviada: Seg Jan 31, 2011 4:36 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
wanderson_alves@msn.com
Novato
Novato


Registrado: Terça-Feira, 4 de Janeiro de 2011
Mensagens: 7

MensagemEnviada: Seg Jan 31, 2011 5:05 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
marcosalles
Moderador
Moderador


Registrado: Quarta-Feira, 26 de Março de 2008
Mensagens: 1695
Localização: Muriaé Mg

MensagemEnviada: Seg Jan 31, 2011 7:57 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB