Konuyu Oyla:
  • Derecelendirme: 4.5/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Derleyici Direktifleri Hakkında,
#1
Exclamation 
Delphi'de kullanılan, Bu gibi  bu ve benzeri komutların tam listesi ve tam olarak ne işe yaradıklarını öğrenebilir miyim ?

 {$IFDEF DEBUG}

 {$ENDIF}
WWW
Cevapla
#2
Merhaba,
Derleyici Direktifleri olarak nitelendirilmektedir. (Yeni Nesil Delphi Teknolojileri Kitabımda detaylı olarak anlattım)
Direktiflerin Tam Listesi

Şunu da belirteyim sorunuz amatörce değil. Bir çoğumuz bu tip direktiflerden bi haberiz.
Özellikle son yıllarda (2012'den sonra) daha çok önem kazanan Derleyici Direktifleri, Çoklu (Çapraz) Platformların vazgeçilmez unsuru haline geldi.

Çapraz platformlarda kullanım şekli;

{$IFDEF PLATFORM_ADI}
//Platforma özgü kodlar
{$ENDIF}


Örnek 1

{$IFDEF ANDROID}
 // İşletim Sistemi Android ise
{$ENDIF}

Örnek 2

{$IF Defined(IOS) and Defined(CPUARM)}
 //  iOS Cihaz ise
{$ENDIF}
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
Peki abi örneklerle bir açıklayabilir misin nasıl kullanırız.
WWW
Cevapla
#4
(19-08-2016, Saat: 13:31)yhackup Adlı Kullanıcıdan Alıntı: Peki abi örneklerle bir açıklayabilir misin nasıl kullanırız.

Merhaba , 
Derleyici direktifleri tarafında çok geniş bir yelpaze var ancak sen IFDEF i sorduğun için onun üzerinden gidelim,
Çalışma mantığı olarak adından da anlaşılacağı gibi derleyici direktifleri kodumuzun derlenmesi esnasında derleyicinin nasıl davranacağını belirlemek için kullanılır.


{$IfDef}
//çalışacak kodlarınız
{$EndIf}

IFDEF , belirttiğiniz bir direktif tanımlıysa , IFNDEF ise belirttiğiniz direktif tanımlı değilse drumlarını kontrol etmek için kullanılır.
Örneğin kaynak kodumuzda sadece test ederken çalışmasını istediğimiz kodları IFDEF ya da IFNDEF direktifiyle derlemeye dahil eder yada etmeye biliriz.


{$ Define TEST-MODU}
procedure IslemYap ;
var
 a , b , c ,sonuc : Integer;

begin
  a:= 5 ;
  b:= 10 ; 
  c := 15;
 sonuc:= 0; 

sonuc := a + b ;
{$IfDef TEST-MODU}
ShowMessage(IntToStr( Sonuc ));  
{$EndIf}
sonuc := sonuc * c ;
ShowMessage(IntToStr( Sonuc ));  

end;


Yukarıda ki kodda prosedüre gelmeden önce $Define ile TEST-MODU adında bir direktif tanımladım, kodun içindeki IfDef TEST-MODU ve EndIf arasındaki kod bu durumda derlemeye dahil edilecek tir, eğer $Define TEST-MODU sahasını kaldırısam  ilgili bölüm derelyici tarafından sanki hiç yazmamışım gibi dikkate alınmayacak ve derlenmeyecektir.

Bu direktifleri örnekte olduğu gibi kendin tanımlayabilirken kullnadığın delphi sürümünün desteğine göre hem derleyici versiyonunu hemde derleme yaptığın işletim sistemini veren sabit direktiflerin listesine http://docwiki.embarcadero.com/RADStudio...n_(Delphi) buradan ulaşabilirsin.  ayrıca IF direktifinin çok detaylı kullanımını örneklerle açıklayan şu yere de bir göz at özellikle IF direktifi içinde koda yazdığını CONST  larıda kullanabiliyor oluşu kısmına dikkat et. http://docwiki.embarcadero.com/RADStudio...n_(Delphi)

İyi çalışmalar.
Cevapla
#5
Teşekkürler Volkan Bey,
WWW
Cevapla
#6
(18-08-2016, Saat: 09:36)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
Derleyici Direktifleri olarak nitelendirilmektedir. (Yeni Nesil Delphi Teknolojileri Kitabımda detaylı olarak anlattım)
Direktiflerin Tam Listesi

Şunu da belirteyim sorunuz amatörce değil. Bir çoğumuz bu tip direktiflerden bi haberiz.
Özellikle son yıllarda (2012'den sonra) daha çok önem kazanan Derleyici Direktifleri, Çoklu (Çapraz) Platformların vazgeçilmez unsuru haline geldi.

Çapraz platformlarda kullanım şekli;

{$IFDEF PLATFORM_ADI}
//Platforma özgü kodlar
{$ENDIF}


Örnek 1

{$IFDEF ANDROID}
 // İşletim Sistemi Android ise
{$ENDIF}

Örnek 2

{$IF Defined(IOS) and Defined(CPUARM)}
 //  iOS Cihaz ise
{$ENDIF}

Selam Hocam,Hayırlı bayaramlar.Ben bu kitabı tedarik edemedim(Yeni Nesil Delphi Teknolojileri Kitabı).
Cevapla
#7
(21-08-2018, Saat: 22:22)radyoselim Adlı Kullanıcıdan Alıntı: Selam Hocam,Hayırlı bayaramlar.Ben bu kitabı tedarik edemedim(Yeni Nesil Delphi Teknolojileri Kitabı).

Aleyküm Selam,
Sizin ve tüm DelphiCan'ların Kurban Bayramı mübarek olsun.
Formda bu konuda birçok başlık açıldı. Son gelişmeleri Yeni Kaynak Kitap bölümünden takip edebilirsiniz.
Kitabımız henüz yayınlanmadı.
Yayın tarihi önümüzdeki hafta inşallah belli olacak.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#8
Arayüzde derleyici konfigürasyonunda da kendi ifadeni tanımlayabilirsin.

Build Configurations içindeki RELEASE, DEBUG ile de açılabilen Project Options ekranında en üstte Conditional Defines var.

Oraya ";" ile ayırarak istediğin kadar yazabilirsin. Ben genelde RELEASE veya DEBUG altında yeni bir konfigürasyon oluşturmayı tercih ediyorum.

Böylece sadece fareyi çift tıklayarak tüm projede "$IFDEF TESTMODU" kullanabiliyorsun.

Yıllar önce Visual C ile uğraşırken 'aynısı neden delfide de olmasın ki' diye düşünüp şans eseri farketmiştim.
Cevapla
#9
Ben Lazarus da ( ki delphi'de kesin vardır) aynı programın lite ve pro sürümünü yazıyorum derlerken lite dersem bazı menüler gözükmüyor pro dersem gözüküyor. Aynı işlemi test aşamasında yazdığım programlarda da yapıyorum test derlemelerinde local server'a bağlanıyor nihayi derlemede uzak server'a bağlanır şekilde derliyor.
Topluluk mopluluk yok :/
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Memo bileşeni Duplicate veya Put hakkında yardım kofmaster 6 441 11-04-2020, Saat: 22:39
Son Yorum: kofmaster
  IDE hakkında sorular(F8 Debug,Otomatik tamamlama) 41linea41 6 550 10-03-2020, Saat: 20:07
Son Yorum: kodamelesi
  IHTMLSelectElement onChange olayı hakkında [ÇÖZÜLDÜ] kodamelesi 6 813 03-03-2020, Saat: 16:45
Son Yorum: kodamelesi
  Streaming hakkında Kerembacioglu 0 201 29-02-2020, Saat: 19:50
Son Yorum: Kerembacioglu
  Personel Yıllık İzin Hakediş Hesaplama Hakkında bkantur 2 679 04-10-2019, Saat: 18:15
Son Yorum: uparlayan



Konuyu Okuyanlar: 1 Ziyaretçi