[delphi-br] Ajuda de vocês, trabalhando com pacotes.

2006-08-28 Por tôpico Ricardo Lima Mariz
Pessoal tenho a seguinte situação:

Meu sistema é dividido em pacotes.

FormPrincipal.exe
Pacote1.Bpl
Pacote2.Bpl 
Pacote3.Bpl 
Pacote4.Bpl 
Pacote5.Bpl 
Pacote6.Bpl 
Pacote7.Bpl 
Pacote8.Bpl

Tenho uma classe x que é instanciada no formulário principal, essa classe tem 
algumas informações do tipo parametros do sistema, informações do usuário que 
está logado etc... ,porem essa classe precisa ser conhecida e acessada por 
todos os pacotes, alguem pode me dar uma ideia de como fazer os pacotes 
conhecerem e acessar essa classe no Form pincipal.

Obrigado a todos.

At.
Ricardo Lima

[As partes desta mensagem que não continham texto foram removidas]



-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [delphi-br] Ajuda de vocês, trabalhando com pacotes.

2006-08-28 Por tôpico Eduardo
Uma das maneiras seria vc criar uma variavel desta classe dentro da unit 
e na criacao vc passar esta classe como parametro. Como sempre vai 
receber o mesmo valor e estara apontando para o mesmo endereço de 
memoria isto não consome processamento.

Eduardo

Ricardo Lima Mariz escreveu:
 Pessoal tenho a seguinte situação:

 Meu sistema é dividido em pacotes.

 FormPrincipal.exe
 Pacote1.Bpl
 Pacote2.Bpl
 Pacote3.Bpl
 Pacote4.Bpl
 Pacote5.Bpl
 Pacote6.Bpl
 Pacote7.Bpl
 Pacote8.Bpl

 Tenho uma classe x que é instanciada no formulário principal, essa 
 classe tem algumas informações do tipo parametros do sistema, 
 informações do usuário que está logado etc... ,porem essa classe 
 precisa ser conhecida e acessada por todos os pacotes, alguem pode me 
 dar uma ideia de como fazer os pacotes conhecerem e acessar essa 
 classe no Form pincipal.

 Obrigado a todos.

 At.
 Ricardo Lima

 [As partes desta mensagem que não continham texto foram removidas]

  



___ 
Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. 
Registre seu aparelho agora! 
http://br.mobile.yahoo.com/mailalertas/ 
 



-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [delphi-br] Ajuda de vocês, trabalhando com pacotes.

2006-08-28 Por tôpico Marcos Douglas
A solução mais simples é utilizar compartilhar esta classe em todos os
pacotes. Pra isso utilize vinculo estático de pacotes, trabalhando
normalmente com a classe em cada unit.

--
Marcos Douglas

 Mensagem Original 
From: Ricardo Lima Mariz [EMAIL PROTECTED]
To: delphi-br@yahoogrupos.com.br
Sent: Seg, Agosto 28, 2006 11:19 am
Subject: Re: [delphi-br] Ajuda de vocês, trabalhando com pacotes.

 Pelo que vi acho a melhor opção utilizar interfaces, porem ocorre outro
 problema.

 Como consigo acessar os metodos/propriedades de um objeto conhecendo somente
 a inteface que o mesmo implementa.
   - Original Message -
   From: Elazar Dornelles Ceza
   To: delphi-br@yahoogrupos.com.br
   Sent: Monday, August 28, 2006 10:52 AM
   Subject: RES: [delphi-br] Ajuda de vocês, trabalhando com pacotes.


   Ricardo Lima

   [**]
   Pessoal tenho a seguinte situação:

   Meu sistema é dividido em pacotes.

   FormPrincipal.exe
   Pacote1.Bpl
   Pacote2.Bpl
   Pacote3.Bpl
   Pacote4.Bpl
   Pacote5.Bpl
   Pacote6.Bpl
   Pacote7.Bpl
   Pacote8.Bpl

   Tenho uma classe x que é instanciada no formulário principal, essa
   classe tem algumas informações do tipo parametros do sistema,
   informações do usuário que está logado etc... ,porem essa classe precisa
   ser conhecida e acessada por todos os pacotes, alguem pode me dar uma
   ideia de como fazer os pacotes conhecerem e acessar essa classe no Form
   pincipal.

   [*]


   Ao que entendi tenho duas sugestões.

   1-Voce pode usar uma interface para implementar esta classe
   2-Voce pode tornar este pacote principal como 'requerido' por todos os
   outros pacotes e usar o Uses com a unit que tem esta classe nas units
   dos outros pacotes...

   Atenc.

   Elazar



   ___
   O Yahoo! está de cara nova. Venha conferir!
   http://br.yahoo.com


 [As partes desta mensagem que não continham texto foram removidas]






-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





Re: [delphi-br] Ajuda de vocês, trabalhando com pacotes.

2006-08-28 Por tôpico Marcos Douglas
Vc tem que ter uma variável/instância do tipo da Interface, mas tem que dar
um Create com o tipo do Objeto.
Seguindo o código do Elazar, veja:
var
  Intf: IMinhaInterface;
