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