label goto yardım lütfen

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kayipgemi
Üye
Mesajlar: 88
Kayıt: 14 Kas 2005 03:07

label goto yardım lütfen

Mesaj gönderen kayipgemi »

Kod: Tümünü seç

label
    Hata;

begin

      if (dm.arizamusterid.AsString = '')      or
         (dm.arizamusteriadi.AsString = '')    or
         (dm.arizamusterisoyadi.AsString = '') then goto Hata;

Hata: Application.MessageBox('Müşteri Bilgilerini Boş Geçemezsiniz','Sistem Hata',MB_OK+MB_ICONWARNING);
Exit;

end;
arkadaslar bu kodu kullanıyorum ama musteri bilgilerini girsem bile yine mesaj veriyor ne yapmalıyım yardımlarınızı bekliyorum
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

Merhaba şaka bir yana delphi de goto kullananı dövüyorlar bilesiniz.

aşağıdaki gibi deneyin

Kod: Tümünü seç

begin

      if (dm.arizamusterid.AsString = '')      or
         (dm.arizamusteriadi.AsString = '')    or
         (dm.arizamusterisoyadi.AsString = '') then 
             begin 
               Application.MessageBox('Müşteri Bilgilerini Boş Geçemezsiniz','Sistem Hata',MB_OK+MB_ICONWARNING);
             Exit; 
             end; //if end
end ; // ilk end 
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

bu da 2. versiyon

ancak tek bir procedure için extra procedure gerek yok.
exiti de procedure alabilrsin ama exit sadece hhatagosterden çıkar bu durumda. eğer bunu dongude kullanacaksan ve donguyu kıracaksan exit yerine break dene.

Kod: Tümünü seç

procedure hatagoster;
begin
      Application.MessageBox('Müşteri Bilgilerini Boş Geçemezsiniz','Sistem Hata',MB_OK+MB_ICONWARNING);
end;
Procedure seninyordam;
begin
      if (dm.arizamusterid.AsString = '')      or
         (dm.arizamusteriadi.AsString = '')    or
         (dm.arizamusterisoyadi.AsString = '') then
             begin
              hatagoster;
               Exit;
             end; //if end
end ; // ilk end 
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
kayipgemi
Üye
Mesajlar: 88
Kayıt: 14 Kas 2005 03:07

Mesaj gönderen kayipgemi »

yardımların için teşekkür ederim kardeş sağolasın ama bir kaydet butonu düşün bu butonun altında 54 tane if .. then kontrolu var yani bir kayıt yaparken 54 yeri kontrol etmesi gerekiyor buna baglı olarak + 2 kombinasyon, kısacası senin verdiğin gibi procedurlerle gidicek olursam heryer procedure dolacak diger orneginde ise kombinasyonlar girdiği zaman içinden cıkılmaz bir hal aloyır , case ile de ugrastım olmuyor biliyorum eski bir yontem pascal alışkanlığı ama bunu goto ile çözmem gerekiyor, yardımcı olabilirseniz sevinirim
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

Merhaba

Ben kendşi payıma eskidende goto kullanmazdım:)

Diğer konuya gelince

Boolean birkaç aslında birde yeter

Kod: Tümünü seç

Procedure kontrol;
var
hatagoster:boolean;
begin
hatagoster:=false;

if (dm.arizamusterid.AsString = '') then hatagoster:=true;
if (dm.arizamusterisoyad.AsString = '') then hatagoster:=true;

If hatagoster then 
begin

Application.MessageBox('Müşteri Bilgilerini Boş Geçemezsiniz','Sistem Hata',MB_OK+MB_ICONWARNING);
Exit;
end; 
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Cevapla