sybic Napisano Kwiecień 15, 2011 Zgłoś Share Napisano Kwiecień 15, 2011 Mam dwa programy - program1 i program2 W obu programach wywołuje dodatkowe okienko zdefiniowane jako Form3 w Unit3.pas Niestety pewne fragmenty kodu w Form3 odwołują się do program1, co wyklucza użycie tej formy już do kompilowania program2. Wiem, że mogę zastosować dyrektywy i kompilować pewne fragmenty kodu przeznaczone dla program1 i program2. Niestety za każdym razem muszę to robić ręcznie Czyli jeśli kompiluje program1 To daje {$DEFINE P1} {$IFDEF P1} kod dla programu 1 {$ELSE} kod dla programu 2 {$ENDIF} a jeśli program2 to daje {$DEFINE P2} Pytanie - czy nie można zrobić tego automatycznie? Chodzi o to, że gdzieś siedzi jakaś zmienna, którą mówi o nazwie wykonywanego programu i której mógłbym użyć do moich aplikacji? Link do komentarza Udostępnij na innych stronach More sharing options...
Blind Napisano Kwiecień 15, 2011 Zgłoś Share Napisano Kwiecień 15, 2011 Na pewno można by to zrobić automatycznie przy pomocy dyrektyw, ale to nie jest elegancki rozwiązanie. Najlepiej jakbyś usamodzielnił dany moduł. Jeśli odwołuje się do danych z innego modułu to przenieś wymagane dane do form3 przed uruchomieniem. www.blinder.pl - Blog Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Kwiecień 15, 2011 Zgłoś Share Napisano Kwiecień 15, 2011 a nie lepiej w każdym projekcie dodać klasę dziedziczącą po Form3 i tylko rozbudowywać jej funkcjonalność pod konkretny projekt Link do komentarza Udostępnij na innych stronach More sharing options...
DevPort Napisano Kwiecień 15, 2011 Zgłoś Share Napisano Kwiecień 15, 2011 Niegdyś stosowałem technikę osobnego pliku konfiguracyjnego "config.inc" który włączałem do unitu wykorzystującego podane definicje. Jak by nie patrzeć taką technikę chyba JEDI używają. (coś mi tak po głowie chodzi obraz źródeł directx'a ) plik config: {$DEFINE WIN} a Unit1 zawierał Unit Unit1.pas interface {$I config.inc} ... {$IFDEF WIN} kod pod windows {$ENDIF} //natomiast kod w dyrektywach NIX był pomijany {$IFDEF NIX} kod linux {$ENDIF} Obecnie mało używam tych dyrektyw, a częściej korzystam z włączania całego katalogu z odpowiednimi unit'ami. Prawdziwy programista wiesza sie wraz ze swoim programem. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.