Fórum Qual a intenção de declarar uma variavel Pointer? #341459
08/05/2007
0
Eu vejo em varios exemplos a declaração de variaveis do tipo Pointer e até mesmo em métodos que é preciso passar um objeto do tipo TObject eu já vi exemplos usando o Pointer e entre parenteses colocar um valor inteiro.
Por exemplo:
var TmpStringList : TString; TmpQry : TSQLQuery; ... TmpStringList.AddObject(TmpQry.FieldByName(´nome´).AsString, Pointer(TmpQry.FieldByName(´IDINFO´).AsInteger)); ...
Gostaria de entender melhor sobre isso até porque me parece ser de grande utilidade e no help do delphi eu não encontrei nada relacionado.
Desde de já obrigado.
Ruyoutor
Curtir tópico
+ 0Posts
08/05/2007
Massuda
TmpStringList.AddObject(TmpQry.FieldByName(´nome´).AsString, Pointer(TmpQry.FieldByName(´IDINFO´).AsInteger));
Uma outra situação é aproveitar o suporte existente em TList para criar lista de itens onde cada item está associado a um Pointer.
Por causa disso, é preciso fazer cast (forçar o tipo de dado) para TObject ou Pointer (depende da lista).
Se não aproveitasse esse suporte já existente, seria preciso derivar uma classe de TStrings ou TList e implementar a capacidade de associar um item a um dado.
Gostei + 0
08/05/2007
Ruyoutor
Só para ter certeza...
No exemplo que eu passei ele cria uma especie de relacionamento igual ao feito em bancos de dados.Ele cria um ponteiro para o nome apontar para o objeto que no caso é um valor inteiro.Seria isso?
I se for, não querendo abusar da sua atenção, mas já abusando.
Se eu criar uma classe de cliente e uma de pedidos eu teria de alguma forma como criar um ponteiro que, a medida que eu seta-se o cliente ele me aponta-se para os pedidos dele na instâcia de pedidos? Se eu falei besteira me desculpe.
Outra coisa, esse cast seria como um operador de converção onde eu forço um tipo de dados virar um objeto?
Desculpe pela amolação, mas quero ingreçar na programação orientada a objetos e essas minhas dúvidas me parecem muito relacionadas.
vlw!
Gostei + 0
08/05/2007
Massuda
var N: Integer; O: TStringList; ... N := 2007; O := TStringList(N); O.Add(´Teste´); ....
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)