Fórum Converter record em TStringList #369807
16/04/2009
0
Pessoal, tenho um programa com algumas variáveis do tipo record, cada uma com uma quantidade e tipos de campos diferentes.
Queria converter esses valores e os nomes dos campos para uma stringlist, fazendo uma função de conversão, enviando este record e a stringlist como parâmetros.
Ex:
Convertendo para stringlist, gostaria de ter uma variável que seria acessada pelo value.
Sei que eu posso criar essas variáveis manualmente, mas são muitos records e queria algo mais automatizado, pois em algumas partes do programa devo usar a variável record e em outra parte as stringLists.
Obrigado.
Queria converter esses valores e os nomes dos campos para uma stringlist, fazendo uma função de conversão, enviando este record e a stringlist como parâmetros.
Ex:
var1 = record nome : string; telefone : string; idade : string; var1.nome := ´meu nome´; var1.telefone := ´meu telefone´; var1.idade := ´idade´;
Convertendo para stringlist, gostaria de ter uma variável que seria acessada pelo value.
var2 : tstringlist; var2.values[´nome´] = ´meu nome´;
Sei que eu posso criar essas variáveis manualmente, mas são muitos records e queria algo mais automatizado, pois em algumas partes do programa devo usar a variável record e em outra parte as stringLists.
Obrigado.
Prgdelphi
Curtir tópico
+ 0
Responder
Posts
16/04/2009
Marco Salles
Hummm
Se entendi :
Exemplo :
Se entendi :
Exemplo :
procedure TForm1.Button1Click(Sender: TObject); type TVar1_PTR = ^Var1;//Neste caso, ^TData_PTR é um ponteiro p/ o record Var1. var Obj,Obj1,Obj2,Obj3,Obj4:Var1; PA:TVar1_PTR; ListaDeObjetos:TStrings; idx:integer; begin ListaDeObjetos:=TStringList.create; Obj1.nome := ´meu nome1´; Obj1.telefone := ´meu telefone1´; Obj1.idade := ´idade1´; ListaDeObjetos.AddObject(Obj1.nome,@Obj1); Obj2.nome := ´meu nome2´; Obj2.telefone := ´meu telefone2´; Obj2.idade := ´idade3´; ListaDeObjetos.AddObject(Obj2.nome,@Obj2); Obj3.nome := ´meu nome3´; Obj3.telefone := ´meu telefone3´; Obj3.idade := ´idade3´; ListaDeObjetos.AddObject(Obj3.nome,@Obj3); Obj4.nome := ´meu nome4´; Obj4.telefone := ´meu telefone4´; Obj4.idade := ´idade4´; ListaDeObjetos.AddObject(Obj4.nome,@Obj4); idx:=ListaDeObjetos.IndexOf(obj3.nome); //Por exemplo // ou idx:=ListaDeObjetos.IndexOf(´Qualquer coisa´); case Idx of -1:Raise exception.Create(´Mensagem De Erro Nome Não existe´); else begin Pa:=Pointer(ListaDeObjetos.Objects[idx]); Obj:=pa^; Showmessage(Obj.nome+13+ Obj.telefone+13+ Obj.idade); end; end; //fim do case; ListaDeObjetos.Free; end;
Responder
Gostei + 0
20/04/2009
Marco Salles
Obrigado
De Nada
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)