Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi Direktif Kullanımı
#1
Derleme işleminin ilk safhasında , önişlemci derleyiciye bazı direktifler ulaştırır. Bu Makalede Delphide kullanılan bazı direktifleri inceleyeceğiz.
$IF DERLEYİCİ DİREKTİFİ 
Şart olarak sadece sistem ve bizim tanımladığımız sabitler const değerler kullanılabilir. 
Belirli değerleri diğerlerinden ayrıştırmak özelleştirmek için kullanılır. 
$IFDEF KULLANIMI 

2J45vA.png
$IF KULLANIMI
dOE0qX.png
BAZI SİSTEM SABİTLERİ
                MSWINDOWS -- Windows platformunda derleniyor
                WIND32 -- 32 Bit Windowsta derleniyor
                LINUX-- Linux platformunda derleniyor
                CONSELE-- Console uygulaması ise
                ConditionalExpressions-- $IF direktifi kullanılabilir mi kontrol
                DİĞER                   http://docwiki.embarcadero.com/RADStudio...n_(Delphi)
8YoQE7.png
PLATFORM DİREKTİFİ
Bu direktifi kullandığınızda yazdığımız kodun platform seçen örneğin sadece  Windowsta çalışan bir kod olduğunu belirtmiş oluruz.
Bu kodu kullandığımızda derleme sırasında bize Warning uyarı şeklinde "Symbol 'IncludeTrailing Rackslah is specific to platform' " uyarısı verilir.
azR0y4.png
PlzBpO.png
m2Z5G8.png

oOl9AX.png
[b]DEPRECATED DİREKTİFİ[/b]
Kullanımı platform ile aynıdır. Bu direktifin görevi, uyumluluk gerekçesi hala sistemin bir parçası olan, ancak gelecekte silinecek veya size uyumsuzluk riskleri çıkartabilecek belirleyicileri işaretlemektir.
HboED6L.png
LİBRARY DİREKTİFİ
Kullanımı platform ile aynıdır. Görevi bir kütüphaneye özgü VCL veya FMX ait olduğunu, taşınamaz olan kod veya bileşenleri işaretlemektir.
HboEZ8E.png
HboF7Nh.png
$WARN DİREKTİFİ
Bütün uyarı mesajlarını açıp kapatmamıza yarar.
                SABİTLER
                SYMBOL_PLATFORM
                SYMBOL_LIBRARY
                SYMBOL_DEPRECATED
HboFpVR.png
$MESSAGE DİREKTİFİ
Yorum satırı gibidir. Bir bileşenin geliştiricisinin onu kullanan programcılarla iletişim kurarak potansiyel tehlikeler konusunda uyarmasını sağlamak açısından faydalıdır.
HboFP7Pr.png
HboG0St.png
$REGION DİREKTİFİ
Genellikle yazılan kodları gruplamak için kullanılır.
HboGiRa.png
HboGt1f.png
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#2
Emeğinize sağlık
WWW
Cevapla
#3
(11-03-2018, Saat: 17:49)yhackup Adlı Kullanıcıdan Alıntı: Emeğinize sağlık

Eyvallah
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#4
Çok güzel bir arşiv. Açıklayıcı.. Eliniz sağlık
Cevapla
#5
tam işim düştü resimler cortlamış.
WWW
Cevapla
#6
(19-12-2024, Saat: 16:23)yhackup Adlı Kullanıcıdan Alıntı: tam işim düştü resimler cortlamış.

Conditional compilation (Delphi)
Begin : = end / 2;
Cevapla
#7
(19-12-2024, Saat: 16:57)RAD Coder Adlı Kullanıcıdan Alıntı:
(19-12-2024, Saat: 16:23)yhackup Adlı Kullanıcıdan Alıntı: tam işim düştü resimler cortlamış.

Conditional compilation (Delphi)


bunu denedim ama düzgün çalışmadı maalesef.

