Rozkaz Deftype, DefBool, DefByte, DefInt, DefLng, DefCur, DefSng, DefDbl, DefDec, DefDate, DefStr, DefObj, DefVarInstrukcja Deftype określa standardowy typ danych dla zmiennych i argumentów przypisanych do procedur, oraz typ zwracany przez procedury Function i Property Get, których nazwy zaczynają sie od określonego znaku.Składnia rozkazu Deftype: DefBool Zakres [, Zakres]... DefByte Zakres [, Zakres]... DefInt Zakres [, Zakres]... DefLng Zakres [, Zakres]... DefCur Zakres [, Zakres]... DefSng Zakres [, Zakres]... DefDbl Zakres [, Zakres]... DefDec Zakres [, Zakres]... DefDate Zakres [, Zakres]... DefStr Zakres [, Zakres]... DefObj Zakres [, Zakres]... DefVar Zakres [, Zakres]... Wymagany argument Zakres, ma następującą składnię: Litera1 [- Litera2] Zmienne (argumenty procedury Function i Property Get), których nazwy rozpoczynają się na litery z danego zakresu (argumenty Litera1 i Litera2 określają ten zakres), będą typu określonego przez instrukcję, np. DefInt A-B, M-N spowoduje, że zmienne o nazwach rozoczynających się literami A, B oraz M, N będą typu Integer. Nazwa instrukcji określa typ danych:
Instrukcja Deftype działa tylko w module, w którym została użyta. Na przykład, instrukcja DefInt w jednym module, wpłynie tylko na typ danych zmiennych i argumentów przypisanych do procedur, oraz zwracany typ dla procedur Function i Property Get zadeklarowanych w tym module; nie wpłynie ona na typ danych zmiennych i argumentów oraz zwracany typ w innych modułach. Jeżeli nic nie zostanie wyraźnie zadeklarowane instrukcją Deftype, typ danych dla wszystkich zmiennych, wszystkich argumentów, wszystkich procedur Function i wszystkich procedur Property Get jest Variant. Gdy określony zostanie zakres liter, to zwykle będzie określony typ danych dla zmiennych zaczynających się na litery z pierwszych 128 znaków z listy znaków. Jednak, jeżeli określony zostanie zakres liter na A-Z, to ustawi to typ danych dla wszystkich zmiennych, włączając zmienne, których nazwy zaczynnją się od międzynarodowych znaków z rozszerzonej listy zanków (128-255). Kiedy określony zostanie zakres A-Z, nie można później zdefiniować innego mniejszego zakresu dla zmiennych używając instrukcji Deftype. Gdy już określony zostanie zakres i jeżeli dołączona zostanie litera z tego zakresu do innej instrukcji Deftype, zostanie wygenerowany błąd. Mimo wszystko można określić typ danych każdej zmiennej zdefiniowanej lub nie, używając instrukcji Dim z klauzulą As type. Na przykład, można użyć następującego kodu w module do zdefniowania typu zmiennej jako Double, mimo iż wcześniej jest ustawiony standardowy typ danych Integer: DefInt A-Z Dim dblLiczba As Double Instrukcja Deftype nie wpływa na elementy typu zdefiniowanego przez użytkownika, ponieważ te elementy muszą być specjalnie zadeklarowane. na górę strony... |