Avatar billede neeo Nybegynder
11. maj 2006 - 15:22 Der er 13 kommentarer og
1 løsning

nem sprg vedr function

Jeg skal kalde en funktion som skal returenere 3 værdier tilbage til mig......

Private sub Default
Dim y as integer,x as integer,z as integer
x= 0
y= 0
z= 0 
beregn(x,y,z)
msgbox x
msgbox y
msgbox z
end sub

Public function Beregn(x as integer,y as integer,z as integer)

x=6
y=76
z=23
end function


er det her megt forkert måde at lave det på ?
vil mgbox y,x,z ikke retunere de værdier der bliver indtastet i beregn funktionen ?
Avatar billede nielle Nybegynder
11. maj 2006 - 21:14 #1
Nej, det vil den ikke for x,t og z overføres nemlig som kopier, og ikke som variablene selv. Prøv med dette i stedet:

Public function Beregn(ByRef x as integer, ByRef y as integer, ByRef z as integer)
Avatar billede sjh Nybegynder
11. maj 2006 - 22:44 #2
Private Sub Form_Load()
Dim y As Integer, x As Integer, z As Integer
x = 0
y = 0
z = 0

' Brug:
' Call Beregn(x, y, z)

' eller:
' Beregn x, y, z

MsgBox x
MsgBox y
MsgBox z
End Sub

' Som standart er x, y, z ByRef
Public Sub Beregn(x As Integer, y As Integer, z As Integer)
  x = 6
  y = 76
  z = 23
End Sub
Avatar billede nielle Nybegynder
11. maj 2006 - 22:49 #3
> Som standart er x, y, z ByRef

Både og... i VB6 var default ByRef, i VB.NET er default ByVal.
Avatar billede sjh Nybegynder
11. maj 2006 - 22:52 #4
Når ja men nu er vi altså i kategorien -> Visual Basic <- og ikke VB.NET ;)
Avatar billede nielle Nybegynder
11. maj 2006 - 22:55 #5
Korrekt, men det garaentere ikke på nogen måde at folk ikke stiller deres VB.NET spørgsmål her.
Avatar billede nielle Nybegynder
11. maj 2006 - 23:01 #6
... og i øvrigt heller ikke i mod at folk giver VB.NET svar her ;^)
Avatar billede sjh Nybegynder
11. maj 2006 - 23:08 #7
Nææ.. men de kan jo lige så godt bruge den rigtige kategori.. hvis det er VB.NET så er det her:

http://www.eksperten.dk/spm/Programmering/Visual-Basic-NET

Det betyder sikkert ikke så meget for dem som både bruger VB6 og VB.NET men jeg bruger altså kun VB6 så jeg kan ikke se om koden skulle stamme fra VB.NET eller VBA.. med mindre det er en kode som ikke ligner noget fra VB6 eller VBA
Avatar billede sjh Nybegynder
11. maj 2006 - 23:22 #8
det er selfølige her:
http://www.eksperten.dk/spm/Programmering/Visual-Basic-NET/ (ekspertens htaccess-file virker vist ikke helt)
Avatar billede neeo Nybegynder
15. maj 2006 - 09:16 #9
hvad betyder ByRef egentiligt ?
Avatar billede neeo Nybegynder
15. maj 2006 - 09:25 #10
det virker ikke det der byref ?
Avatar billede neeo Nybegynder
15. maj 2006 - 09:28 #11
den melder jo syntax error ?
Avatar billede fizz Nybegynder
15. maj 2006 - 16:36 #12
byref betyder at den overfører en reference til din variabel i den function som kalder den.
byvel betyder at du overfører værdien af den variabel i den function som kalder den.

er det en reference du overfører arbejder man sådan set med variablen fra den kaldende function, smart ik? ;-)
Avatar billede nielle Nybegynder
15. maj 2006 - 17:41 #13
Der burde bestemt ikke komme nogen compile-fejl, hvis det er det ovenstående kode du til retter. ByRef vil imidlertid fejle hvis det er en konstant du kander funktionen med.

Hvordan ser den kode hvor du får compile-fejl ud?
Avatar billede nielle Nybegynder
01. juni 2006 - 22:13 #14
Lukketid?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester