s.a.
aynı isimde iki kod dosyası var. Derleme yaparken Test ortamında çalışacak prg. için 1.dosyayı, gerçek ortamda çalışacak prg. için 2.dosyayı projeye dahil ederek derlemesini nasıl sağlarız?
iyi çalışmalar
Compiler
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Compiler
inc dosyları ve compiler direktiflerini kullanarak yapabilirsin.
birden fazla unitte bu test tanımlaması yapman gerekirse {$define test} kısmını not defterinde yazıp test.inc ismi ile (farklı bir isimde olabilir) projenin (dpr dosyasının) olduğu dizine kaydet.
sonra test karşılaştırmasını yapacağın unitlerin başına
yaz. bu şekilde test.inc dosyasının içindekileri tüm unitlere eklemiş olursun.
test tanımlamasını değiştirmek istediğin zaman inc dosyasının içindeki tanımlamayı değiştirmen yeterli olur. öbür türlü tüm sayfalarda tek tek değiştirmen gerekir.
kolay gelsin.
Kod: Tümünü seç
{$define test} //bunu unitin en başına yaz...
{$ifdef test}
buraya test ortamında çalışacak kodlar
{$else}
buraya test haricinde çalışacak komutlar
{$endif}
sonra test karşılaştırmasını yapacağın unitlerin başına
Kod: Tümünü seç
{$I test.inc}
test tanımlamasını değiştirmek istediğin zaman inc dosyasının içindeki tanımlamayı değiştirmen yeterli olur. öbür türlü tüm sayfalarda tek tek değiştirmen gerekir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: Compiler
Delphide Project optionstan farklı build configürasyonları oluşturabilirsiniz. Delphi 2007 için en azından böyle önceki versiyonlarda durum neydi hatırlamıyorum.
Test ortamında çalışacak olan konfigürasyonun Conditional Defines kısmına TESTSURUMU yazın. Eğer birden çok olacaksa ; ile ayırın.
Sonra uses kısmına şu şekilde unitleri ekleyin.
Test ortamında çalışacak olan konfigürasyonun Conditional Defines kısmına TESTSURUMU yazın. Eğer birden çok olacaksa ; ile ayırın.
Sonra uses kısmına şu şekilde unitleri ekleyin.
Kod: Tümünü seç
{$IFDEF TESTSURUMU} dosya1 {$ELSE} dosya2 {$ENDIF}
Re: Compiler
tşk
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Compiler
İyi günler. Farklı kod dosyaları için undefined'ın söylediği şekilde yapmak uygun olanı. Bu derleyici bildirimi pascal'dan bu yana hep desteklenmektedir. Buna ek bilgi olarak programın delphiden çalışırken başka, normal çalışırken başka davranması isteniyorsa aşağıdaki gibi bir fonksiyon işe yarayacaktır. Verdiğim bilgi bu soru için işinize yaramasa da bir ip ucu olarak faydası vardır .örnek kullanımı iseşeklinde olabilir. Örneğe göre program F9 ile çalıştırıldığında veri klasörü olarak "c:\TestData\" olmakta fakat normal çalıştığında ise program dosyası ile aynı yerde bulunan "Data" klasör yerinin değerini almaktadır. Bu ve benzeri kullanım biçimleriyle gayet pratik çalışma yapılabilmektedir. İyi çalışmalar.
Kod: Tümünü seç
function Delphiden:Boolean;
begin
Result:=DebugHook <> 0;
end;
Kod: Tümünü seç
if Delphiden then DataDir:='c:\TestData\' else DataDir:=ExtractFilePath(Application.Exename)+'Data\';
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .