é fácil, mas deu branco!!
olá,
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.
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
Curtidas 0
Respostas
Ramerhy
06/03/2003
Crie a variável ´soma´, do tipo ´extended´ na cláusula Private do form:
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...
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
Poeta Noturno
06/03/2003
Bom, para isso vc não precisa necessariamente de um for, basta vc usar o evento OnClick dos checks
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
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
Paulino
06/03/2003
Sua dúvida é bem simples, porém interessante, utilize o método onClick do CheckBox e escreva o seguite código:
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:
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