Fórum Modurização com Packages usando Herança de formulários #295402
13/09/2005
0
Olá pessoal. Tudo bem? Sou novo no fórum e tenho algumas dúvidas sobre packages e heranças de formulário.
Eu estou desenvolvendo um protótipo para um novo sistema porém, estou tendo problemas na simples formulação de packages com herança de formulários. Para exemplificar melhor, descreverei o protótipo nas linhas abaixo.
1) Aplicação EXE que contem os menus de acesso as packages
2) Package A (padrão), contendo o formulário de cadastro padrão.
3) Package B (Herdado do padrão)
Nesse pequeno exemplo, posso demonstrar minha dúvida. Sei que adicionando o .dcp gerado pelo package A no package B posso utilizar a herança já que fiz a referência do package padrão. Porém, não está funcionando.
Na linha de código abaixo, faço referência a classe que quero herdar as características.
type TFormPkgB = class(TFormPkgA)
Em teoria, e baseado em alguns exemplo coletados da internet, seria só isso. Mas... não está funcionando. Alguém podia me ajudar? Estou fazendo algo errado?
Grato desde já!
Eu estou desenvolvendo um protótipo para um novo sistema porém, estou tendo problemas na simples formulação de packages com herança de formulários. Para exemplificar melhor, descreverei o protótipo nas linhas abaixo.
1) Aplicação EXE que contem os menus de acesso as packages
2) Package A (padrão), contendo o formulário de cadastro padrão.
3) Package B (Herdado do padrão)
Nesse pequeno exemplo, posso demonstrar minha dúvida. Sei que adicionando o .dcp gerado pelo package A no package B posso utilizar a herança já que fiz a referência do package padrão. Porém, não está funcionando.
Na linha de código abaixo, faço referência a classe que quero herdar as características.
type TFormPkgB = class(TFormPkgA)
Em teoria, e baseado em alguns exemplo coletados da internet, seria só isso. Mas... não está funcionando. Alguém podia me ajudar? Estou fazendo algo errado?
Grato desde já!
Eliseu_corrona
Curtir tópico
+ 0
Responder
Posts
14/09/2005
Will_smith
e ae Eliseu...blz??!!!
tbm estava com algumas duvidas sobre packages e classes...e veja o que encontrei no sistema http://www.delphi.about.com. Abaixo segue um exemplo de herança em modularização(form2 e form3).
espero que tenha ajudado!!!
William P.Stos
8)
tbm estava com algumas duvidas sobre packages e classes...e veja o que encontrei no sistema http://www.delphi.about.com. Abaixo segue um exemplo de herança em modularização(form2 e form3).
Class Inheritance The first way to call your methods is to first define a base class that holds your method calls. This is the more traditional way of doing thing and generally works for all flavours of Delphi. For the purpose of illustration we´ll create a new form that we use as template called TForm2 in Unit2. Here we add custom methods as blank virtual methods (methods with no actual code in them) or as abstract virtual – in our example it´s a procedure called "MyCustomCall". This unit and form is then compiled into a package – in this case called Package1. This package then becomes our common package – our application will "compile with" it, and the dynamically loaded package will "require" it. Secondly we´ll create a new form (TForm3 in Unit3) that inherits from the template form (TForm2) and override the custom methods. We will also remember to call ´RegisterClass(TFrom3)´ in the unit´s initialization section. We then compile this unit and form into a new package that we will dynamically load (Package2). The application will then "compile with" Package1 and dynamically load Package2. To use our custom method we do something like this: var PackageModule: HModule; AClass: TPersistentClass; begin PackageModule := LoadPackage(´Package2.bpl´); if PackageModule <> 0 then begin AClass := GetClass(´TForm3´); // create inherited class if AClass <> nil then with TComponentClass(AClass).Create(Application) as TForm2 do // type as base class begin MyCustomCall; // the custom call here ShowModal; Free; end; UnloadPackage(PackageModule); end; end;
espero que tenha ajudado!!!
William P.Stos
8)
Responder
Gostei + 0
14/09/2005
Eliseu_corrona
Fala seu William ,tudo blz meu amigo?
Grato pela ajuda. Irei testar e postarei um exemplo certinho de como fazer isso.
Obrigado pela ajuda.
Abraços.
Eliseu.
Grato pela ajuda. Irei testar e postarei um exemplo certinho de como fazer isso.
Obrigado pela ajuda.
Abraços.
Eliseu.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)