Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Valdiney F. Lima

For dentro de For

Recommended Posts

Márcio,

 

Seguindo aquela dica que você me passou... Eu parei em um pequeno probleminha:

 

ZQuery1.Active := false;  ZQuery1.SQL.Clear();  sql01 := 'select *from tb_imovel_dependencias';  ZQuery1.SQL.Add( sql01 );  ZQuery1.Open;  ZQuery1.Active := true;  ZQuery1.First;  for y1:=1 to 4 do  begin	  for x1:=1 to ZQuery1.RecordCount do	  begin		CheckBoxDependencia( ZQuery1.FieldByName('descricao').Value ,y1,x1);		ZQuery1.Next;	  end;  end;

 

Com esse código ai, eu só consegui imprimir o resultado do banco de dados na primeira coluna... Será que cabe uma ajudinha aí? ;)

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não seria:

 

for x1:=1 to ZQuery1.RecordCount dobegin  for y1:=1 to 4 do  begin	CheckBoxDependencia( ZQuery1.FieldByName('descricao').Value ,y1,x1);	ZQuery1.Next;  end;end;
Bom Vinicius...

 

funcionou quase perfeitamente.

 

Veja como ficou os checkBox:

Imagem Postada

 

Repare que o banheiro repetiu, quando não deveria.

 

No banco de dados só existem 10 registros. Onde o Banheiro é o décimo e último registro.

 

O que ta errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

teria como você postar essa procedure CheckBoxDependencia para que possamos avalia-la????no aguardo...

Claro... Segue abaixo:
procedure TfrmCadastrarImoveis.CheckBoxDependencia(rotulo: string; coluna, linha: integer);var	check: TCheckBox;begincheck:=TCheckBox.Create(Self);check.Parent := ScrollBox4;check.Caption := rotulo;check.Top:=(linha * 17) - 17;check.Width:=120;check.Left:=(coluna * 160) - 160;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

for x1:=1 to ZQuery1.RecordCount dobegin  for y1:=1 to 4 do  begin	CheckBoxDependencia( ZQuery1.FieldByName('descricao').Value ,y1,x1);	ZQuery1.Next;  end;end;

 

Tente isso aki...

 

i := 1;for x1:=1 to ZQuery1.RecordCount dobegin	CheckBoxDependencia( ZQuery1.FieldByName('descricao').Value ,x1*i,x1);	i := i + 1;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teste assim:

 

y1 := 1;for x1:=1 to ZQuery1.RecordCount dobegin  CheckBoxDependencia( ZQuery1.FieldByName('descricao').Value ,y1,x1);  { Caso chegar no limite de colunas, voltar para a primeira }  if (y1 = 4) then	y1 := 1  else	inc(y1);  { Próximo registro }  ZQuery1.Next;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teste assim:

 

y1 := 1;for x1:=1 to ZQuery1.RecordCount dobegin  CheckBoxDependencia( ZQuery1.FieldByName('descricao').Value ,y1,x1);  { Caso chegar no limite de colunas, voltar para a primeira }  if (y1 = 4) then	y1 := 1  else	inc(y1);  { Próximo registro }  ZQuery1.Next;end;
Bom, assim os registros não repitiram... Mas a estrutura foi afetada... rsrsrs

 

Segue abaixo:

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites
x1 := 1;y1 := 1;ZQuery1.First;while not ZQuery1.EOF dobegin  CheckBoxDependencia( ZQuery1.FieldByName('descricao').Value ,y1,x1);  { Caso chegar no limite de colunas, voltar para a primeira }  if (y1 = 4) then  begin	y1 := 1;	inc(x1);  end  else	inc(y1);  { Próximo registro }  ZQuery1.Next;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

x1 := 1;y1 := 1;ZQuery1.First;while not ZQuery1.EOF dobegin  CheckBoxDependencia( ZQuery1.FieldByName('descricao').Value ,y1,x1);  { Caso chegar no limite de colunas, voltar para a primeira }  if (y1 = 4) then  begin	y1 := 1;	inc(x1);  end  else	inc(y1);  { Próximo registro }  ZQuery1.Next;end;
Perfeito!Valeu brother.:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.