logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Lazarus - Jak zapobiec rekompilacji pliku RES przy zmianie nazwy projektu?

wicy 19 Lis 2019 19:38 396 1
REKLAMA
  • #1 18288243
    wicy
    Poziom 22  
    Posty: 670
    Pomógł: 30
    Ocena: 111
    Przerabiam program z Delphi na Lazarusa i używam skompilowany w Delphi plik zasobów RES.
    Nie wiem jakim cudem wszystko działało dobrze dopóki nie zmieniłem nazwy projektu z projekt1.lpi na pulpit.lpi. Teraz mam błąd EResNotFound, choć próbuję użyć tego samego pliku RES.
    Oczywiście zasoby dodane dyrektywą {$R pulpit.res}. Problem w tym, że Lazarus rekompiluje (chyba) zasób (widzę zmianę jego rozmiaru) i generuje błędy braku .

    Jak wymusić na kompilatorze nie_kompilowanie_zasobów?

    Delphi tego nie robił. Raz stworzony i skompilowany zasób mógł być wykorzystywany przy wielokrotnych kompilacjach projektu, bez zmiany jego zawartości.

    Dodano po 37 [minuty]:

    Zgłębiłem problem trochę bliżej.
    Kompilacja projektu projekt1.lpi tworzy kolejny plik zasobów projekt1.res. Więc kompilacja z opcją {$R projekt1.RES} nadpisuje istniejący plik zasobów jakąś nową wersją, której program nie czyta.
    Rozwiązałem problem stosując zupełnie inną nazwę pliku zasobów, który chcę użyć - np. zasoby.res i kompilując projekt z opcją {$R zasoby res} dostaję nowy plik projekt1.res, który program już czyta i nie wywala błędu EResNotFound.

    Nie wiem tylko dlaczego tak się dzieje i czy tak powinno być?
  • REKLAMA
  • #2 18288471
    Dżyszla
    Poziom 42  
    Posty: 7077
    Pomógł: 1095
    Ocena: 226
    Tak, plik zasobów projektu zawsze ma taką samą nazwą i jest tworzony przed etapem linkowania. Tak działa i Lazarus i Delphi. Dołączanie własnych plików res możliwe jest jak najbardziej, pod warunkiem, że nie będą one takie same jak nazwa projektu i plików formatek.
REKLAMA