então não é possível eu usar um retorno de função que possa ser string e ao
mesmo tempo um filho de Tobject????



Em 11/08/06, Filipe Belchior <[EMAIL PROTECTED]> escreveu:
>
> ..OPS, ERREI!!
>
> O CERTO É..
>
>
> var
> valor: IMeusValores;
> form1: TFORM;
>
> begin
>
> valor := MinhaFuncao(1);
> showmessage( valor.Value );
>
> {** ..OU..
> form1 := TForm( MinhaFuncao(1));
> showmessage( form1.Value );
> **}
>
> end;
>
>
>
>
> --- Em delphi-br@yahoogrupos.com.br, "Filipe Belchior"
> <[EMAIL PROTECTED]> escreveu
> >
> > ..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
> > > >
> > >
> >
>
>
>
>
>
> 
>



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

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