FUNCAO QUE RETORNA 2 VALORES

EPISCOPAL 03/12/2009 21:33:44
#329114
Boa noite gente ...

Como faço para fazer uma função que retorne dois valores???? exemplo:

Function Soma (Valor as integer) as integer

X = Valor * 2
Y = Valor +5

End Function

Eu preciso que a função retorne os valores X e Y .....

Seria uma função tipo matriz !!!!!
EDERMIR 03/12/2009 21:46:00
#329115
public function SOMA(VALOR AS INTEGER)
X=VALOR*2
Y=VALOR+5
SOMA = X & [Ô]|[Ô] & Y
end function

Wresposta = split(SOMA(49),[Ô]|[Ô])
Wresposta(0) [ô]é o resultado de X
Wresposta(1) [ô]é o resultado de Y
EPISCOPAL 03/12/2009 22:26:40
#329118
Excelente exemplo .......... nao conhecia este comando SPLIT ....


So q meu programa ta assim:

____________________________________________________________________________________

Dim PageTXT As Object
Set PageTXT = New clsEstatística


ContaSeção = PageTXT.SeçãoPágina ??????????


_____________________________________________________________________________________

DENTRO DA MINHA CLSESTATÍSTICA TA ASSIM:

Public Function SeçãoPágina()

Load DlgContaPágina
SeçãoPágina = Split (DlgContaPágina.SeçãoPagina, [Ô]|[Ô])
SeçãoPágina(0)
SeçãoPágina(1)
?????????????
Unload DlgContaPágina

End Function


___________________________________________________________________
DENTRO DO DLGCONTAPÁGINA TA ASSIM:

FUNCTION SEÇÃOPAGINA

[ô]CODIGOS DIVERSOS
[ô]PARA SE CHEGAR OS VALORES NECESSARIOS

SeçãoPagina = sPagina & [Ô]|[Ô] & ValueScroll



END FUNCTION




DEU ERRO: era esperado uma matriz
EPISCOPAL 03/12/2009 22:29:30
#329119
OCELOT ............. EU JA PENSEI NISSO .............. SÓ QUE FICARIA LERDO O PROGRAMA .............


SE VOLTAR DOIS VALORES VAI SER MAIS RÁPIDO ....

VALEU!!!
EPISCOPAL 03/12/2009 22:37:13
#329120
Citação:

Wresposta = split(SOMA(49),[Ô]|[Ô])
Wresposta(0) [ô]é o resultado de X
Wresposta(1) [ô]é o resultado de Y




Tem que declarar estas matrizes??????
Dim Wresposta (0 to 1) as String

????
EDERMIR 04/12/2009 08:40:04
#329132
Resposta escolhida
Citação:

WOLFFIRE escreveu:
Wresposta = split(SOMA(49),[Ô]|[Ô])
Wresposta(0) [ô]é o resultado de X
Wresposta(1) [ô]é o resultado de Y


Tem que declarar estas matrizes??????
Dim Wresposta (0 to 1) as String

????



Não precisa declarar as matrizes.
O comando SPLIT vai separar uma string em uma matriz. A string deve cnter [Ô]separadores[Ô] (no meu exemplo é o caracter [Ô]|[Ô]).
Note que eu retornei 2 valores, portanto a matriz tem o valor 0 e 1. Se o retorno fossem 5 valores teríamos 0,1,2,3,4.

Load DlgContaPágina
SeçãoPágina = Split (DlgContaPágina.SeçãoPagina, [Ô]|[Ô])
SeçãoPágina(0)
SeçãoPágina(1)
?????????????
Unload DlgContaPágina

Seu código tem um erro. O RETORNO da função é a matriz. então:
Load DlgContaPágina
RETORNO = Split (DlgContaPágina.SeçãoPagina(NUMERO DESEJADO), [Ô]|[Ô])
msgbox(RETORNO(0))
msgbox(RETORNO(1))
Unload DlgContaPágina
EPISCOPAL 04/12/2009 22:21:11
#329196
Option Explicit

Private Sub Command1_Click()

Dim Valor() As String

Valor = Split(TesteNumero(Text1.Text, Text2.Text), [Ô]|[Ô])
MsgBox (Valor(0))
MsgBox (Valor(1))

End Sub

Private Function TesteNumero(Valor1 As Integer, Valor2 As Integer) As String

Dim A, B As Integer

A = Valor1 * 10
B = Valor2 + 5

TesteNumero = A & [Ô]|[Ô] & B

End Function

Private Sub Form_Load()

Text1.Text = 10
Text2.Text = 10

End Sub



Citação:

eu fiz um teste e funcionouuuuu

EPISCOPAL 04/12/2009 22:24:35
#329197
Citação:

EDERMIR

................ AKI TAVA DANDO ERRO PORQUE MINHA FUNÇÃO ESTAVA DECLARADA PARA VOLTAR UM VALOR [Ô]INTEGER[Ô] ..... DEPOIS MUDEI PARA STRING ............ AI SIM DEU CERTO .......

AQUELA CONCATENAÇÃO ERA UMA STRING E NAO DADO NUMERICO ...............


VALEU MUITO A DICAAAAA .............. OBRIGADOOOOOO
Tópico encerrado , respostas não são mais permitidas