X


[ Pobierz całość w formacie PDF ]
.Left);Registry->WriteInteger("Settings\\Display","UndockTop",UndockedRect.Top);Registry->WriteInteger("Settings\\Display","UndockRight",UndockedRect.Right);Registry->WriteInteger("Settings\\Display","UndockBottom",UndockedRect.Bottom);}}// Formularz g�ównyRegistry->WriteInteger("Settings\\Position","MainFormTop",Top);Registry->WriteInteger("Settings\\Position","MainFormLeft",Left);Registry->WriteInteger("Settings\\Size","MainFormHeight",Height);Registry->WriteInteger("Settings\\Size","MainFormWidth",Width);// Pasek statusuRegistry->WriteBool("Settings\\StatusBar","Visible",StatusBar1->Visible);Registry->WriteBool("Settings","EnableKeyboard",EnableKeyboardInput);// Pasek kontrolnyfor(int i=0; iControlCount; ++i){AnsiString ControlPath = "Settings\\ControlBar\\";ControlPath += ButtonsControlBar->Controls[i]->Name;Registry->WriteInteger(ControlPath,"Left",ButtonsControlBar->Controls[i]->Left);Registry->WriteInteger(ControlPath,"Top",ButtonsControlBar->Controls[i]->Top);Registry->WriteInteger(ControlPath,"Height",ButtonsControlBar->Controls[i]->Height+2);Registry->WriteBool(ControlPath,"Visible",ButtonsControlBar->Controls[i]->Visible);}}Jak wida�, sposób zapisu danych do Rejestru nie jest szczególnie skomplikowany;o wiele trudniejsz� decyzj� jest natomiast wybór informacji, która podlega�b�dzie zapisowi do Rejestru.Je�eli chodzi o panel wy�wietlacza, to po��daneby�oby zachowanie jego pozycji podczas wydokowania i odtworzenie jej ponast�pnym uruchomieniu programu.Klasa okienka zarz�dzaj�cego wydokowan�kontrolk� zapami�tana jest pod jej w�a�ciwo�ci� FloatingDockSiteClass;standardowo klasa ta uzupe�nia kontrolk� o typowe obrze�e i standardowy pasektytu�owy.Aby wy�wietli� kontrolk� dok�adnie w tej samej pozycji, w którejznajdowa�a si� w momencie zapisu ustawie� do Rejestru, musimy odczyta� je zapomoc� funkcji Win32 API GetWindowRect(), do tego potrzebny nam jednak b�dzieuchwyt okna zarz�dzaj�cego wydokowan� kontrolk�.W C++Builderze okno toreprezentowane jest przez w�a�ciwo�� HostDockSite wydokowanej kontrolki, za���dany uchwyt znajduje si� pod w�a�ciwo�ci� Handle tego� okna.Drugimparametrem wywo�ania funkcji GetWindowRect() jest prostok�t, pod który funkcjata podstawia odczytane wspó�rz�dne; zostaj� one nast�pnie wpisane do Rejestrujako cztery niezale�ne warto�ci:if(LCDPanel->Floating){TRect UndockedRect;if(GetWindowRect(LCDPanel->HostDockSite->Handle, &UndockedRect)){Registry->WriteInteger("Settings\\Display","UndockLeft",UndockedRect.Left);Registry->WriteInteger("Settings\\Display","UndockTop",UndockedRect.Top);Registry->WriteInteger("Settings\\Display","UndockRight",UndockedRect.Right);Registry->WriteInteger("Settings\\Display","UndockBottom",UndockedRect.Bottom);}}Nie mniejszym k�opotem jest tak�e w�a�ciwe wykorzystanie danych odczytanych zRejestru.Gdy podczas startu aplikacji kalkulatora konstruowany jest jejformularz g�ówny, w jego konstruktorze wywo�ywana jest nast�puj�ca funkcja:Wydruk 3.41.Odczyt opcji aplikacji z Rejestruvoid __fastcall TMainForm::ReadAllValuesFromRegistry(){// Spróbuj odczyta� ��dane ustawienia z odpowiednich lokalizacji Rejestru// Przy pierwszym uruchomieniu lokalizacje te nie istniej�, nale�y wi�c// nie zmienia� ustawie� domy�lnychstd::auto_ptr Registry(new TRegIniFile("SOFTWARE\\MiniCalculator"));// Za�aduj opcjeAutoSaveLayout= Registry->ReadBool("Options","AutoSaveLayout",AutoSaveLayout);AutoFit= Registry->ReadBool("Options","AutoFit",AutoFit);// Za�aduj ustawieniaReadSettingsFromRegistry(Registry);}Zwró� uwag�, i� w charakterze warto�ci domy�lnej wyst�puje bie��ca warto��zmiennej, zatem brak ��danej lokalizacji w Rejestrze spowoduje, i� warto��uprzednio przypisana tej zmiennej nie zostanie zmieniona.Za�adowanie ustawie� kalkulatora wykonywane jest przez funkcj�ReadSettingsFromRegistry(); jej tre�� przedstawiamy na wydruku 3.42.Wydruk 3.42 [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • listy-do-eda.opx.pl
  • Drogi uĚźytkowniku!

    W trosce o komfort korzystania z naszego serwisu chcemy dostarczać Ci coraz lepsze usługi. By móc to robić prosimy, abyś wyraził zgodę na dopasowanie treści marketingowych do Twoich zachowań w serwisie. Zgoda ta pozwoli nam częściowo finansować rozwój świadczonych usług.

    Pamiętaj, że dbamy o Twoją prywatność. Nie zwiększamy zakresu naszych uprawnień bez Twojej zgody. Zadbamy również o bezpieczeństwo Twoich danych. Wyrażoną zgodę możesz cofnąć w każdej chwili.

     Tak, zgadzam się na nadanie mi "cookie" i korzystanie z danych przez Administratora Serwisu i jego partnerĂłw w celu dopasowania treści do moich potrzeb. Przeczytałem(am) Politykę prywatności. Rozumiem ją i akceptuję.

     Tak, zgadzam się na przetwarzanie moich danych osobowych przez Administratora Serwisu i jego partnerĂłw w celu personalizowania wyświetlanych mi reklam i dostosowania do mnie prezentowanych treści marketingowych. Przeczytałem(am) Politykę prywatności. Rozumiem ją i akceptuję.

    Wyrażenie powyższych zgód jest dobrowolne i możesz je w dowolnym momencie wycofać poprzez opcję: "Twoje zgody", dostępnej w prawym, dolnym rogu strony lub poprzez usunięcie "cookies" w swojej przeglądarce dla powyżej strony, z tym, że wycofanie zgody nie będzie miało wpływu na zgodność z prawem przetwarzania na podstawie zgody, przed jej wycofaniem.