{$IfDef}{$EndIf}

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

{$IfDef}{$EndIf}

Mesaj gönderen Lost Soul »

Kod: Tümünü seç

{$IfDef DEGER1}
.....
{$Else}
......
{$EndIf}
kullanımı normalde şu şekilde

şu şekilde bir kullanımı var mı acaba
varsa nasıl olacak.

Kod: Tümünü seç

{$IfDef DEGER1}
.....
{$Else ifDEF DEGER2}
......
{$Else}
......
{$EndIf}
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: {$IfDef}{$EndIf}

Mesaj gönderen emin_as »

$ifdef, $ifndef, $else, $define, $undef derleyici komutlarıdır.
Bahsettiğin kullanım yok, ama iç içie ifdef kullanabilirsin

Kod: Tümünü seç

{$ifdef  deneme} 
// deneme tanımlandıysa  
{$else}
   // deneme tanımlanmadıysa
   {$ifdef  test} 
    // deneme tanımlı degil ve test tanımlıysa
   {$else}
    // deneme tanımlı degil ve test tanımlı değilse  
   {$endif}
{$endif}
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Re: {$IfDef}{$EndIf}

Mesaj gönderen hi_selamlar »

emin_as yazdı:$ifdef, $ifndef, $else, $define, $undef derleyici komutlarıdır.
Bahsettiğin kullanım yok, ama iç içie ifdef kullanabilirsin
S.A.

Tam olarak bu komutlar niçin kullanılıyor..???
ne işe yarıyorlar. nerelerde kullanılıyorlar.. :bravo:

teşekkürler.
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: {$IfDef}{$EndIf}

Mesaj gönderen Lost Soul »

hi_selamlar yazdı: S.A.

Tam olarak bu komutlar niçin kullanılıyor..???
ne işe yarıyorlar. nerelerde kullanılıyorlar.. :bravo:

teşekkürler.
A.S.
Bu ve benzeri komutlar Compiler Directive olarak geçer.

Kod: Tümünü seç

a:=99;
b:=99;
{$Define DENEME}
{$IfDef DENEME}
  for a := 1 to 5 do
{$Else}
  for b := 5 to 10 do
{$EndIf}
  Begin
    Showmessage(Inttostr(a)+','+inttostr(b));
    Showmessage('Blok Döngü');
  End;
yukarıdaki kodda DENEME diye bir değer tanımlandığı için
For a:= 1 to 5 do çalışacak ancak
For b:= 1 to 5 do çalışmayacak yani

Kod: Tümünü seç

  for a := 1 to 5 do
  Begin
    Showmessage(Inttostr(a)+','+inttostr(b));
    Showmessage('Blok Döngü');
  End;
olmuş olacak

sonuç :

Kod: Tümünü seç

1,99
Blok Döngü
2,99
Blok Döngü
3,99
Blok Döngü
4,99
Blok Döngü
5,99
Blok Döngü
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: {$IfDef}{$EndIf}

Mesaj gönderen emin_as »

Nasıl kullanılacağı tamamen programcıya kalmıştır. Amaç farklı durumlar için farklı kod bloklarını yazıp, hangi kod blogunun kullanılacagını definelarla kontrol etmektir.

Kod: Tümünü seç

{$DEFINE HATA_CONTROL}
...
result:=idhttp1.Get(urls);
{$IFDEF  HATA_CONTROL}
   showmessage(result); 
{$ENDIF}
.....
Programı geliştirme aşamasında, result ile dönen bilgiyi bu şekilde görüp, inceleyebilirsin. IFDEF dogru olunca o bölüm programın koduna eklenecektir. Programın hazır olduğuna karar verince, define bölümünü kaldırırsın ve tekrar derlersin. Kontrol olarak kullandığın bölümler koda dahil edilmez. Bir hata ortaya çıkarsa ve tekrar inceleme yapman gerekirse, defineni tekrar tanımlarsın.

Ayrıca delphinin kendisi de versiyonları için öntanımlı define kullanır. Örnegin delphi 7 için şu kontrolu yapabilirsin.
{$IFDEF VER150}
Label1.Caption:='Bu program delphi 7 ile derlenmiştir.';
{$ENDIF}

Component yazan firmalar, kodun hangi versiyonda derlendiğini bu komutlarla kontrol ederler.
Cevapla