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