Fórum é fácil, mas deu branco!! #142718
06/03/2003
0
Preciso fazer um loop usando for, por exemplo, para os checks.
A dúvida éh a seguinte:
Tenho 7 checks. Quero que quando eu for clicando em vários checks, ele vá somando, ex:
check1 = 30
Check2 = 15
Se eu clicar nos dois, o resultado terá que ser 45 e conforme for clicando ir somando e exibindo nuim edit.
Shikota
Curtir tópico
+ 0Posts
06/03/2003
Ramerhy
Private
soma:Extended;
No envento onCreate do form, inicie a variável: soma:=0;
Crie o seguinte procedimento:
Procedure TForm1.ChecaClick(Sender:TObject);
Begin
if Sender is TCheckBox then begin
if TCheckBox(Sender).Checked then
soma:=soma+StrtoFloat(TCheckBox(Sender).caption)
else
soma:=soma-StrtoFloat(TCheckBox(Sender).caption);
end;
(* Agora mostra no edit *)
EditSoma.text:=formatfloat(´#,0.00´,soma);
End;
Agora, faça que o evento onClick de cada CheckBox aponte para o procedimento acima.
ACho que vai dar certo...
Gostei + 0
06/03/2003
Poeta Noturno
usa uma variável do tipo integer ou double, dependendo do que vc gostaria de somar e no evento onclick vc teste quais checks estão checkados ou naum. os que tiver vc adiciona o valor à variável e depois converte pra texto para ser exibido no edit. Ex:
a: integer;
a := 0;
if check1.checked then
inc(a,[valor a ser somado]);
if check2.checked then
inc(a,[valor a ser somado]);
.
.
.
edit1.text := inttostr(a) ou floattostr(a);
espero que te sirva amigão
Até a próxima
Poeta Noturno
Gostei + 0
06/03/2003
Paulino
try
Edit1.Text:=0;
if CheckBox1.Checked then
begin
Edit1.Text:=FloatToStr(StrToFloat(Edit1.Text)+StrToFloat (CheckBox1.Caption));
end
else
begin
Edit1.Text:=FloatToStr(StrToFloat(Edit1.Text)-StrToFloat(CheckBox1.Caption));
end;
except
on E : Exception do ;
end;
Esse código serve tanto para checar os checkboxes como para
deschecá-los... ele tanto soma como subtrai os valores... Lembre-se de sempre pôr o valor inicial zero ao Edit1 .... Ou em tempo de execução ou em tempo de Projeto...
:shock:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)