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}
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.
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
  AES Şifreleme Hakkında tmrksmt 18 1.281 14-02-2024, Saat: 10:42
Son Yorum: tmrksmt
  TDictionary kullanımım hakkında yhackup 3 399 09-02-2024, Saat: 15:58
Son Yorum: SimaWB
  TfrxReport Rapor dizaynı hakkında yhackup 2 234 24-01-2024, Saat: 11:35
Son Yorum: yhackup
  EdgeBrowser Hakkında bydelphi 2 511 19-11-2023, Saat: 10:21
Son Yorum: bydelphi
  Webp formatı gösterimi hakkında adelphiforumz 1 476 16-03-2023, Saat: 20:52
Son Yorum: uparlayan



Konuyu Okuyanlar: 1 Ziyaretçi