Contagem de checkBox...
Bom pessoal.
Eu estou fazendo um painel de pesquisa e como não achei nenhum componente que me atendesse visualmente, resolvi fazer algo no braço.
Segue abaixo:
1- Tenho um ScrollBox1
2- Dentro do ScrollBox1 eu crio vários Panels. Estes panels se equivalem a cada registro do banco de dados.
3- Dentro de Cada panel criado eu crio 01 - CheckBox e 09 - Label. Isso tudo em tempo de execução.
Imagem da tela gerada
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.phpmundi.com.br/imagens/0009.JPG&key=4d099504289d8d8cb381ae83ed511171f437729f8378f14f8345c38c5a681668" alt="Imagem Postada" />
Agora eu preciso pegar quais os CheckBox foram marcado pelo usuário.
Então eu tentei:
procedure TfrmPesquisar.Button2Click(Sender: TObject);varmarcado: string;x2: integer;begin for x2:=0 to ComponentCount - 1 do if Components[x2].ClassType = TCheckBox then if TCheckBox(Components[x2]).Parent = ScrollBox1 then if TCheckBox(Components[x2]).Checked then begin marcado := marcado + IntToStr(TCheckBox(Components[x2]).Tag); end; ShowMessage( marcado );end;Mas não consegui. Mas eu suspeito que o erro esteja em procurar pelo CheckBox dentro de cada Panel que foi gerado no ScrollBox1. Mas não sei como pegar.
Abaixo vai o procedimento que cria os componentes dentro do ScrollBox1 em tempo de execução:
procedure TfrmPesquisar.Panel(rotulo, txt1, txt2, txt3, txt4, txt5, txt6, txt8: string; txt9: real; id, linha, cor, alugado: integer);var Panel: TPanel; CheckBox: TCheckBox; Texto1,Texto2,Texto3,Texto4,Texto5,Texto6,Texto7,Texto8,Texto9: TLabel;beginPanel:=TPanel.Create(Self);Panel.Parent := ScrollBox1;Panel.Top := (linha * 41) - 41;Panel.Width := 856;Panel.ParentColor := true;Panel.ParentBackground := true;Panel.BevelOuter := bvNone;Panel.ShowHint := true;Panel.Caption := Panel.Name;Panel.Tag := id;// CheckBox de marcaçãoCheckBox:=TCheckBox.Create(Self);CheckBox.Parent := Panel;CheckBox.Tag := id;CheckBox.Top := 10;CheckBox.Left := 10;CheckBox.Width := 15;// Tipo de imovelTexto8 := TLabel.Create(Self);Texto8.Caption := txt8;Texto8.Left := 38;Texto8.Top := 5;Texto8.Parent := Panel;// Valor do imovelTexto9 := TLabel.Create(Self);Texto9.Caption := FloatToStrf(txt9,ffCurrency,12,2);Texto9.Left := 38;Texto9.Top := 20;Texto9.Parent := Panel;// ReferenciaTexto3 := TLabel.Create(Self);Texto3.Caption := txt3;Texto3.Left := 767;Texto3.Top := 13;Texto3.Hint := 'Referência';Texto3.ShowHint := true;Texto3.Parent := Panel;// Cidade - EstadoTexto2 := TLabel.Create(Self);Texto2.Caption := txt2;Texto2.Left := 243;Texto2.Top := 20;Texto2.Parent := Panel;// EndereçoTexto1 := TLabel.Create(Self);Texto1.Caption := txt1;Texto1.Left := 243;Texto1.Top := 5;Texto1.Parent := Panel;// GaragemTexto4 := TLabel.Create(Self);Texto4.Caption := txt4;Texto4.Left := 690;Texto4.Top := 13;Texto4.Hint := 'Garagem';Texto4.ShowHint := true;Texto4.Parent := Panel;// DormitoriosTexto5 := TLabel.Create(Self);Texto5.Caption := txt5;Texto5.Left := 708;Texto5.Top := 13;Texto5.Hint := 'Dormitório';Texto5.ShowHint := true;Texto5.Parent := Panel;// FotosTexto6 := TLabel.Create(Self);Texto6.Caption := txt6;Texto6.Left := 725;Texto6.Top := 13;Texto6.Hint := 'Foto';Texto6.ShowHint := true;Texto6.Parent := Panel;// StatusTexto7 := TLabel.Create(Self);if alugado = 0 thenbegin Texto7.Caption := 'Desocupado'; Texto7.Font.Color := clGreen;end else begin Texto7.Caption := 'Ocupado'; Texto7.Font.Color := clRed;end;Texto7.Left := 600;Texto7.Top := 13;Texto7.Parent := Panel;if cor = 0 then Panel.Color := $00EEEEEEelse Panel.Color := clWhite;Panel.ParentColor := false;Panel.ParentBackground := false;Panel.Ctl3D := false;end;
Como eu imprimo quais CheckBox foram marcados?
Bom pessoal. Tentei explicar a minha dúvida o mais claro possível.
Abraços
Discussão (5)
Carregando comentários...