Znaleziono 1 wynik

autor: djronin
17 sty 2018, 17:58
Forum: Mach 2 / 3 / 4 (ArtSoft software)
Temat: VB Script nie mogę zwrócić nic w funkcji
Odpowiedzi: 3
Odsłony: 867

Re: VB Script nie mogę zwrócić nic w funkcji

Function Probe(ByVal X As Integer, ByVal Y as Integer) As Double
Ten kawałek tworzy funkcje i określa jej parametry wejściowe, lecz w tej formie raczej się nie zda.
Function Probe(ByVal X As Integer, ByVal Y as Integer) As Double

komenenda Function tworzy funkcję po niej podajemy nazwę funkcji nasze Probe i jeśli funkcja Probe przyjmuje jakieś zmienne deklarujemy je w nawiasie jeśli nie zostawiamy pusty nawias ( Function Probe() )
w Twoim przykładzie zainicjowałeś tylko dwie zmienne i to ostatnie As Double jakby zbędnne..
Pozatym widzę że przekazujesz funkcji zmienne dla wartości x y i jako typ danych wskazujesz na Integer co mi średnio pasuje z racji narury tego typu znaków. W dużym skrócie to typy danych wyglądają następująco (ich część (to nie poradnik :)):

kilka typów zmiennych, ich nazwa i zakres:

liczby zmiennoprzecinkowe np -123.765, 999.999
Single = –3.402823538 do 3.402823538
Double = –1.79769313486231570308 do 1.79769313486231570308

liczby całkowite: -1, -4, 8, 100, 1000
Long = –9,223,372,036,854,775,808 do 9,223,372,036,854,775,807
Integer = –2,147,483,648 do 2,147,483,647

String = łańcuch znaków np "www.cnc.info.pl"
char = przechowuje pojedyńczy znak np : 'a'

byte = 0..255 jeden bajt pamięci
Boolean = True, False (logiczne zero lub jedynka logiczna 0, 1)

Deklarując zmienne typu integer dla osi XY w funkcji Probe ograniczasz dokładność danych do 1 co nie jest raczej pożądane.
lepiej zastosować single albo double.

Dim ZPos as Double ' Nic nie daje
Choć wydawać się może, że ten kod nie działa, tak naprawdę jest jak najbardziej poprawny i działa.
Dim to deklaracja zmiennej
ZPos nazwa zmiennej
as przypisanie typu zmiennej
double typ zmiennej
ZPos = GetOEMDRO (802) 'Get Z
tutaj do zmiennej zpos została wprowadzona wartość pozycji osi Z
Return ZPos <- SYNTAX ERROR zaznacza mi zmienną
End Function
w ten sposób nie wyświetlisz wartości ZPos
możesz wykorzystać komendę MsgBox i jako jej jedyny argument podać jakiś text w cudzysłowiu, lub zmienną bez cudzysłowia np
MsgBox "hello world"
MsgBox "Pozycja Z: " & ZPos & "mm"

a to że jakaś komenda lub funkcja zwraca coś to wyglądać mże to np:

Kod: Zaznacz cały

Public Sub MsgPrint (ByVal sMsg As String, ByVal iType As Integer, ByVal sTitle As String)
    iMsgBack = MsgBox(sMsg, iType, sTitle)
End Sub
w tym przykładzie funkcja MsgBox zwraca wartość zakończenia do zmiennej typu integer o nazwie iMsgBack.

Dodane 56 minuty 40 sekundy:
To as double na początku wygląda jak deklaracja wartosci zwracanej przez funkcje. Przez co mogłem namieszać trochę. Sprawdzę to później.

Wróć do „VB Script nie mogę zwrócić nic w funkcji”