[ Pobierz całość w formacie PDF ]
.Pierwsza z nich opisana jest w dokumentacji C++Buildera i nie będziemy się tutaj zagłębiać w jej szczegóły, druga natomiast (notabene wywodząca się z pierwszej) zapewnia większą elastyczność obsługi i wyższy poziom abstrakcji.Aby używać którejś z wymienionych klas, należy dołączyć plik nagłówkowy <Registry.hpp>.Najważniejsze z właściwości i metod klasy TRegIniFile opisane są w tabeli 3.9.Tabela 3.9.Właściwości i metody klasy TRegIniFileWłaściwość (Metoda)OpisFileNameWłaściwość tylko do odczytu; zawiera nazwę aktualnego klucza Rejestru (otwartego lub utworzonego) , który będzie kluczem najwyższego poziomu (root) w przyszłych operacjach wykonywanych przez obiekt.RootKeyZawiera uchwyt do klucza najwyższego poziomu; standardowo kluczem tym jest HKEY_CURRENT_USER.ReadBool()Udostępnia wartość boolowską ze wskazanej lokalizacji w Rejestrze; jeżeli specyfikowana lokalizacja nie istnieje, zwracana zostaje specyfikowana wartość domyślna.ReadInteger()Udostępnia wartość całkowitoliczbową ze wskazanej lokalizacji w Rejestrze; jeżeli specyfikowana lokalizacja nie istnieje, zwracana zostaje specyfikowana wartość domyślna.ReadString()Udostępnia łańcuch typu AnsiString ze wskazanej lokalizacji w Rejestrze; jeżeli specyfikowana lokalizacja nie istnieje, zwracana zostaje specyfikowana wartość domyślna.WriteBool()Zapisuje we wskazanej lokalizacji Rejestru wartość boolowską; jeżeli żądana lokalizacja nie istnieje, zostanie utworzona.WriteInteger()Zapisuje we wskazanej lokalizacji Rejestru wartość całkowitoliczbową; jeżeli żądana lokalizacja nie istnieje, zostanie utworzona.WriteString()Zapisuje we wskazanej lokalizacji Rejestru łańcuch typu AnsiString; jeżeli żądana lokalizacja nie istnieje, zostanie utworzona.Ważną właściwością klasy TRegIniFile jest to, iż w przypadku nieistnienia w Rejestrze wskazanej lokalizacji nie jest generowany błąd: przy operacji odczytu zwracana jest wartość domyślna (podana jako ostatni parametr wywołania funkcji: ReadBool(), ReadInteger() lub ReadString()), zaś przy zapisie brakująca lokalizacja zostaje automatycznie utworzona.Ułatwia to znacznie operowanie Rejestrem.W naszej aplikacji kalkulatorze dane zapisywane są w Rejestrze w dwóch przypadkach: gdy użytkownik skorzysta z opcji Tools|Save Configuration oraz przy zamykaniu aplikacji, o ile w oknie opcji Tools|Settings zaznaczona jest opcja Auto Save Configuration.Pierwszy z przypadków realizowany jest przez odpowiednią funkcję zdarzeniową opcji menu, przedstawioną na wydruku 3.39.Wydruk 3.39.Zapis danych do Rejestru na żądanie użytkownikavoid __fastcall TMainForm::SaveCurrentLayout1Click(TObject *Sender){std::auto_ptr<TRegIniFile> Registry(new RegIniFile("SOFTWARE\\MiniCalculator"));// Zapis do Rejestru opcji okienka Tools|SettingsRegistry->WriteBool("Options","AutoSaveLayout",AutoSaveLayout);Registry->WriteBool("Options","AutoFit",AutoFit);// zapis pozostałych ustawieńWriteSettingsToRegistry(Registry);}Obiekt typu TRegIniFile tworzony jest z udziałem „automatycznego wskaźnika” auto_ptr<>, co zapewnia jego automatyczne zwolnienie po zakończeniu funkcji.Ponieważ domyślnym kluczem „źródłowym” (root) jest HKEY_CURRENT_USER, więc wszelkie zapisy dokonywane będą w lokalizacji:HKEY_CURRENT_USER\Software\MiniCalculatorPierwszy parametr funkcji WriteBool() wskazuje podklucz w wyspecyfikowanej lokalizacji, tak więc np.instrukcja:Registry->WriteBool("Options","AutoFit",AutoFit);powoduje nadanie wartości danej o nazwie Autofit w lokalizacji:HKEY_CURRENT_USER\Software\MiniCalculator\Options(patrz rys.3.9).Gdy wartość Autofit->Checked równa będzie true, do Rejestru wpisane zostanie 1, w przeciwnym razie wpisane zostanie 0.Rysunek 3.9.Zapis opcji ustawień kalkulatora w Rejestrze WindowsZapis pozostałych ustawień znajduje się w podkluczu Settings i dokonywany jest przez funkcję WriteSettingsToRegistry():Wydruk 3.40 [ Pobierz całość w formacie PDF ]
zanotowane.pl doc.pisz.pl pdf.pisz.pl milosnikstop.keep.pl
.Pierwsza z nich opisana jest w dokumentacji C++Buildera i nie będziemy się tutaj zagłębiać w jej szczegóły, druga natomiast (notabene wywodząca się z pierwszej) zapewnia większą elastyczność obsługi i wyższy poziom abstrakcji.Aby używać którejś z wymienionych klas, należy dołączyć plik nagłówkowy <Registry.hpp>.Najważniejsze z właściwości i metod klasy TRegIniFile opisane są w tabeli 3.9.Tabela 3.9.Właściwości i metody klasy TRegIniFileWłaściwość (Metoda)OpisFileNameWłaściwość tylko do odczytu; zawiera nazwę aktualnego klucza Rejestru (otwartego lub utworzonego) , który będzie kluczem najwyższego poziomu (root) w przyszłych operacjach wykonywanych przez obiekt.RootKeyZawiera uchwyt do klucza najwyższego poziomu; standardowo kluczem tym jest HKEY_CURRENT_USER.ReadBool()Udostępnia wartość boolowską ze wskazanej lokalizacji w Rejestrze; jeżeli specyfikowana lokalizacja nie istnieje, zwracana zostaje specyfikowana wartość domyślna.ReadInteger()Udostępnia wartość całkowitoliczbową ze wskazanej lokalizacji w Rejestrze; jeżeli specyfikowana lokalizacja nie istnieje, zwracana zostaje specyfikowana wartość domyślna.ReadString()Udostępnia łańcuch typu AnsiString ze wskazanej lokalizacji w Rejestrze; jeżeli specyfikowana lokalizacja nie istnieje, zwracana zostaje specyfikowana wartość domyślna.WriteBool()Zapisuje we wskazanej lokalizacji Rejestru wartość boolowską; jeżeli żądana lokalizacja nie istnieje, zostanie utworzona.WriteInteger()Zapisuje we wskazanej lokalizacji Rejestru wartość całkowitoliczbową; jeżeli żądana lokalizacja nie istnieje, zostanie utworzona.WriteString()Zapisuje we wskazanej lokalizacji Rejestru łańcuch typu AnsiString; jeżeli żądana lokalizacja nie istnieje, zostanie utworzona.Ważną właściwością klasy TRegIniFile jest to, iż w przypadku nieistnienia w Rejestrze wskazanej lokalizacji nie jest generowany błąd: przy operacji odczytu zwracana jest wartość domyślna (podana jako ostatni parametr wywołania funkcji: ReadBool(), ReadInteger() lub ReadString()), zaś przy zapisie brakująca lokalizacja zostaje automatycznie utworzona.Ułatwia to znacznie operowanie Rejestrem.W naszej aplikacji kalkulatorze dane zapisywane są w Rejestrze w dwóch przypadkach: gdy użytkownik skorzysta z opcji Tools|Save Configuration oraz przy zamykaniu aplikacji, o ile w oknie opcji Tools|Settings zaznaczona jest opcja Auto Save Configuration.Pierwszy z przypadków realizowany jest przez odpowiednią funkcję zdarzeniową opcji menu, przedstawioną na wydruku 3.39.Wydruk 3.39.Zapis danych do Rejestru na żądanie użytkownikavoid __fastcall TMainForm::SaveCurrentLayout1Click(TObject *Sender){std::auto_ptr<TRegIniFile> Registry(new RegIniFile("SOFTWARE\\MiniCalculator"));// Zapis do Rejestru opcji okienka Tools|SettingsRegistry->WriteBool("Options","AutoSaveLayout",AutoSaveLayout);Registry->WriteBool("Options","AutoFit",AutoFit);// zapis pozostałych ustawieńWriteSettingsToRegistry(Registry);}Obiekt typu TRegIniFile tworzony jest z udziałem „automatycznego wskaźnika” auto_ptr<>, co zapewnia jego automatyczne zwolnienie po zakończeniu funkcji.Ponieważ domyślnym kluczem „źródłowym” (root) jest HKEY_CURRENT_USER, więc wszelkie zapisy dokonywane będą w lokalizacji:HKEY_CURRENT_USER\Software\MiniCalculatorPierwszy parametr funkcji WriteBool() wskazuje podklucz w wyspecyfikowanej lokalizacji, tak więc np.instrukcja:Registry->WriteBool("Options","AutoFit",AutoFit);powoduje nadanie wartości danej o nazwie Autofit w lokalizacji:HKEY_CURRENT_USER\Software\MiniCalculator\Options(patrz rys.3.9).Gdy wartość Autofit->Checked równa będzie true, do Rejestru wpisane zostanie 1, w przeciwnym razie wpisane zostanie 0.Rysunek 3.9.Zapis opcji ustawień kalkulatora w Rejestrze WindowsZapis pozostałych ustawień znajduje się w podkluczu Settings i dokonywany jest przez funkcję WriteSettingsToRegistry():Wydruk 3.40 [ Pobierz całość w formacie PDF ]