YTL Karsiligi, Tutar, Kur kisir donguye sebep oluyor...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Glen
Üye
Mesajlar: 277
Kayıt: 12 Eki 2005 11:58

YTL Karsiligi, Tutar, Kur kisir donguye sebep oluyor...

Mesaj gönderen Glen »

Selam arkadaslar,
program kisir donguye giriyor sanirim ve o yuzden hata veriyor... (Stack overflow hatasi)

3 tane alanim var

TUTAR
KUR
YTL KARŞILIĞI

YTLKarsiligi = Tutar * Kur
Kur = YTLKarsiligi / Tutar

Yani $öyle dü$ünün Tutar ve Kur günlük kurlardan geldi, YTL karsilgiina Tutar * Kur otomatikman yazildi...

Eger kisi YTLkarsiligini elle degistirirse, Kur alani otomatikman degisecek yani KUR = Ytlkarsilgi / Tutar oluyor.. Ama bu isleme girince tekrar Kurun degisme islemleri gerceklesiyor ve sanirim kisir dongu olusuyor. Bunlardan nasil kurtulabilirim?.. Şimdiden çok teşekkür ederim

Kodlarim $öyle

Kod: Tümünü seç

procedure Ttahsilatfisiekle.ListeQueryIDTUTARIValidate(Sender: TField);
begin
if ListeQueryIDKUR.text <> '' then
ListeQueryYTLTUTARI.AsFloat := ListeQueryIDKUR.AsFloat * ListeQueryIDTUTARI.AsFloat;
end;

procedure Ttahsilatfisiekle.ListeQueryYTLTUTARIChange(Sender: TField);
var
ytltutari, idtutari, kur : real;
begin
if (ListeQueryIDKUR.Text <> '') and (ListeQueryIDTUTARI.text <> '') and (ListeQueryYTLTUTARI.text <> '') then
begin
ytltutari := ListeQueryYTLTUTARI.AsFloat;
idtutari := ListeQueryIDTUTARI.AsFloat;
kur := ytltutari / idtutari;
listeQueryIDKUR.AsFloat := kur;
end;
end;

procedure Ttahsilatfisiekle.ListeQueryIDKURValidate(Sender: TField);
begin
if (ListeQueryIDTUTARI.Text <> '') then
ListeQueryYTLTUTARI.AsFloat := ListeQueryIDKUR.AsFloat * ListeQueryIDTUTARI.AsFloat;
end;

procedure Ttahsilatfisiekle.ListeQueryIDKURValidate(Sender: TField);
begin
if (ListeQueryIDTUTARI.Text <> '') then
ListeQueryYTLTUTARI.AsFloat := ListeQueryIDKUR.AsFloat * ListeQueryIDTUTARI.AsFloat;
end;
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2385
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Kod: Tümünü seç

procedure Ttahsilatfisiekle.ListeQueryYTLTUTARIChange(Sender: TField);
var
ytltutari, idtutari, kur : real;
begin

if not EDT_YTL_Tutar.focused then Exit;// ***

if (ListeQueryIDKUR.Text <> '') and (ListeQueryIDTUTARI.text <> '') and (ListeQueryYTLTUTARI.text <> '') then
begin
ytltutari := ListeQueryYTLTUTARI.AsFloat;
idtutari := ListeQueryIDTUTARI.AsFloat;
kur := ytltutari / idtutari;
listeQueryIDKUR.AsFloat := kur;
end;
end;
*** Buraya klavye girişi yapılan class ın focus yani seçili olup olmadığını kontrol edersen, sadece ilgili yerde yapılan değişikliği çalıştırmış olursun

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Glen
Üye
Mesajlar: 277
Kayıt: 12 Eki 2005 11:58

Mesaj gönderen Glen »

freeman35 yazdı:

Kod: Tümünü seç

procedure Ttahsilatfisiekle.ListeQueryYTLTUTARIChange(Sender: TField);
var
ytltutari, idtutari, kur : real;
begin

if not EDT_YTL_Tutar.focused then Exit;// ***

if (ListeQueryIDKUR.Text <> '') and (ListeQueryIDTUTARI.text <> '') and (ListeQueryYTLTUTARI.text <> '') then
begin
ytltutari := ListeQueryYTLTUTARI.AsFloat;
idtutari := ListeQueryIDTUTARI.AsFloat;
kur := ytltutari / idtutari;
listeQueryIDKUR.AsFloat := kur;
end;
end;
*** Buraya klavye girişi yapılan class ın focus yani seçili olup olmadığını kontrol edersen, sadece ilgili yerde yapılan değişikliği çalıştırmış olursun

Kolay gele
Süüüüüüüüüperrrrrrrrrrsinnnnnnnnnnnnnnnnnnnizzzzzzzzzzzzzzzzzzz:)
Abi cok ama cok saol.. Ben böyle ufak $eylerle mutlu olan bi insanim i$te :D:D i$in $aka yani bi yana cok te$ekkür ederim.. Ben bu gazla 1 2 soru daha sorarim :)
Allah razi olsun
Cevapla