2010-10-06 7 views
11

Używam Delphi 7, i chcę utworzyć niestandardowy komunikat ostrzegawczy (który będzie wyświetlany w czasie kompilacji), więc mogę ostrzec innych programistów o pewnych modyfikacjach. Szukałem w Internecie, ale nie znalazłem nic istotnego.delphi 7 - utwórz niestandardowe ostrzeżenie

Przyjmuje się również inne rozwiązania, o ile inni programiści są ostrzegani przed tym, co chcę, podczas kompilowania/kompilowania źródeł.

Odpowiedz

18

W D2007 można napisać

{$MESSAGE 'Hello'} 

lub

{$MESSAGE ERROR 'Hello'} 

- patrz documentation. To works since D6 (informacje dzięki uprzejmości Sertac Akyuz).

+0

+1 - Ta funkcja była przez długi czas na mojej liście życzeń. – splash

+2

Wydaje się być dostępny od [Delphi 6] (http://www.blong.com/Seminars/Delphi6.htm#Compiler). –

+0

@Sertac - niestety nigdy tego nie zauważyłem, chociaż nasz główny projekt nadal jest rozwijany w Delphi 6. – splash

1

Czasami żałuję, że taka funkcja nie istnieje. Niestety nie znam żadnego rozwiązania, które poradziłoby sobie z moimi wymaganiami.

Najlepszym podejściem, jakie mogłem sobie wyobrazić spontanicznie, byłby osobny plik wiadomości, który zostanie zsynchronizowany przez eksperta IDE. Można dodać nową wiadomość do tego pliku z tego eksperta jak tego

nowych składników DevExpress (Build 123) wymagane

i zobowiązać go do repozytorium VCS. Po tym jak inni deweloperzy zaktualizują swoje lokalne kopie robocze, eksperci IDE porównują i synchronizują plik wiadomości z lokalną kopią i wyświetlają nowe wiadomości.

+1

Można dodać coś takiego {$ IF dxBuildNumber <66} {$ komunikat o błędzie „DX wersja> = 66 wymaganych} {$ IFEND} do jednostki. –

+0

Jeszcze raz dziękuję @Ulrich! To dobra wskazówka! Nie wiedziałem o istnieniu '$ IF'. W moim umyśle było tylko '$ IFDEF'. – splash

+0

Często widzę kod innej firmy, który mógłby użyć $ IF, używając dużo $ IFDEF, ponieważ chcą obsługiwać starsze wersje Delphi. W rezultacie ludzie czytający kod myślą, że to jedyny sposób! –

3

Używamy również $ MESSAGE, ale z dyrektywą WARN. Zazwyczaj po to, aby powiadomić programistów, aby nie domyślnie kompilowali jednostek bezpośrednio do swojego exe/bpl, jeśli jest już zawarty w innej BPL, z której powinni korzystać jako pakiet. D2005 tutaj.

{$MESSAGE WARN 'File: FOOUNIT contained in PACKAGE:-> FOOLIB'}