Używam Delphi 2007 z wszystkimi poprawkami i aktualizacjami.* Czasami * pojawia się błąd podczas przypisywania stałej do Delphi
Mam plik, który jest używany przez dwa różne projekty. W tym pliku jest zabiegiem, który będę uprościć następująco:
procedure MyProcedure;
const
UniqueValue: integer = 0;
begin
//some code
Inc(UniqueValue);
//some more code
end;
Komenda
Inc() nie uda, ponieważ nie można przypisać stałą. W jednym projekcie dostaję błąd w tym zakresie (nazwę ten projekt "Dokładnie"). W drugim projekcie nie dostaję żadnych błędów (nazwałem to "Bogus"). Nie otrzymuję też żadnych ostrzeżeń. Nie mogę zrozumieć, dlaczego kompilator dopuszcza ten niepoprawny kod.Oto co próbowałem w projekcie Bogus:
1 - Wprowadzenie oczywisty błąd, jak wpisanie „slkdjflskdjf” w środku linii
Rezultat: pojawia się błąd, co dowodzi, że naprawdę próbuje skompilować ten plik.
2 - Usuń .dcu i Odbuduj projekt
Wynik: .dcu jest ponownie generowany ponownie udowadniając, że projekt jest naprawdę przygotowanie tego błędnego kodu.
Czy ktoś myśli o tym, dlaczego to zachowanie wystąpi? A dokładniej, dlaczego miałoby to nastąpić w jednym projekcie, a nie innym? Czy istnieje pewna niejasna opcja kompilatora, która pozwala na przypisywanie stałych?
Ostatnia uwaga: oba projekty są konwertowane z Delphi 5. Obydwie wersje Delphi 5 mają podobny kod, więc obydwa kompilują dobrze.
Edytuj: Dziękujemy za pomoc. Po zmianie przypisywanej dyrektywy stałej ciągłej mogę uzyskać spójne zachowanie w obu projektach. Nauczyłem się czegoś nowego dzisiaj ...