Pytanie w sprawie delphi, compiler-errors, delphi-xe – Jak przekompilować modyfikacje do pliku źródłowego VCL (Menus.pas)?

8

Mamy zmodyfikowane menu.pas.

W

<code>uses ...,Controls,...;
</code>

Kompilator zgłosił błąd krytyczny:

[DCC Fatal Error] Menus.pas (*): F2051 Unit Controls został skompilowany z inną wersją Menus.TPopupMenu

wypróbowany:

usunięto wszystkie dcu w projekcie.

budować

buduj wszystko

próbowałem dodać plik do ścieżki biblioteki, która prowadzi do dodania folderu db (także z vcl), a następnie do

[Błąd DCC] jpeg.pas (872): E2065 Niezadowolony przekaz lub deklaracja zewnętrzna: „jpeg_save_markers”

co jest ślepym zaułkiem.

usunięto control.dcu (wszystkie 3), a delphi nie wiedziały automatycznie, jak je ponownie skompilować, zamiast tego zgłosiły brak kontrolek.

Lepiej nie zmieniaj żadnego pliku w żadnym domyślnym folderze delphi. Umieść wszystkie zmodyfikowane pliki źródłowe w swoim własnym folderze i umieść ten folder w ścieżce wyszukiwania opcji projektu (lub w ścieżce biblioteki w opcjach, jeśli jesteś pewien, że zawsze użyjesz zmodyfikowanych plików). Sertac Akyuz
Podobne pytania,Jak ponownie skompilować konkretną jednostkę z VCL? iCzy mogę ponownie skompilować pliki .PAS używane przez IDE Delphi? iJak załatać metodę w Classes.pas. Odpowiedź Davida jest bardziej na temat, chociaż informacja na temat ręki. LU RD
IIRC, jeśli zmodyfikujesz plik ze źródła delphi, musisz przekompilować wszystko w określonej kolejności, nigdy tego nie zrobiłem ... ComputerSaysNo
Musisz się upewnić, że nie modyfikujesz sekcji interfejsu. Może być również konieczne jawne ustawienie opcji kompilatora na początku zmodyfikowanego pliku Menus.pas. Ustaw je na domyślne opcje Delphi. Dowiedz się, czym one są, tworząc nowy projekt i naciśnij Ctrl + O O David Heffernan

Twoja odpowiedź

1   odpowiedź
12

Utwórz kopię pliku w strukturze projektu. Dodaj plik do swojego projektu lub upewnij się, że ścieżka wyszukiwania znajdzie zmodyfikowany plik.Dokonuj modyfikacji, ale tylko w sekcji implementacji. Nie możesz modyfikować sekcji interfejsu, jeśli używasz innych jednostek, które same używają modyfikowanej jednostki.Jawnie ustaw opcje kompilatora na górze zmodyfikowanego pliku źródłowego. Użyj domyślnych opcji Delphi, które można znaleźć, naciskając CTRL + O O w domyślnym projekcie waniliowym.

Domyślam się, że jeden z dwóch ostatnich punktów jest tym, co cię potyka.

nowa procedura została dodana w xe: CloseMenu. none
@kobik Moje jednostki właśnie mają{$R-,T-,H+,X+}. Podejrzewam, że opcje kompilacji moich projektów są wyrównane ze wszystkimi innymi. Dodanie pełnej strony, np.{$A+,B-,C+,D+,E-,F-,G+,H+,I+,J+,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-‌​,U-,V+,W-,X+,Y+,Z1}. Ale nie potrzebujesz więcej niż myślę. David Heffernan
To jest to, co mam, kiedy naciskałemCTRL+O O w pustym projekcie. Nie wiedziałem o domyślnej dyrektywie kompilatora w zmodyfikowanym VCL. dzięki! kobik
@David, czy powinienem dodać{$MINSTACKSIZE $00004000}, {$MAXSTACKSIZE $00100000}, {$IMAGEBASE $00400000} domyślnie? lub tylko domyślne$A+,B-,C+,D+,E-,F-,G+,H+,I+,J+,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1} (Delphi 5) - który jest generowany za pomocąCTRL+O O. kobik

Powiązane pytania