, Access 2000 Księga eksperta 

[ Pobierz całość w formacie PDF ]
.By określić obiekt, użyj w procedurze Property Set słowa kluczowego Set.W naszym przykładzie użyliśmy obiektu cForm.Obiekt ten posiada właściwość Form, do której musi być przekazanyobiekt Form.Kod w module klasy cForm jest następujący:Option Compare Database' Zadeklaruj zmienną prywatną na poziomie modułuPrivate mobjForm as FormPublic Property Get Form() As Variant' Pobierz obiekt znajdujący się w zmiennej prywatnej (mobjForm) i' umieść go w wartości właściwości.Set Form = mobjFormEnd PropertyPublic Property Set Form(FormObject)' Pobierz przekazany obiekt (FormObject) i zapisz go' w zmiennej prywatnej(mobjForm)Set mobjForm = FormObjectEnd PropertyPo załadowaniu frmPropertySet formularz przekazywany jest do właściwości Form.Ponieważ jest to obiekt, używamysłowa kluczowego Set.Nazwa formularz może być wyświetlona w oknie komunikatu.Oto kod dla formularzafrmPropertySet:' W tym przykładzie korzystamy z obiektu "cForm".Obiekt' ten posiada właściwość "Form".Gdy ładowany jest formularz' (frmPropertySet), przekazywany jest jako obiekt do właściwości' "Form".Gdy klikniesz przycisk "Property Set", pobrana zostanie' nazwa formularza.Private mobjForm As cFormPrivate Sub cmdClose_Click()DoCmd.Close acForm, "frmPropertySet", acSaveNoEndSubPrivate Sub cmdPropertySet_Click()MsgBox "Obiekt formularz (we właściwości 'Form') nazywa się: " _& mobjForm.Form.Name, vbInformation, "Przykład Property Set"End SubPrivate Sub Form_Load()Set mobjForm = New cFormSet mobjForm.Form = Forms!frmPropertySetEnd SubPrivate Sub Form_Unload(Cancel As Integer)Set mobjForm = NothingEnd SubZmienna publiczna czy procedury właściwościNajprostszym sposobem tworzenia właściwości klasy jest użycie zmiennych publicznych.Jednakże rozwiązanie to maswoje wady.Zmienne publiczne zawsze są dostępne na zewnątrz.Oznacza to, że nie masz kontroli nad tym, kto ustawia ipobiera wartości właściwości.Może to doprowadzić do sytuacji, w której inni zmieniają wartość właściwości, na której Tysię opierasz.Zaletą procedur właściwości jest to, że umożliwiają tworzenie właściwości tylko-do-odczytu i tylko-do-zapisu.Przykładowo, jeśli chcesz utworzyć właściwość Hasło, możesz chcieć pozwolić użytkownikom zmieniać je, ale niepobierać (tylko-do-zapisu).Aby utworzyć procedurę tylko-do-zapisu, wystarczy dołączyć instrukcję Property Let i jed-nocześnie nie dołączać instrukcji Property Get.Korzystając z procedur właściwości, możesz również wykonywać czynności w kodzie podczas ustawiania lub pobieraniawłaściwości.Tworzenie wyliczeniowych typów danychWyliczeniowy typ danych to wartość właściwości, jaką możesz dostarczyć programistom używającym Twoich obiektów.Przykładowo, być może zauważyłeś, że gdy podczas ustawiania właściwości Widoczny formularza wpiszesz znakrówności, będziesz mógł z rozwijanej listy wybrać wartości True lub False (rysunek 11.5). 195Rozdział 11.f& Tworzenie obiektów przy użyciu modułów klasRysunek 11.5Z rozwijanej listywybierz Truelub FalseMożesz dostarczać takie wartości właściwości, tworząc typy wyliczeniowe.W części deklaracyjnej modułu klasowego do określenia wartości właściwości użyj słowa kluczowego Enum.Przykładowo,załóżmy, że dla właściwości TypUżytkownika obiektu cUser chcesz dostarczyć rozwijaną listę z następującymiwartościami: Menedżer, Administracja oraz Nieznany.Kod w części deklaracyjnej będzie następujący:Public Enum ListaUżytkownikówMenedżerAdministracjaNieznanyEnd EnumNastępnym krokiem będzie użycie wyliczeniowego typu danych (ListaUżytkowników) jako typu danych właściwościTypUżytkownika klasy cUser.Ilustruje to poniższy przykład, z właściwością utworzoną jako zmienna jawna:Przykład 1.Właściwość zadeklarowana jako zmienna stringPublic TypUżytkownika as StringPrzykład 2.Właściwość zadeklarowana jako wyliczający typ danychPublic TypUżytkownika as ListaUżytkownikówWartości właściwości mogą być bez trudu ustawiane przy użyciu rozwijanej listy, dostępnej dzięki technologii IntelliSense(rysunek 11.6).Rysunek 11.6 [ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • anikol.xlx.pl