Fórum duvida de iniciante #373767
19/08/2009
0
Obrigado
Felipeiw
Curtir tópico
+ 0Post mais votado
19/08/2009
Agora vamos supor que vc adiciona um novo form no projeto....
se vc for declarar um metodo que utilize uma dessas classes por exemplo
Function GetClasse:TMinhaClasse1;
Para isto funcionar [b:fa93622e5d]obrigatoriamente[/b:fa93622e5d] tem q ser declarado MinhasClasses na [b:fa93622e5d]USES da interface[/b:fa93622e5d] .
Agora se vc fizer o seguinte
Function GetClasse:string; begin result := TMinhaClasse1.Nome; end;
Neste caso tanto faz se vc declarou na uses Interface ou Implementation.
--------------------------------------------
o bloco funciona visualmente assim
unit Unit1;
interface <---- tudo daqui p baixo pertence ao inteface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type <- tudo que usar aqui no type tem que estar
TForm1 = class(TForm) no uses da inteface (repare que o outro
private uses nem foi verificado ainda)
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses
MinhasClasses; <- Classes declaradas aqui não serão usadas daqui
para cima, e sim somente daqui p baixo
{$R *.dfm}
end.
------------------------------------------------------------------------
Osocram
Gostei + 1
Mais Posts
19/08/2009
Osocram
´Estruturalmente´ dizendo:
Tudo que esta abaixo do uses é o escopo dele....
Explicando melhor Se vc vai usar uma variavel public no seu form (veja q essa declaração fica entre os 2 uses). Então ele esta dentro do escopo do primeiro uses mas esta fora do escopo do segundo. Então vc teria que declarar no primeiro uses.
Resumindo se vc quer usar classes somente nas implementações usa somente no segundo uses.
Se precisar da classe na Declaração tbm então usa no primeiro uses.
Basicamente é isso.
Tem o detalhe tbm da hora em que eles são instanciados. Mas não sei bem na teoria... so sei no Achometro como deve funcionar.
Mas o que puder declarar no segundo uses seria melhor.
Gostei + 0
19/08/2009
Felipeiw
Abs
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)