Procedury Property
Property Let
Property Get
Property Set
Rozkaz Property Let
Instrukcja ta deklaruje nazwę, argumenty, i kod który złoży się na procedurę Property Let, która przypisuje wartość do właściwości.
Składnia rozkazu Property Let:
[Public | Private | Friend] [Static] Property Let Nazwa ([Lista_arg], Wartość)
[instrukcje]
[Exit Property]
[instrukcje]
End Property
Składnia rozkazu Property Let składa się z następujących części:
Public |
(Opcjonalnie) Oznacza, że procedura Property Let jest dostępna dla innych procedur, we wszystkich modułach. Jeżeli jest użyta w module, który zawiera instrukcję Option Private, to procedura ta nie jest dostępna poza projektem |
Private |
(Opcjonalnie) Oznacza, że procedura Property Let jest dostępna tylko dla innych procedur w module, w którym jest ona zadeklarowana |
Friend |
(Opcjonalnie) Używane tylko w module klasy. Oznacza, że procedura Property Let jest widoczna w całym projekcie, ale nie jest widoczna dla kontrolera w przypadku obiektu |
Static |
(Opcjonalnie) Oznacza, że lokalne zmienne procedury Property Let są zachowywane pomiędzy wywołaniami. Atrybut Static nie wpływa na zmienne, które sa zadeklarowane poza procedurą Property Let, nawet jeżeli są one używane w procedurze |
Nazwa |
(Wymagane) Nazwa procedury Property Let. Obowiązują standardowe konwencje nazywania zmiennych, poza tym, że w jednym module może być taka sama nazwa dla procedur Property Get lub Property Set |
Lista_arg |
(Wymagane) Lista zmiennych reprezentujących argumenty, które są przypisywane do procedury Property Let, gdy jest ona wywołana. Wiele argumentów jest oddzielonych od siebie przecinkami. Nazwa i typ danych każdego argumentu w procedurze Property Let muszą być takie same jak odpowiednie argumenty w procedurze Property Get |
Wartość |
(Wymagane) Zmienna do przechowywania wartości przypisywanej do właściwości. Gdy procedura jest wywoływana, argument ten pojawia się po prawej stronie wyrażenia wywołującego. Typ danych argumentu Wartość musi być taki sam jak typ odpowiedniego zwracanego argumentu procedury Property Get |
instrukcje |
(Opcjonalne) Dowolna grupa instrukcji wykonywanych wewnątrz procedury Property Let |
Argument Lista_arg ma następującą składnię i jej części:
[Optional] [ByVal | ByRef] [ParamArray] Nazwa_zmiennej[()] [As Typ ] [= Domyślna_wartość]
Optional |
(Opcjonalnie) Oznacza, że argument nie jest wymagany. Jeżeli jest użyty, wszystkie późniejsze argumenty w Liście_arg muszą być także opcjonalne i deklarowane z użyciem słowa Optional |
ByVal |
(Opcjonalnie) Oznacza, że argument jest przypisywany przez wartość |
ByRef |
(Opcjonalnie) Oznacza, że argument jest przypisywany przez referencję. ByRef jest ustawieniem domyślnym w Visual Basic |
ParamArray |
(Opcjonalnie) Używany tylko jako ostatni argument w Liście_arg do oznaczenia, że ostatni argument jest tablicą Optional z elementami typu Variant. Słowo ParamArray pozwala na zapewnienie arbitralnej liczby argumentów. Może być używane z ByVal, ByRef, lub Optional |
Nazwa_zmiennej |
(Wymagane) Nazwa zmiennej reprezentującej argument. Obowiązują standardowe konwencje nazywania zmiennych |
Typ |
(Opcjonalnie) Typ danych argumentu przypisanego do procedury. Może być Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal, Date, String (tylko zmiennej długości), Object, Variant. Jeżeli parametr nie jest Optional, to może być też typ zdefiniowany przez użytkownika, lub typ obiektowy |
Domyślna_wartość |
(Opcjonalnie) Dowolna stała lub wyrażenie constant. Ważne tylko dla parametrów Optional. Jeżeli typem jest Object, domyślną wartością może być tylko Nothing |
Każda instrukcja Property Let musi definiować przynajmniej jeden argument dla procedury, którą ona definiuje. Argument ten (lub ostatni argument, gdy jest więcej niż jeden argument) zawiera aktualną wartość przypisywaną do właściwości, gdy procedura zdefiniowana przez instrukcję Property Set jest wywołana.
Jeżeli nie jest wyraźnie określone czy procedura jest Public, Private, lub Friend, to procedura jest domyślnie publiczna. Jeżeli nie zostało użyte słowo Static, to wartość lokalnych zmiennych nie jest zachowywana pomiędzy wywołaniami. Słowo Friend może być tylko używane w modułach klasy. Jednak, dostęp do procedur Friend jest możliwy z dowolnych procedur projektu. Procedura Friend nie pojawia się w bibliotece typów jej głównej klasy.
Cały wykonywalny kod musi być umieszczony w procedurach. Nie można definiować procedury Property Let wewnątrz innej procedury Property, Sub, lub Function.
Instrukcja Exit Property powoduje natychmiastowe opuszczenie procedury Property Let. Wykonywanie programu jest kontynuowane od instrukcji następującej po instrukcji wywołującej procedurę Property Let. Dowolna liczba instrukcji Exit Property może pojawić się w każdym miejscu procedury Property Let.
Podobnie jak procedury Function i Property Get, procedura Property Let jest oddzielną procedurą, która może pobierać argumenty, wykonywać serię instrukcji, i zmieniać wartość argumentów. Jednak w przeciwieństwie do procedur Function i Property Get, które zwracają wartość, procedury Property Let można użyć po lewej stronie przypisania referencji obiektu lub instrukcji Let.
na górę strony...
Rozkaz Property Get
Instrukcja ta deklaruje nazwę, argumenty, i kod który złoży się na procedurę Property Get, która pobiera wartość właściwości.
Składnia rozkazu Property Get:
[Public | Private | Friend] [Static] Property Get Nazwa ([Lista_arg] [As Typ]
[instrukcje]
[Nazwa=Wyrażenie]
[Exit Property]
[instrukcje]
[Nazwa=Wyrażenie]
End Property
Składnia rozkazu Property Get składa się z następujących części:
Public |
(Opcjonalnie) Oznacza, że procedura Property Get jest dostępna dla innych procedur, we wszystkich modułach. Jeżeli jest użyta w module, który zawiera instrukcję Option Private, to procedura ta nie jest dostępna poza projektem |
Private |
(Opcjonalnie) Oznacza, że procedura Property Get jest dostępna tylko dla innych procedur w module, w którym jest ona zadeklarowana |
Friend |
(Opcjonalnie) Używane tylko w module klasy. Oznacza, że procedura Property Get jest widoczna w całym projekcie, ale nie jest widoczna dla kontrolera w przypadku obiektu |
Static |
(Opcjonalnie) Oznacza, że lokalne zmienne procedury Property Get są zachowywane pomiędzy wywołaniami. Atrybut Static nie wpływa na zmienne, które sa zadeklarowane poza procedurą Property Get, nawet jeżeli są one używane w procedurze |
Nazwa |
(Wymagane) Nazwa procedury Property Get. Obowiązują standardowe konwencje nazywania zmiennych, poza tym, że w jednym module może być taka sama nazwa dla procedur Property Let lub Property Set |
Lista_arg |
(Wymagane) Lista zmiennych reprezentujących argumenty, które są przypisywane do procedury Property Get, gdy jest ona wywołana. Wiele argumentów jest oddzielonych od siebie przecinkami. Nazwa i typ danych każdego argumentu w procedurze Property Get muszą być takie same jak odpowiednie argumenty w procedurze Property Let |
Ttyp |
(Opcjonalne) Typ danych wartości zwracanej przez procedurę Property Get. Może być Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal, Date, String, Object, Variant lub typ zdefiniowany przez użytkownika |
instrukcje |
(Opcjonalne) Dowolna grupa instrukcji wykonywanych wewnątrz procedury Property Get |
Wyrażenie |
(Opcjonalne) Wartość właściwości zwracana przez procedurę zdefiniowaną przez instrukcję Property Get |
Argument Lista_arg ma następującą składnię i jej części:
[Optional] [ByVal | ByRef] [ParamArray] Nazwa_zmiennej[()] [As Typ ] [= Domyślna_wartość]
Optional |
(Opcjonalnie) Oznacza, że argument nie jest wymagany. Jeżeli jest użyty, wszystkie późniejsze argumenty w Liście_arg muszą być także opcjonalne i deklarowane z użyciem słowa Optional |
ByVal |
(Opcjonalnie) Oznacza, że argument jest przypisywany przez wartość |
ByRef |
(Opcjonalnie) Oznacza, że argument jest przypisywany przez referencję. ByRef jest ustawieniem domyślnym w Visual Basic |
ParamArray |
(Opcjonalnie) Używany tylko jako ostatni argument w Liście_arg do oznaczenia, że ostatni argument jest tablicą Optional z elementami typu Variant. Słowo ParamArray pozwala na zapewnienie arbitralnej liczby argumentów. Może być używane z ByVal, ByRef, lub Optional |
Nazwa_zmiennej |
(Wymagane) Nazwa zmiennej reprezentującej argument. Obowiązują standardowe konwencje nazywania zmiennych |
Typ |
(Opcjonalnie) Typ danych argumentu przypisanego do procedury. Może być Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal, Date, String (tylko zmiennej długości), Object, Variant. Jeżeli parametr nie jest Optional, to może być też typ zdefiniowany przez użytkownika, lub typ obiektowy |
Domyślna_wartość |
(Opcjonalnie) Dowolna stała lub wyrażenie constant. Ważne tylko dla parametrów Optional. Jeżeli typem jest Object, domyślną wartością może być tylko Nothing |
Jeżeli nie jest wyraźnie określone czy procedura jest Public, Private, lub Friend, to procedura jest domyślnie publiczna. Jeżeli nie zostało użyte słowo Static, to wartość lokalnych zmiennych nie jest zachowywana pomiędzy wywołaniami. Słowo Friend może być tylko używane w modułach klasy. Jednak, dostęp do procedur Friend jest możliwy z dowolnych procedur projektu. Procedura Friend nie pojawia się w bibliotece typów jej głównej klasy.
Cały wykonywalny kod musi być umieszczony w procedurach. Nie można definiować procedury Property Get wewnątrz innej procedury Property, Sub, lub Function.
Instrukcja Exit Property powoduje natychmiastowe opuszczenie procedury Property Get. Wykonywanie programu jest kontynuowane od instrukcji następującej po instrukcji wywołującej procedurę Property Get. Dowolna liczba instrukcji Exit Property może pojawić się w każdym miejscu procedury Property Get.
Podobnie jak procedury Sub i Property Let, procedura Property Get jest oddzielną procedurą, która może pobierać argumenty, wykonywać serię instrukcji, i zmieniać wartość argumentów. Jednak w przeciwieństwie do procedur Sub i Property Let, procedurę Property Get można użyć po prawej stronie wyrażenia, w podobny sposób jak Function lub nazwy właściwości, gdy ma być zwracana wartość właściwości.
Przykład użycia instrukcji Property Let i Property Get:
Dim intKolor As Integer
'zmienna na poziomie modułu intKolor jest ustawiona na numeryczną wartość, która określa kolor użyty do rysowania
Const BLACK = 0, RED = 1, GREEN = 2, BLUE = 3
'wykorzystywane stałe
Property Let KolorPiora(NazwaKoloru As String)
'Ustawia właściwość KolorPiora
Select Case NazwaKoloru 'sprawdza kolor
Case "Czerwony"
intKolor = RED
'Przypisuje wartość dla Czerwony
Case "Zielony"
intKolor = GREEN
'Przypisuje wartość dla Zielony
Case "Niebieski"
intKolor = BLUE
'Przypisuje wartość dla Niebieski
Case Else
intKolor = BLACK
'Przypisuje domyślną wartość
End Select
End Property
Property Get KolorPiora() As String
'Zwraca aktualny kolor pióra jako łańcuch
Select Case ColorName
Case RED
KolorPiora = "Czerwony"
Case GREEN
KolorPiora = "Zielony"
Case BLUE
KolorPiora = "Niebieski"
Case BLACK
KolorPiora = "Czarny"
End Select
End Property
KolorPiora = "Czerwony"
'przypiasanie koloru przy użyciu procedury Property Let
MsgBox KolorPiora
'wyświetla nazwę koloru przy użyciu procedury Property Get
(Zmienne, typy zmiennych, stałe i rozkaz Select Case zostały opisane w innych częściach kursu.)
na górę strony...
Rozkaz Property Set
Instrukcja ta deklaruje nazwę, argumenty, i kod który złoży się na procedurę Property, która ustawia referencję do obiektu.
Składnia rozkazu Property Set:
[Public | Private | Friend] [Static] Property Set Nazwa ([Lista_arg], Referencja)
[instrukcje]
[Exit Property]
[instrukcje]
End Property
Składnia rozkazu Property Set składa się z następujących części:
Public |
(Opcjonalnie) Oznacza, że procedura Property Set jest dostępna dla innych procedur, we wszystkich modułach. Jeżeli jest użyta w module, który zawiera instrukcję Option Private, to procedura ta nie jest dostępna poza projektem |
Private |
(Opcjonalnie) Oznacza, że procedura Property Set jest dostępna tylko dla innych procedur w module, w którym jest ona zadeklarowana |
Friend |
(Opcjonalnie) Używane tylko w module klasy. Oznacza, że procedura Property Set jest widoczna w całym projekcie, ale nie jest widoczna dla kontrolera w przypadku obiektu |
Static |
(Opcjonalnie) Oznacza, że lokalne zmienne procedury Property Set są zachowywane pomiędzy wywołaniami. Atrybut Static nie wpływa na zmienne, które sa zadeklarowane poza procedurą Property Set, nawet jeżeli są one używane w procedurze |
Nazwa |
(Wymagane) Nazwa procedury Property Set. Obowiązują standardowe konwencje nazywania zmiennych, poza tym, że w jednym module może być taka sama nazwa dla procedur Property Get lub Property Let |
Lista_arg |
(Wymagane) Lista zmiennych reprezentujących argumenty, które są przypisywane do procedury Property Set, gdy jest ona wywołana. Wiele argumentów jest oddzielonych od siebie przecinkami |
Referencja |
(Wymagane) Zmienna zawierająca referencję obiektu, używanego po prawej stronie przypisania referencji do obiektu |
instrukcje |
(Opcjonalne) Dowolna grupa instrukcji wykonywanych wewnątrz procedury Property |
Argument Lista_arg ma następującą składnię i jej części:
[Optional] [ByVal | ByRef] [ParamArray] Nazwa_zmiennej[()] [As Typ ] [= Domyślna_wartość]
Optional |
(Opcjonalnie) Oznacza, że argument nie jest wymagany. Jeżeli jest użyty, wszystkie późniejsze argumenty w Liście_arg muszą być także opcjonalne i deklarowane z użyciem słowa Optional |
ByVal |
(Opcjonalnie) Oznacza, że argument jest przypisywany przez wartość |
ByRef |
(Opcjonalnie) Oznacza, że argument jest przypisywany przez referencję. ByRef jest ustawieniem domyślnym w Visual Basic |
ParamArray |
(Opcjonalnie) Używany tylko jako ostatni argument w Liście_arg do oznaczenia, że ostatni argument jest tablicą Optional z elementami typu Variant. Słowo ParamArray pozwala na zapewnienie arbitralnej liczby argumentów. Może być używane z ByVal, ByRef, lub Optional |
Nazwa_zmiennej |
(Wymagane) Nazwa zmiennej reprezentującej argument. Obowiązują standardowe konwencje nazywania zmiennych |
Typ |
(Opcjonalnie) Typ danych argumentu przypisanego do procedury. Może być Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal, Date, String (tylko zmiennej długości), Object, Variant. Jeżeli parametr nie jest Optional, to może być też typ zdefiniowany przez użytkownika, lub typ obiektowy |
Domyślna_wartość |
(Opcjonalnie) Dowolna stała lub wyrażenie constant. Ważne tylko dla parametrów Optional. Jeżeli typem jest Object, domyślną wartością może być tylko Nothing |
Każda instrukcja Property Set musi definiować przynajmniej jeden argument dla procedury, którą ona definiuje. Argument ten (lub ostatni argument, gdy jest więcej niż jeden argument) zawiera aktualną referencję obiektu dla właściwości, gdy procedura zdefiniowana przez instrukcję Property Set jest wywoływana.
Jeżeli nie jest wyraźnie określone czy procedura jest Public, Private, lub Friend, to procedura jest domyślnie publiczna. Jeżeli nie zostało użyte słowo Static, to wartość lokalnych zmiennych nie jest zachowywana pomiędzy wywołaniami. Słowo Friend może być tylko używane w modułach klasy. Jednak, dostęp do procedur Friend jest możliwy z dowolnych procedur projektu. Procedura Friend nie pojawia się w bibliotece typów jej głównej klasy.
Cały wykonywalny kod musi być umieszczony w procedurach. Nie można definiować procedury Property Set wewnątrz innej procedury Property, Sub, lub Function.
Instrukcja Exit Property powoduje natychmiastowe opuszczenie procedury Property Set. Wykonywanie programu jest kontynuowane od instrukcji następującej po instrukcji wywołującej procedurę Property Set. Dowolna liczba instrukcji Exit Property może pojawić się w każdym miejscu procedury Property Set.
Podobnie jak procedury Function i Property Get, procedura Property Set jest oddzielną procedurą, która może pobierać argumenty, wykonywać serię instrukcji, i zmieniać wartość argumentów. Jednak w przeciwieństwie do procedur Function i Property Get, które zwracają wartość, procedury Property Set można użyć po lewej stronie przypisania referencji obiektu (instrukcja Set).
Przykład użycia instrukcji Property Set:
Property Set Pen(P As Object)
Set CurrentPen = P
'Przypisuje Pen do obiektu
End Property
|