begin
  Intf := TMinhaClasse.Create;
  Intf.Color := clBlue;
  {...}
end;

Vc tb pode definir a variável como um tipo de classe mas utilizar esta mesma
varivel para passar como parâmetro, mas utilizando-a como interface...  Vai
depender do seu problema.

--
Marcos Douglas

 Mensagem Original 
From: Ricardo Lima Mariz [EMAIL PROTECTED]
To: delphi-br@yahoogrupos.com.br
Sent: Seg, Agosto 28, 2006 12:08 pm
Subject: Re: [delphi-br] Ajuda de vocês, trabalhando com pacotes.

 Certo eu entendi como funiona, o problema é o seguinte, trabalho com pacotes
 vou ter um pacote que vai ter a interface IMinhaInterface, e tenho outros
 pacotes que vão implementar essa interface, agora como eu faço pra acessar um
 Objeto qualquer conhecendo somente a interface que ele implementa.

 Exemplo

 Tenho a imterface IMinhaInterface, e tenho o objeto MeuObjeto que implementa
 IMinhaInterface.

 Agora quero acessar um metodo do MeuOBjeto conhecendo somente
 IMinhaInterface.

 Algo do tipo IMinhaInterga(UmObjetoQualquer).MetodoDaInterface;

 Entendeu?
   - Original Message -
   From: Elazar Dornelles Ceza
   To: delphi-br@yahoogrupos.com.br
   Sent: Monday, August 28, 2006 11:49 AM
   Subject: RES: [delphi-br] Ajuda de vocês, trabalhando com pacotes.


   Ricardo

   [***]
   Pelo que vi acho a melhor opção utilizar interfaces, porem ocorre outro
   problema.

   Como consigo acessar os metodos/propriedades de um objeto conhecendo
   somente a inteface que o mesmo implementa.
   []


   Voce declara na Interface procedimentos/funções para ajustar/ler as
   propriedades.

   Ex.


   IMinhaInterface = Interface
   function GetColor : TColor;
   procedure SetColor( Value : Tcolor);
   property Color : TColor read GetColor write Setcolor;
   end;

   TMinhaClasse = class( TInterfacedObject, IMinhaInterface)
   private
  FColor : TColor;
   protected
   public
   function GetColor : TColor;
   procedure SetColor( Value : TColor);
   end;

   { TMinhaClasse }
   function TMinhaClasse.GetColor: TColor;
   begin
 Result := FColor;
   end;

   procedure TMinhaClasse.SetColor(Value: Tcolor);
   begin
   FColor := Value;
   end;


   Atenc.
   Elazar;



   ___
   Yahoo! Acesso Grátis - Internet rápida e grátis. Instale
   o discador agora!
   http://br.acesso.yahoo.com


 [As partes desta mensagem que não continham texto foram removidas]






-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





RES: [delphi-br] Ajuda de vocês, trabalhando com pacotes.

2006-08-28 Por tôpico Elazar Dornelles Ceza
Ricardo; Marco Douglas;

[]
Vc tem que ter uma variável/instância do tipo da Interface, mas tem que
dar
um Create com o tipo do Objeto.

Seguindo o código do Elazar, veja:
var
  Intf: IMinhaInterface;
begin
  Intf := TMinhaClasse.Create;
  Intf.Color := clBlue;
  {...}
end;

Vc tb pode definir a variável como um tipo de classe mas utilizar esta
mesma
varivel para passar como parâmetro, mas utilizando-a como interface...
Vai
depender do seu problema.

[]


Isso ai.

Um acrescimo:

Voce poderia ter nos seus pacotes (não o principal) um procedimento do
tipo

Procedure CarregarModulo( Objeto : IMinhaInterface);

Ai a cada modulo carregado ou ao momento que achar necessário o pacote
utilizar dos procedimento da interface, voce chama este procedimento
passando como parametro o objeto instanciado, como mostra o douglas;


Ex..

  No pacote..
  
  {}
  Procedure CarregarObjeto(Objeto : IMinhaInterface);
  
  Exports
CarregarObjeto;

  Procedure CarregarObjeto(Objeto : IMinhaInterface);
  begin
vObjeto := Objeto;
  end;


  {**
  quando for utilizar alguma coisa do objeto no pacote voce usa
   
  vObjeto.Color := clWhite //por exemplo.
  ***}
  

  {*
  no principal, ou no exe voce cria o objeto como o dougas demostra e
depois 
  faz uma chamada ao procedimento CarregarObjeto dos pacotes passando o
mesmo como parametro,
  assim os pacotes 'podem' usar os procedimentos do objeto.

  Da pra usar o GetProccAddress pra pegar uma referencia ao procedimento
CarregaObjeto definido nos pacotes (como se usa com as dll´s)  
  **}



___ 
Yahoo! Acesso Grátis - Internet rápida e grátis. Instale 
o discador agora! 
http://br.acesso.yahoo.com


-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html