[delphi-br] Estrutura de um record
Bom dia pessoal, como faze para acessar a estrutura de um record? por exemplo tenho os seguintes records, Record1 = record Codigo : Integer; Name : String; Endereco : String; end; Record2 = record Codigo : Integer; Descricao : String; Situacao : String; end; Record3 = record Codigo : Integer; Descricao : String; end; Record4 = record Codigo : Integer; Descricao : String; Quantidade : Double; ValorUnitario : Double; ValorTotal : Double; end; Estou tentando fazer uma procedure mais ou menos assim procedure ObterListaDados(Lista : TStrings; Registro : record); var vCont : Integer; begin Lista.Clear; for vCont := 0 to Registro.QtdCampos do Lista.Add(Registrocampo); end; Alguem tem alguma sugestão? Atenc; Elazar Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]
RE: [delphi-br] Estrutura de um record
Até onde me consta, não existe como verificar a estrutura de um record, pois um record não possui as mesmas características de uma classe contendo propriedades publicadas. Neste último caso, é possível, via RTTI, consultar as propriedades publicadas de um objeto e obter seus valores. Com um record, isso não existe. João Morais, mais algo para complementar/corrigir e q possa ajudar o colega? Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Wed, 1 Oct 2008 05:57:25 -0700 Subject: [delphi-br] Estrutura de um record Bom dia pessoal, como faze para acessar a estrutura de um record? por exemplo tenho os seguintes records, Record1 = record Codigo : Integer; Name : String; Endereco : String; end; Record2 = record Codigo : Integer; Descricao : String; Situacao : String; end; Record3 = record Codigo : Integer; Descricao : String; end; Record4 = record Codigo : Integer; Descricao : String; Quantidade : Double; ValorUnitario : Double; ValorTotal : Double; end; Estou tentando fazer uma procedure mais ou menos assim procedure ObterListaDados(Lista : TStrings; Registro : record); var vCont : Integer; begin Lista.Clear; for vCont := 0 to Registro.QtdCampos do Lista.Add(Registrocampo); end; Alguem tem alguma sugestão? Atenc; Elazar _ Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o Messenger! É GRÁTIS! http://www.msn.com.br/emoticonpack
Re: [delphi-br] Estrutura de um record
Rubem Nascimento da Rocha wrote: Até onde me consta, não existe como verificar a estrutura de um record, pois um record não possui as mesmas características de uma classe contendo propriedades publicadas. Neste último caso, é possível, via RTTI, consultar as propriedades publicadas de um objeto e obter seus valores. Com um record, isso não existe. João Morais, mais algo para complementar/corrigir e q possa ajudar o colega? Completo dizendo que record é uma estrutura que organiza um conjunto de dados apenas em tempo de compilação, não dá flexibilidade para trabalhar em tempo de execução, e não permite herança. Portanto ele é totalmente inviável para aproveitamento de código. Você pode vir a hackear uma coisa aqui outra ali, mas não terá suporte da linguagem e por consequência não terá produtividade. O ideal é seguir a idéia do Rubem e partir para classes desde o início. Não é tão complicado. Os únicos cuidados que você precisa ter é criar o objeto antes de usá-lo e destruí-lo depois que não precisar mais dele. No mais, é uma estrutura semelhante ao record. Informe-se sobre rtti, sobre a área published, e sobre as rotinas da unit typinfo. Para os seus primeiros testes, herde suas classes a partir da classe TPersistent, declarada na unit Classes. A partir daqui, FastMM será seu amigo. Use-o para descobrir se você está esquecendo de destruir algum objeto. Por fim, qual seu objetivo: faculdade, indicação de estudo, saco cheio do tdataset, necessidade no trabalho, ...? -- Joao Morais To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Wed, 1 Oct 2008 05:57:25 -0700 Subject: [delphi-br] Estrutura de um record Bom dia pessoal, como faze para acessar a estrutura de um record? por exemplo tenho os seguintes records, Record1 = record Codigo : Integer; Name : String; Endereco : String; end; Record2 = record Codigo : Integer; Descricao : String; Situacao : String; end; Record3 = record Codigo : Integer; Descricao : String; end; Record4 = record Codigo : Integer; Descricao : String; Quantidade : Double; ValorUnitario : Double; ValorTotal : Double; end; Estou tentando fazer uma procedure mais ou menos assim procedure ObterListaDados(Lista : TStrings; Registro : record); var vCont : Integer; begin Lista.Clear; for vCont := 0 to Registro.QtdCampos do Lista.Add(Registrocampo); end; Alguem tem alguma sugestão? Atenc; Elazar _ Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o Messenger! É GRÁTIS! http://www.msn.com.br/emoticonpack
Res: [delphi-br] Estrutura de um record
Rubens, João. Obrigado pelas dicas. Conheco RTTImas como já existe tudo em record fica dificil mudar assim de cara...(embora estou achando que esta seja a saida) Acontece que tenho um monte destas estruturas para converter pra equivalentes em tabelas, tenho cerca de 600 records... então fazer na mão...puts.. rsss.. A ideia é q quando a aplicação estiver rodando e receber por parametro um destes records, automaticamente crie a tabela então, conseguindo pegar a lista da estrutura iria facilitar. E existe outro detalhe, é que pode ser geradas novas estruturas então o processo se encarregaria de criar automaticamente caso ainda não exista. Uma outra pergunta que deixo no ar, se o delphi consegue esta lista quando estamos lidando nos fontes ...porque não seria possivel, ou sera que ele usa alguma especie de parser pra estas estruturas??? Atenc; Elazar - Mensagem original De: Joao Morais [EMAIL PROTECTED] Para: delphi-br@yahoogrupos.com.br Enviadas: Quarta-feira, 1 de Outubro de 2008 11:00:25 Assunto: Re: [delphi-br] Estrutura de um record Rubem Nascimento da Rocha wrote: Até onde me consta, não existe como verificar a estrutura de um record, pois um record não possui as mesmas características de uma classe contendo propriedades publicadas. Neste último caso, é possível, via RTTI, consultar as propriedades publicadas de um objeto e obter seus valores. Com um record, isso não existe. João Morais, mais algo para complementar/ corrigir e q possa ajudar o colega? Completo dizendo que record é uma estrutura que organiza um conjunto de dados apenas em tempo de compilação, não dá flexibilidade para trabalhar em tempo de execução, e não permite herança. Portanto ele é totalmente inviável para aproveitamento de código. Você pode vir a hackear uma coisa aqui outra ali, mas não terá suporte da linguagem e por consequência não terá produtividade. O ideal é seguir a idéia do Rubem e partir para classes desde o início. Não é tão complicado. Os únicos cuidados que você precisa ter é criar o objeto antes de usá-lo e destruí-lo depois que não precisar mais dele. No mais, é uma estrutura semelhante ao record. Informe-se sobre rtti, sobre a área published, e sobre as rotinas da unit typinfo. Para os seus primeiros testes, herde suas classes a partir da classe TPersistent, declarada na unit Classes. A partir daqui, FastMM será seu amigo. Use-o para descobrir se você está esquecendo de destruir algum objeto. Por fim, qual seu objetivo: faculdade, indicação de estudo, saco cheio do tdataset, necessidade no trabalho, ...? -- Joao Morais _ _ __ To: [EMAIL PROTECTED] os.com.br From: [EMAIL PROTECTED] com.br Date: Wed, 1 Oct 2008 05:57:25 -0700 Subject: [delphi-br] Estrutura de um record Bom dia pessoal, como faze para acessar a estrutura de um record? por exemplo tenho os seguintes records, Record1 = record Codigo : Integer; Name : String; Endereco : String; end; Record2 = record Codigo : Integer; Descricao : String; Situacao : String; end; Record3 = record Codigo : Integer; Descricao : String; end; Record4 = record Codigo : Integer; Descricao : String; Quantidade : Double; ValorUnitario : Double; ValorTotal : Double; end; Estou tentando fazer uma procedure mais ou menos assim procedure ObterListaDados( Lista : TStrings; Registro : record); var vCont : Integer; begin Lista.Clear; for vCont := 0 to Registro.QtdCampos do Lista.Add(Registro. ...campo) ; end; Alguem tem alguma sugestão? Atenc; Elazar _ _ _ _ _ _ Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o Messenger! É GRÁTIS! http://www.msn. com.br/emoticonp ack - - -- Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Estrutura de um record
veja se isto ajuda... http://www.planetadelphi.com.br/ver_artigo.php?id=141 -- Att. -- José Benedito Software Developer [EMAIL PROTECTED] (19) 8116-7826
Re: Res: [delphi-br] Estrutura de um record
Elazar Dornelles Ceza wrote: Rubens, João. Obrigado pelas dicas. Conheco RTTImas como já existe tudo em record fica dificil mudar assim de cara...(embora estou achando que esta seja a saida) Acontece que tenho um monte destas estruturas para converter pra equivalentes em tabelas, tenho cerca de 600 records... então fazer na mão...puts.. rsss.. Você pode criar um parser para interpretar todos os seus records, gerar um xml, e usar esse xml como um metadado dos seus records em tempo de execução. =) A ideia é q quando a aplicação estiver rodando e receber por parametro um destes records, automaticamente crie a tabela então, conseguindo pegar a lista da estrutura iria facilitar. Infelizmente é impossível. O compilador descarta a estrutura do record, tudo o que você vê em tempo de projeto é convertido em endereço de memória e nada mais. O máximo que você consegue é descobrir o tamanho do record em bytes, o que não ajuda em nada. E existe outro detalhe, é que pode ser geradas novas estruturas então o processo se encarregaria de criar automaticamente caso ainda não exista. Uma outra pergunta que deixo no ar, se o delphi consegue esta lista quando estamos lidando nos fontes ...porque não seria possivel, ou sera que ele usa alguma especie de parser pra estas estruturas??? A ide interpreta seus fontes em tempo de projeto para gerar as informações para o code insight. Nada disso é transformado em código na sua aplicação. A idéia do parser é séria, há códigos prontos na net que podem te ajudar. E daí pra frente você verifica o que é mais viável, se manter essa geração do metadado em paralelo aos seus records, ou passar para uma estrutura mais inteligente como classes. Atenc; Elazar -- Joao Morais - Mensagem original De: Joao Morais [EMAIL PROTECTED] Para: delphi-br@yahoogrupos.com.br Enviadas: Quarta-feira, 1 de Outubro de 2008 11:00:25 Assunto: Re: [delphi-br] Estrutura de um record Rubem Nascimento da Rocha wrote: Até onde me consta, não existe como verificar a estrutura de um record, pois um record não possui as mesmas características de uma classe contendo propriedades publicadas. Neste último caso, é possível, via RTTI, consultar as propriedades publicadas de um objeto e obter seus valores. Com um record, isso não existe. João Morais, mais algo para complementar/ corrigir e q possa ajudar o colega? Completo dizendo que record é uma estrutura que organiza um conjunto de dados apenas em tempo de compilação, não dá flexibilidade para trabalhar em tempo de execução, e não permite herança. Portanto ele é totalmente inviável para aproveitamento de código. Você pode vir a hackear uma coisa aqui outra ali, mas não terá suporte da linguagem e por consequência não terá produtividade. O ideal é seguir a idéia do Rubem e partir para classes desde o início. Não é tão complicado. Os únicos cuidados que você precisa ter é criar o objeto antes de usá-lo e destruí-lo depois que não precisar mais dele. No mais, é uma estrutura semelhante ao record. Informe-se sobre rtti, sobre a área published, e sobre as rotinas da unit typinfo. Para os seus primeiros testes, herde suas classes a partir da classe TPersistent, declarada na unit Classes. A partir daqui, FastMM será seu amigo. Use-o para descobrir se você está esquecendo de destruir algum objeto. Por fim, qual seu objetivo: faculdade, indicação de estudo, saco cheio do tdataset, necessidade no trabalho, ...? -- Joao Morais _ _ __ To: [EMAIL PROTECTED] os.com.br From: [EMAIL PROTECTED] com.br Date: Wed, 1 Oct 2008 05:57:25 -0700 Subject: [delphi-br] Estrutura de um record Bom dia pessoal, como faze para acessar a estrutura de um record? por exemplo tenho os seguintes records, Record1 = record Codigo : Integer; Name : String; Endereco : String; end; Record2 = record Codigo : Integer; Descricao : String; Situacao : String; end; Record3 = record Codigo : Integer; Descricao : String; end; Record4 = record Codigo : Integer; Descricao : String; Quantidade : Double; ValorUnitario : Double; ValorTotal : Double; end; Estou tentando fazer uma procedure mais ou menos assim procedure ObterListaDados( Lista : TStrings; Registro : record); var vCont : Integer; begin Lista.Clear; for vCont := 0 to Registro.QtdCampos do Lista.Add(Registro. ...campo) ; end; Alguem tem alguma sugestão? Atenc; Elazar _ _ _ _ _ _ Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o Messenger! É GRÁTIS! http://www.msn. com.br/emoticonp ack - - -- Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]