Pergunta sobre compiler-errors, delphi, delphi-xe – Como recompilar modificações no arquivo de origem da VCL (Menus.pas)?

8

Nós temos um menus.pas modificado.

No

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

O compilador levantou um erro fatal:

[Erro Fatal do DCC] Menus.pas (*): O F2051 Unit Controls foi compilado com uma versão diferente do Menus.TPopupMenu

tentou:

excluiu todos os dcu do projeto.

construir

construir tudo

tentei adicionar o arquivo ao caminho da biblioteca que leva a adicionar pasta db (do vcl também) e, em seguida,

[Erro do DCC] jpeg.pas (872): E2065 Declaração direta ou externa não satisfeita: 'jpeg_save_markers'

que é um beco sem saída.

excluiu o controls.dcu (todos os 3) e o delphi não sabia automaticamente para recompilá-los, em vez disso relatou que controls.dcu está faltando.

@TLama em delphi 2009 e xe2 funcionou perfeitamente. none
Você também pode trazer 'controls.pas'? Sertac Akyuz
Então, você modificou oMenus.pas na pasta de origem do Delphi? Você precisa notar que a depuração e o tempo de execução*.dcu arquivos são armazenados no diretório .. \ lib e, opcionalmente, subdiretórios (eu tenho apenas Delphi 2009 à mão neste momento, então pode ser um pouco diferente) TLama
Mas o que você está tentando é perfeitamente viável. Eu faço exatamente isso para corrigir os muitos bugs em Menus.pas. David Heffernan

Sua resposta

1   a resposta
12

Faça uma cópia do arquivo na estrutura do seu projeto. Adicione o arquivo ao seu projeto ou verifique se o caminho de pesquisa localiza o arquivo modificado.Faça modificações, mas apenas na seção de implementação. Você não pode modificar a seção da interface se usar outras unidades que usem a unidade que você está modificando.Defina explicitamente as opções do compilador na parte superior do arquivo de origem modificado. Use as opções Delphi padrão, como encontradas pressionando CTRL + OO em um projeto padrão.

Eu acho que um dos dois pontos finais é o que está te enganando.

@kobik Minhas unidades só tem{$R-,T-,H+,X+}. Eu suspeito que minhas opções de compilação de projetos se alinham com todas as outras. Não vai doer adicionar um site completo, por exemplo{$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}. Mas você não precisa mais do que isso. David Heffernan
@ David, devo adicionar o{$MINSTACKSIZE $00004000}, {$MAXSTACKSIZE $00100000}, {$IMAGEBASE $00400000} padrões também? ou apenas o padrão$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) - que é gerado comCTRL+O O. kobik
um novo procedimento foi adicionado no xe: CloseMenu. none
Bem, isso é o que eu tenho quando pressionoCTRL+O O em um projeto em branco. Eu não estava ciente sobre a diretiva de compilador padrão em uma VCL modificada. obrigado! kobik

Perguntas relacionadas