Funkcje

Jak powszechnie wiadomo, funkcje mogą przyjmować wiele argumentów a "exportować" tylko jeden. Przykładem funkcji jest instrukcja Len(X). Funkcja ta przyjmuje string a podaje jego długość. Oto przykład :

Dim A as Integer
X=Len("Jelcyn")

Tutaj funkcja zwróci wartość 6 (bo tyle liter ma słowo Jelcyn) No, ale pewnie nie raz brakowało Ci czegoś a mianowicie tego aby funkcja zwracała kilka parametrów (np funkcja Len zwracała oprócz liczby znaków też, czy ta liczba jest parzysta i czy ta liczba jest większa od 10) Czytając ten text będziesz mógł zrobić taką funkcję (oczywiście o innej nazwie np Len2) Jak można coś takiego zrobić ?

Bardzo prosto. Są 2 sposoby. Jeden to taki aby funkcja zwracała string i by to wyglądało np tak : "3 5 6". Jednak odczytanie z tego liczb było by trudne, powolne i wogóle do d*** Dlatego też można zadeklarować własny typ (czyli jakby zmienną składającą się z podzmiennych) Oto przykład deklaracji typu :

Public Type NowyTyp
X1 As Byte
X2 As Byte
X3 As Integer
End Type

Jest to typ o nazwie NowyTyp. Teraz musimy zadeklarować jakąś zmienną np :

Dim Zmienna as NowyTyp

A oto przykład odwołania się :

V=Zmienna.X1

Jak widać po kropce piszemy o który fragment typu nam chodzi. I jeszcze jedno : deklaracje typów piszemy w modułach. Mam nadzieję że potrafisz odwołać się do zmiennej X3 i zmiennej X2 przypisać jakąś liczbę ??? Jeśli nie to, poczytaj o Typach w jakiejś xiążce (często jest to w xiążkach o bazach danych) A oto przykład funkcji która zwraca kilka wartości. W tym wypadku program podaje datę urodzin Jelcyn'a. W module piszemy :

Public Type UrodzinyJelcyna
Dzien As Byte
Miesiac As Byte
Rok As Integer
End Type

Function Urodziny() As UrodzinyJelcyna
Urodziny.Dzien = 9
Urodziny.Miesiac = 3
Urodziny.Rok = 1984
End Function

Jak już sobie zadeklarowaliśmy nowy typ i funkcję to pasował by na formie zrobić Button'a i wpisać w nim kod :

Dim J As UrodzinyJelcyna
J = Urodziny

MsgBox "Jelcyn się urodził " + Str(J.Dzien) + "." + Str(J.Miesiac) + "." + Str(J.Rok), 64, "Urodziny Jelcyn'a"

W tym programie wystarczyło by pewnie wpisać 1 linię kodu MsgBox ale podałem to tylko po to, aby udowodnić, że funkcje mogą zwracać kilka wartości (podobnie jak liczby zespolone ;-)

Jelcyn