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