Do czasu pojawienia się Windows 95/NT, wszelkie ustawienia aplikacji
przechowywane były w plikach *.ini. Z chwilą premiery nowych systemów
nasze możliwości wzrosły. Parametry programów możemy, a wręcz powinniśmy,
zapisywać w rejestrze systemu. (do jego przeglądania służy program regedit.exe,
będący standardowym wyposażeniem Windows)
Visual Basic udostępnia dwie metody dostępu do rejestru. Pierwsza, to dostęp za
pośrednictwem funkcji API. Metoda ta daje większą kontrolę nad rejestrem, ale może okazać
się nazbyt skomplikowana dla szarego zjadacza visualbasicowego chleba :-)
Druga, łatwiejsza opcja, to wykorzystanie czterech funkcji Visual Basica odpowiedzialnych
za operacje na rejestrze. Są to:
W zagmatwanej strukturze rejstru, miejscem, które służy do przechowywania
informacji dotyczących aplikacji utworzonych w VB jest:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\nazwa_aplikacji\sekcja\klucz
Z tego właśnie miejsca pobierają lub do niego zapisują dane powyższe funkcje.
********************************************************************************************
Pierwsza z nich pobiera pojedyncze ustawienia. Ma ona następującą składnię:
Ostatni parametr (domyslny) jest opcjonalny. W przypadku gdy funkcja nie znalazła wartości
dla podanego klucza, zostaje jej przyporządkowana wartość domyślna (o ile została podana).
Przykład:
Private Sub Form_Load()
Dim OstatniWpis As Integer
OstatniWpis = GetSetting("MojaBaza","Wpisy","Ostatni","0")
End Sub()
Ten przykład przypisuje zmiennej OstatniWpis wartość, jaką funkcja znajdzie w
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\MojaBaza\Wpisy\Ostatni
Jeżeli Ostatni nie ma przypisanej wartości, funkcja przypiszę wartość domyślna = 0.
********************************************************************************************
Do pobierania wielu ustawień naraz służy funkcja GetAllSettings. Jej składnia:
GetAllSettings(nazwa_aplikacji,sekcja)
Poniższy kod wyjaśnia działanie tej funkcji:
Private Sub Form_Load()
Dim Ustawienia As Variant
Dim X As Integer
Ustawienia = GetAllSettings("MojaBaza","Wpisy")
For X = 0 To UBound(Ustawienia,1)
Debug.Print Ustawienia(X,0), Ustawienia(X,1)
Next X
End Sub
Ustawienia = GetAllSettings("MojaBaza","Wpisy") - ta linia przypisuje zmiennej
dwuwymiarową tablicę zawierającą nazwy kluczy i ich wartości.
For X = 0 To UBound(Ustawienia,1)
Debug.Print Ustawienia(X,0), Ustawienia(X,1)
Next X
Ta pętla przypisuje zmiennej X wartości od 0 do maksymalnej liczby kluczy
( UBound(Ustawienia,1) - patrz help - opis funkcji UBound)
Przyjęto, że każdy klucz ma zapisane dwie wartości, które są przykładowo wyświetlane w oknie
Debug:
Debug.Print Ustawienia(X,0), Ustawienia(X,1)
********************************************************************************************
Do zapisywania ustawień służy funkcja SaveSetting.
Private Sub Form_Unload(Cencel As Integer)
SaveSetting "MojaBaza", "Wpisy", "Ostatni", ostatni_wpis
End Sub
Powyższy kod odpowiedzialny jest za przypisanie kluczowi Ostatni
wartości przechowywanej w zmiennej ostatni_wpis
********************************************************************************************
Ustawienia usuwa funkcja DeleteSetting
DeleteSetting nazwa_aplikacji, sekcja, klucz
Poniższy kod usuwa klucz Ostatni
DeleteSetting "MojaBaza", "Wpisy", "Ostatni"
Kolejny kod usuwa całą sekcję Wpisy
DeleteSetting "MojaBaza", "Wpisy"
Ten kod usuwa wszelkie dane związane z aplikacją MojaBaza
DeleteSetting "MojaBaza"
*******************************************************************************************
To już wszystko. Jeżeli czegoś nie skapowałeś(aś), choć bardzo się starałem, to daj znać.
Czekam na opinie odnośnie tego opracowania. See ya.
Komentarze
Dodane przez nocok w dniu - 2008-03-02 12:39:47
niklon Dodane przez niklon w dniu - 2009-09-16 18:20:37Czy da sie zastosowac tutaj instrukcje if? np . if cos,cos,cos,cos = 1 then...
niklon Dodane przez niklon w dniu - 2009-09-16 18:20:38Czy da sie zastosowac tutaj instrukcje if? np . if cos,cos,cos,cos = 1 then...
Aby dodać komentarz zaloguj się. Jeśli nie masz konta, załóż je sobie. Tylko zarejestrowani użytkownicy mogą pisać komentarze.