{$IFDEF CONDITIONALEXPRESSIONS}
{$IF CompilerVersion >= 17.0}
{$DEFINE HAS_INLINE}
{$IFEND}
{$IF RTLVersion >= 14.0}
{$DEFINE HAS_ERROUTPUT}
{$IFEND}
{$ENDIF}
WWW
Cevapla
#8
(19-12-2024, Saat: 17:38)yhackup Adlı Kullanıcıdan Alıntı:
(19-12-2024, Saat: 16:57)RAD Coder Adlı Kullanıcıdan Alıntı: Conditional compilation (Delphi)


bunu denedim ama düzgün çalışmadı maalesef.

{$IFDEF CONDITIONALEXPRESSIONS}
   {$IF CompilerVersion >= 17.0}
     {$DEFINE HAS_INLINE}
   {$IFEND}
   {$IF RTLVersion >= 14.0}
     {$DEFINE HAS_ERROUTPUT}
   {$IFEND}
{$ENDIF}

Yapılmak istenen nedir?
Bu sorudan yola çıkarak daha hızlı çözüm üretebiliriz.
Begin : = end / 2;
Cevapla
#9
(19-12-2024, Saat: 17:55)RAD Coder Adlı Kullanıcıdan Alıntı:
(19-12-2024, Saat: 17:38)yhackup Adlı Kullanıcıdan Alıntı: bunu denedim ama düzgün çalışmadı maalesef.

{$IFDEF CONDITIONALEXPRESSIONS}
   {$IF CompilerVersion >= 17.0}
     {$DEFINE HAS_INLINE}
   {$IFEND}
   {$IF RTLVersion >= 14.0}
     {$DEFINE HAS_ERROUTPUT}
   {$IFEND}
{$ENDIF}

Yapılmak istenen nedir?
Bu sorudan yola çıkarak daha hızlı çözüm üretebiliriz.

Bende Rad 11 var, arkadaşımda Rad 10.3 

Benim yazdığım kod 10.3de doğrudan ac atıyor. source koda baktığımızda 11 ile 10.3 arasında JsonToObject işleminde farklar var. aşağıdaki gibi ayrım yapmaya çalışmıştım. 


{$IFDEF CONDITIONALEXPRESSIONS}
{$IF CompilerVersion >= 27.0}
     Result := TJson.JsonToObject<TFinekraReply>(ResponseJson);
{$IFEND}
{$IF RTLVersion >= 25.0}
     Result := TFinekraReply.Create;
     JSONObject := TJsonObject.Create;
     JSONObject.Parse(BytesOf(ResponseJson), 0);
     JsonArray := TJsonObject.ParseJSONValue(JSONObject.Values['value'].ToString) as TJSONArray;
     for JsonValue in JsonArray do
     begin
       Result.Value := Result.Value + [JsonToObject(JsonValue.ToString)];
     end;
{$IFEND}
{$ENDIF}

Ama şimdi buraya yazınca farkettim galiba hatalı yazmışım Smile
WWW
Cevapla
#10
{$IF CompilerVersion = 33.0}
  ShowMessage('Delphi 10.3');
{$IFEND}
{$IF CompilerVersion = 35.0}
   ShowMessage('Delphi 11');
{$IFEND}
Begin : = end / 2;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Kendinden İmzalı Dijital Sertifikalar ve Socket Uygulamalarında Kullanımı delphi.developer 15 5.378 31-10-2023, Saat: 23:30
Son Yorum: nguzeller
  Delphi ile .Net Ortamında geliştirilen dll içerisindeki fonksiyon kullanımı yhackup 10 10.338 09-04-2023, Saat: 02:17
Son Yorum: gogo72
  Delphi ve Protocol Buffers SimaWB 10 9.310 10-12-2022, Saat: 15:04
Son Yorum: SimaWB
  Delphi AES 128 ECB PKCS5 Padding ile sorun aegean 1 1.716 28-11-2022, Saat: 13:07
Son Yorum: aegean
  Delphi IDE'sine Eklenti Yapmak - 2 SimaWB 29 26.686 03-07-2022, Saat: 16:40
Son Yorum: enigma



Konuyu Okuyanlar: 3 Ziyaretçi