Şartlı edit toplamı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Şartlı edit toplamı
arkadaşlar selam;
20 tane edit , ve her editin önünde bir checkbox var.ben bu editlerin toplamını bulmak istiyom fakat editin önündeki checkbox işaretli ise o editin değerini 2 ile çarpıp toplasın.değil ise olduğu gibi alsın.ben bu döngüyü nasıl kurabilirim.
20 tane edit , ve her editin önünde bir checkbox var.ben bu editlerin toplamını bulmak istiyom fakat editin önündeki checkbox işaretli ise o editin değerini 2 ile çarpıp toplasın.değil ise olduğu gibi alsın.ben bu döngüyü nasıl kurabilirim.
mmnckr
Merhaba,
Bir function tanımlarsınız. Eğer checkbox seçili ise 2 değilse 1 değerini versin. Bunu alıp döngüde kullanırsınız.
gibi kullanırsınız.
Burada edit ile checkbox ın numaralarının ard arda gittiğini varsayıyorum.
Kolay gelsin.
Bir function tanımlarsınız. Eğer checkbox seçili ise 2 değilse 1 değerini versin. Bunu alıp döngüde kullanırsınız.
Kod: Tümünü seç
toplam:=toplam+(edit degeri *fonksiyonunuz )
Burada edit ile checkbox ın numaralarının ard arda gittiğini varsayıyorum.
Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Logo Go özel eğitim, web tasarım, teknik servis
Merhaba,
Aşağıdaki kodu bir deneyin.
Kolay gelsin.
Aşağıdaki kodu bir deneyin.
Kod: Tümünü seç
function tform1.checkkontrol(a: integer):integer;
begin
if Tcheckbox(FindComponent('Checkbox' + IntToStr(a))).checked
then checkkontrol:=2
else checkkontrol:=1;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,Toplam:Integer;
begin
Toplam:=0;
for i:=23 to 45 do
begin
Toplam:=Toplam + StrToInt(TEdit(FindComponent('Edit' + IntToStr(i))).Text)*checkkontrol(i-22);
end;
showmessage(inttostr(toplam));
end;
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Logo Go özel eğitim, web tasarım, teknik servis
Mehabalar,
Biraz karışık olsa da bir yol da ben vereyim. CheckBox ların 1den başlayıp 22 de bittiğini ve editlerin 23tenbaşlayıp 45te bittiğini farzediyorum.
işin mantığı şu: repeat döngüsüyle tüm editler sırayla toplanıyor. eğer önünde ki checkbox işaretli ise döngüdeki sayı arttırılmadan tekrar o edit toplanıyor ve başlığa yazılıyor.
İyi çalışmalar
Biraz karışık olsa da bir yol da ben vereyim. CheckBox ların 1den başlayıp 22 de bittiğini ve editlerin 23tenbaşlayıp 45te bittiğini farzediyorum.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var i,Toplam:Integer;
durum:Boolean;
begin
Toplam:=0;
i:=23;
repeat
Toplam:=Toplam + StrToInt(TEdit(FindComponent('Edit' + IntToStr(i))).Text);
if (TCheckBox(FindComponent('CheckBox' + IntToStr(i-22))).checked=false) or (durum=false) then
begin
inc(i);
durum:=true;
end
else
durum:=false;
until i=46;
caption:=IntToStr(toplam);
end;
İyi çalışmalar