Şartlı edit toplamı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
mmnckr
Üye
Mesajlar: 83
Kayıt: 27 Nis 2005 08:04
Konum: izmir

Şartlı edit toplamı

Mesaj gönderen mmnckr »

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.
mmnckr
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

Kullanıcı avatarı
mmnckr
Üye
Mesajlar: 83
Kayıt: 27 Nis 2005 08:04
Konum: izmir

Mesaj gönderen mmnckr »

Sevgili selim ikisi arasında fark var ben buradaki döngüyü kuramadım bir türlü chechbox olaları 2 ile çarpıp toplayamadım.normal toplaya biliyorum.
mmnckr
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

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.

Kod: Tümünü seç


toplam:=toplam+(edit degeri *fonksiyonunuz )

gibi kullanırsınız.

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
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

benmi yanlış alnadım..

bu örnekteki döngünün içine checkbox u da kontrol ederek eger işaretli ise dikkate alsın, değilse almasın..
Kullanıcı avatarı
mmnckr
Üye
Mesajlar: 83
Kayıt: 27 Nis 2005 08:04
Konum: izmir

Mesaj gönderen mmnckr »

Olmuyo arkadaşlar, ne olur bi kod yazın.
checkbox1 edit23
. .
. .
. .
. .
. .
. .
checkbox22 edit45
mmnckr
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
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;
Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
KarizMan
Üye
Mesajlar: 60
Kayıt: 31 May 2005 09:13

Mesaj gönderen KarizMan »

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.

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;
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
Cevapla