Fórum Componente do Delphi 5 para o Delphi 6 #221680

23/03/2004

0

Seguinte galera...
estou com um problema... eu tenho um componente que era para o Delphi3. Dai foi feita as devidas auterações para que o componente fosse aceito no Delphi5. Agora eu preciso desse mesmo componente no delphi 6.
Eu já fiz uma pesquisa aqui no fórum, e solucionei alguns problemas, mas agora surgiu um outro que eu achei uma solução, mas não gostaria de aplicá-la.

Eu sei que existem units que mudaram de nome e foram divididas. Então, essa parte eu fiz. Renomeei as units, e também adicionei a DCP designide.dcp na package do meu componente. A partir disso, eu consegui instalar o componente, compilar a package e também colocar o componente na form.

Mas me surgiu um outro problema. Ele não deixa eu compilar o projeto porque ele precisa do proxies.dcu. Como eu tenho o delphi 5, tratei de colocar num caminho qualquer essa DCU e colocar esse caminho no SearchPath. Mas ao compilar, ele pede agora o arquivo Proxies.pas.

Dai eu pensei como para a package. Adicionei o DCP no meu projeto, mas como não tem um ´Required´ para o projeto, eu coloquei o DCP para ´compilar com packages em tempo de execução´, ou, selecionei a opção ´Build with runtime packages´, fazendo assim com que o projeto seja executado corretamente, ou, ele compila e gera o executável.

Mas como eu tenho o delphi, não tive problema algum. Mas ao testar numa máquina sem Delphi, o aplicativo requisitou as BPL´s rtl60.bpl, vcl60.bpl e designide60.bpl.
Então pra solucionar o problema, coloquei as BPL´s junto ao aplicativo, e funcionou tudo ok.

Mas essa solução eu não queria adotar, porque dai eu preciso mandar esses arquivos (BPL´s) junto com o executável.

Será que alguém sabe alguma alternativa para o caso?

obrigado..


Rafael Heise

Rafael Heise

Responder

Posts

07/04/2004

Larry

Oi,

Estou com esse mesmo problema: D3 para D6 - proxies.pas não existe.
Você consegui solucionar? como?

Abraços.

Seguinte galera... estou com um problema... eu tenho um componente que era para o Delphi3. Dai foi feita as devidas auterações para que o componente fosse aceito no Delphi5. Agora eu preciso desse mesmo componente no delphi 6. Eu já fiz uma pesquisa aqui no fórum, e solucionei alguns problemas, mas agora surgiu um outro que eu achei uma solução, mas não gostaria de aplicá-la. Eu sei que existem units que mudaram de nome e foram divididas. Então, essa parte eu fiz. Renomeei as units, e também adicionei a DCP designide.dcp na package do meu componente. A partir disso, eu consegui instalar o componente, compilar a package e também colocar o componente na form. Mas me surgiu um outro problema. Ele não deixa eu compilar o projeto porque ele precisa do proxies.dcu. Como eu tenho o delphi 5, tratei de colocar num caminho qualquer essa DCU e colocar esse caminho no SearchPath. Mas ao compilar, ele pede agora o arquivo Proxies.pas. Dai eu pensei como para a package. Adicionei o DCP no meu projeto, mas como não tem um ´Required´ para o projeto, eu coloquei o DCP para ´compilar com packages em tempo de execução´, ou, selecionei a opção ´Build with runtime packages´, fazendo assim com que o projeto seja executado corretamente, ou, ele compila e gera o executável. Mas como eu tenho o delphi, não tive problema algum. Mas ao testar numa máquina sem Delphi, o aplicativo requisitou as BPL´s rtl60.bpl, vcl60.bpl e designide60.bpl. Então pra solucionar o problema, coloquei as BPL´s junto ao aplicativo, e funcionou tudo ok. Mas essa solução eu não queria adotar, porque dai eu preciso mandar esses arquivos (BPL´s) junto com o executável. Será que alguém sabe alguma alternativa para o caso? obrigado..



Responder

Gostei + 0

07/04/2004

Rafael Heise

de certa forma sim.. e está explicado na mensagem que eu postei... mas eu não achei a solução a melhor de todas... então, fica no ar, existe outra alternativa para solucionar o problema?


Responder

Gostei + 0

07/04/2004

Cebikyn

A unit Proxies foi removida propositalmente do Delphi 6, pois muitos programadores usavam-na de maneira indevida. A referida unit contém códigos para design-time, e não run-time, mas muitos usavam de forma aleatória, sem se atentar a este detalhe. Para solucionar o problema, o componente deve ser dividido em dois packages, um apenas para a parte design-time e outro para run-time. Esta é a solução oficial, apresentada pela Borland, no site: http://community.borland.com/article/0,1410,27717,00.html

Mas existe uma solução que burla este novo sistema, foi apresentada pelo Nildo, e consiste em criar a unit Proxies.pas, da seguinte forma:

unit Proxies;

interface

Function IsProxyClass(ComponentClass: TClass): Boolean;

implementation

Function IsProxyClass(ComponentClass: TClass): Boolean;
begin
   Result := True;
end;

end.


Após criar a unit como apresentado, basta salva-la em algum lugar acessivel pelo Search Path (C:\...\Delphi\Lib, por exemplo).


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar