bu komut bloğunu daha az if kullanarak yapabilirmiyim?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
AliErdem
Üye
Mesajlar: 157
Kayıt: 16 Nis 2006 02:57

bu komut bloğunu daha az if kullanarak yapabilirmiyim?

Mesaj gönderen AliErdem »

aşağıda dbeditin çıkış olayında kitabın kayıtlı olup olmadığını kontrol ediyorum eğer kayıtlı ise bilgileri label lere yazdırıyorum ama kayıt boş ise hata veriyordu bende aşağıdaki gibi if leri kullandım sorun çözüldü ama daha iyi bi fikri olan arkadaşlar varsa yardım ederse sevinirim


procedure TForm1.DBEdit8Exit(Sender: TObject);
VAR
ARA:variant;

begin
if not (dbedit8.Text='') then
begin
ara:=table1.Lookup('KIT_KODu',dbedit8.Text,'KIT_ADI;KIT_YAZAR;BASIM_EVI;BASIM_TAR;ISBN_NO;KIT_KONU;FIYAT;RAF_NO');
if varisnull(ara) then
begin
showmessage('KİTAP KAYITLI DEĞİL');
dbedit8.SetFocus;
END
else
begin
panel7.visible:=true;

dbedit9.Text:=ara[0];
dbedit9.Enabled:=false;
if not varisnull (ara[0]) then
label52.caption:=ara[0];
if not varisnull (ara[1]) then
label53.Caption:=ara[1];
if not varisnull (ara[2]) then
label54.Caption:=ara[2];
if not varisnull (ara[3]) then
label55.Caption:=ara[3];
if not varisnull (ara[4]) then
label56.Caption:=ara[4];
if not varisnull(ara[5]) then
LABEL57.Caption:=ara[5];
if not varisnull(ara[6]) then
label58.caption:=ara[6];
if not varisnull (ara[7]) then
label59.Caption:=ara[7];
dbedit16.SetFocus;
end;
end
else
begin
Showmessage('KİTAP KODU BOŞ GEÇİLEMEZ');
dbedit8.SetFocus;
end;
end;

teşekürler şimdiden
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Re: bu komut bloğunu daha az if kullanarak yapabilirmiyim?

Mesaj gönderen ulu coder »

Kod: Tümünü seç

procedure TForm1.DBEdit8Exit(Sender: TObject);
VAR
ARA:variant;
i:integer;

begin
if not (dbedit8.Text='') then
begin
    ara:=table1.Lookup('KIT_KODu',dbedit8.Text,'KIT_ADI;KIT_YAZAR;BASIM_EVI;BASIM_TAR;ISBN_NO;KIT_KONU;FIYAT;RAF_NO');
  if varisnull(ara)  then
  begin
    showmessage('KİTAP KAYITLI DEĞİL');
    dbedit8.SetFocus;
  END
  else
  begin
    panel7.visible:=true;
    dbedit9.Text:=ara[0];
    dbedit9.Enabled:=false;
    For i:=0 to 7 do
    begin
      if not varisnull (ara[i]) then TLabel(FindComponent('Label'+inttostr(52+i)).Caption:=ara[i]
    end;
  end;
  dbedit16.SetFocus;
  end
  else
  begin
  Showmessage('KİTAP KODU BOŞ GEÇİLEMEZ');
  dbedit8.SetFocus;
  end;
end;
Denemedim hata verebilir
Kullanıcı avatarı
AliErdem
Üye
Mesajlar: 157
Kayıt: 16 Nis 2006 02:57

Mesaj gönderen AliErdem »

[/quote]TLabel(FindComponent('Label'+inttostr(52+i)).Caption:=ara
satırında Undeclared identifier :'Caption' diye hata çıktı var bloğunda bişi tanımlamamız mı gerekecek
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Özür diliyorum,
Caption'dan önce bi tane daha ) olacak
Kullanıcı avatarı
AliErdem
Üye
Mesajlar: 157
Kayıt: 16 Nis 2006 02:57

Mesaj gönderen AliErdem »

teşekür ederim bende hiç bakmadan sordum :) oldu çalışıyor
Cevapla