Preencher array of array of String

05/07/2018

0

Boa tarde , estou com um problema e já tentei achar uma solução melhor porém não consegui, eu tenho uma lista de objeto da classe pergunta , eu preencho toda lista com os dados dessa classe, porém eu preciso criar uma matriz de panel e imagem para colocar os dados na tela, esta assim o codigo.
pergunta := TPergunta.Create;
        pergunta.Codigo   := queryAcesso.FieldByName('COD_PERGUNTA').AsInteger;
        pergunta.Pergunta := queryAcesso.FieldByName('PERGUNTA').AsString;
        pergunta.RspColuna:= queryAcesso.FieldByName('IMGCOLUNA').AsString;
        pergunta.Rsp1     := queryAcesso.FieldByName('IMG1').AsString;
        pergunta.Rsp2     := queryAcesso.FieldByName('IMG2').AsString;
        pergunta.Rsp3     := queryAcesso.FieldByName('IMG3').AsString;
        pergunta.Rsp4     := queryAcesso.FieldByName('IMG4').AsString;
        pergunta.Rsp5     := queryAcesso.FieldByName('IMG5').AsString;
        pergunta.RspCerta := queryAcesso.FieldByName('PALAVRA').AsString;

        ListaPerguntas.Add(pergunta);


estou adicionando os dados na ListaPerguntas.

vet[i,0] := TPergunta(listaPerguntas[contador]).RspColuna;
vet[i,1] := TPergunta(listaPerguntas[contador]).Rsp1;
vet[i,2] := TPergunta(listaPerguntas[contador]).Rsp2;
vet[i,3] := TPergunta(listaPerguntas[contador]).Rsp3;
vet[i,4] := TPergunta(listaPerguntas[contador]).Rsp4;
vet[i,5] := TPergunta(listaPerguntas[contador]).Rsp5;
contador := contador + 1;

estou colocando os dados dentro de vet do tipo array of array of String , alguém sabe uma forma melhor de pegar os dados da lista e guardar na vet vet do tipo array of array of String ???
Lucas Domiciano

Lucas Domiciano

Responder

Post mais votado

06/07/2018

É redundante você ter uma array com os objetos das perguntas e outro com os conteúdos desses objetos.
Talvez seja mais fácil guardar somente o índice da pergunta e apresentar os dados, obtidos diretamente da lista de objetos.
Algo assim:
// vet passa a ser um array de inteiros
vet[0] := 5; // aqui você diz que o elemento 0 será a pergunta 5 do conjunto de perguntas.
vet[1] := 3; // aqui você diz que o elemento 1 será a pergunta 3 do conjunto de perguntas.
vet[2] := 8; // aqui você diz que o elemento 2 será a pergunta 8 do conjunto de perguntas.

//então você acessa a pergunta à partir do conteúdo do elemento apontado em "vet". Para ilustrar:
for n := low( vet ) to high( vet )
begin
  msg := 'imgcoluna:' + TPergunta(listaPerguntas[vet[n]]).RspColuna + ' | ' +
         'img1:' + TPergunta(listaPerguntas[vet[n]]).Rsp1 + ' | ' +
         'img2:' + TPergunta(listaPerguntas[vet[n]]).Rsp2 + ' | ' +
         'img3:' + TPergunta(listaPerguntas[vet[n]]).Rsp3 + ' | ' +
         'img4:' + TPergunta(listaPerguntas[vet[n]]).Rsp4 + ' | ' +
         'img5:' + TPergunta(listaPerguntas[vet[n]]).Rsp5;

  Application.MessageBox( msg, 'Teste', MB_OK);
end;

Pode ser que eu não tenha entendido sua necessidade....

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

06/07/2018

Lucas Domiciano

Eu entendi o que quis dizer, só há um problema no form uma label recebi a pergunta , e eu crio uns TImages runtime recebendo a resposta, por isso tenho que salvar em matriz , onde a linha 1 , col 1 recebe rsp1 , linha1 , col2 recebe rsp2 ... até acabar as perguntas e respostas.
Responder

06/07/2018

Emerson Nascimento

Mas não acaba funcionando da mesma forma? A diferença é que da forma que eu fiz não precisa preencher o array vet com o conteúdo da pergunta, somente com o "indice" da pergunta, e a montagem é feita obtendo o valor diretamente da lista de objetos listaPerguntas
Responder

09/07/2018

Lucas Domiciano

Eu acredito que não da certo, porque como vou fazer gerar o TImages em tempo de execução ? se for um array ele vai repetir indice porque quando gero as imagens do tipo TImage , faço um loop como se fosse uma matriz e não um array.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar