Konuyu Paylaş : facebook gplus twitter

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}
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#2
Merhaba,
Derleyici Direktifleri olarak nitelendirilmektedir. (Yeni Nesil Delphi Teknolojileri Kitabımda detaylı olarak anlattım)
Direktiflerin Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Ş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.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#4
(19-08-2016, Saat: 13:31)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlPeki 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 Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol 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. Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

İyi çalışmalar.
Cevapla
#5
Teşekkürler Volkan Bey,
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#6
(18-08-2016, Saat: 09:36)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,
Derleyici Direktifleri olarak nitelendirilmektedir. (Yeni Nesil Delphi Teknolojileri Kitabımda detaylı olarak anlattım)
Direktiflerin Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Ş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
(6 saat önce)radyoselim Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSelam 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 Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol bölümünden takip edebilirsiniz.
Kitabımız henüz yayınlanmadı.
Yarı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.
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Uses Kullanım Hakkında hi_selamlar 2 126 02-08-2018, Saat: 23:42
Son Yorum: hi_selamlar
  Chart1 kullanımı hakkında cinarbil 2 122 31-07-2018, Saat: 12:31
Son Yorum: cinarbil
  TDevBroadcastDeviceInterface hakkında. seci20 4 184 30-07-2018, Saat: 09:08
Son Yorum: Tuğrul HELVACI
  Community Edition Firedac Mssql hakkında quake16 9 293 25-07-2018, Saat: 01:30
Son Yorum: KUNTAY
  Puanların Önemi Hakkında... Tuğrul HELVACI 20 7.604 20-07-2018, Saat: 17:42
Son Yorum: Tuğrul HELVACI



Konuyu Okuyanlar: 1 Ziyaretçi