..ESQUECI O SEGUINTE..

var
valor: IMeusValores;

begin

valor := MinhaFuncao(1).Value;
{** ..OU..
valor := TForm( MinhaFuncao(1).Value );
**}

end;


..OBS.: SE VC QUER UMA FUNÇÃO QUE RETORNE TIPOS PRIMITIVOS
OU OBJETOS, NÃO ADIANTA, VAI TER QUE USAR TYPECAST!! SENÃO,
VC JÁ QUER DEMAIS, NÉ!! RSRS.. VALEU!!!



--- Em delphi-br@yahoogrupos.com.br, "Filipe Belchior"
<[EMAIL PROTECTED]> escreveu
>
> olá..
> 
> ..use interface.. tipo assim..
> 
> 
> 
> IMeusValores = Interface
>   function GetValue: Variant;
>   procedure SetValue(Value: Variant);
>   property Value: Variant read GetValue write SetValue;
> end;
> 
> TValue = class(TInterfacedObject, IMeusValores)
> private
>   FValue: Variant;
>   function GetValue: Variant;
>   procedure SetValue(Value: Variant);
> public
>   property Value: Variant read GetValue write SetValue;
> end;
> 
> {**
> ..OU, QUALQUER CLASSE, SEM SER "TInterfacedObject",
> DESDE QUE, IMPLEMENTE OS MÉTODOS DE "IInterface",
> E ALÉM DISSO, IMPLEMENTE, NO CASO, "IMeusValores"
> **}
> 
> TMeuFormValores = class(TForm, IMeusValores)
> private
>   FValue: Variant;
>   function GetValue: Variant;
>   procedure SetValue(Value: Variant);
> public
>   property Value: Variant read GetValue write SetValue;
> end;
> 
> 
> implementation
> 
> 
> function MinhaFuncao(Parametro: ?????): IMeusValores;
>  var
>   v: IMeusValores;
> begin
>  v := TValue.Create;
>  {** ..OU..
>  v := TMeuFormValores.Create( Application );
>  **}
>  
>  Result := v;
> end;
> 
> 
> 
> ..ESTUDE INTERFACES, É LEGAL! RSRS
> 
> []s
> 
> FILIPE BELCHIOR
> 
> 
> 
> --- Em delphi-br@yahoogrupos.com.br, "Andre Mesquita"
> <[EMAIL PROTECTED]> escreveu
> >
> > experimente Variant, OLEVariant, e afins...
> > 
> > 
> > ----- Original Message ----- 
> > From: "Jônatas Renan" <[EMAIL PROTECTED]>
> > To: <delphi-br@yahoogrupos.com.br>
> > Sent: Friday, August 11, 2006 4:44 PM
> > Subject: [delphi-br] Não sei como resolver, se com apontadores ou
> typecast 
> > ou sei la oque...
> > 
> > 
> > Preciso que uma função retorne uma variável que varie de tipo....
> > 
> > Alguns exemplos de uso que não devem gerar excessões:
> > 
> >     showmessage(MinhaFuncao(ParametroParaQueORetornoSejaString));
> > 
> >     x := 1 + MinhaFuncao(ParametroParaQueORetornoSejaInteiro);
> > 
> >     Form := MinhaFuncao(ParametroParaQueORetornoSejaForm);
> > 
> > é possível em pascal??
> > 
> > como fica o escopo da function?
> > 
> > Usaria ponteiros???
> > 
> > Desde Já grato!!!
> > 
> > -- 
> >    =====================
> >      Jônatas Renan - Freaker
> >    MSN: [EMAIL PROTECTED]
> >   Instituto Damone de Softwares
> >    =====================
> > 
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> > 
> > 
> > 
> > -- 
> > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> > 
> > 
> > 
> > Links do Yahoo! Grupos
> >
>






-- 
<<<<< 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

 


Responder a