[ Pobierz całość w formacie PDF ]
.20.Utwórz nową aplikację o wyglądzie przedstawionym poni\ej:W tym celu umieść na formularzu komponent TDBGrid z zakładki DataControls.Ustaw jego rozmiary tak aby pokrywał większą cześć okna.Następniez zakładki Data Access pobierz komponent TTable i umieść go w dowolnymmiejscu formularza.Dla tego komponentu ustaw własności: DatabaseName naBCDEMOS, TableName na country.db (obydwe wartości nale\y wybra\ zlisty).W kolejnym kroku umieść w dowolnym miejscu komponent TDataSourcez zakładki Data Access.Ustaw dla niego własność DataSet na Table1.Następnieustaw własność DataSource komponentu DBGrid1 na DataSource1.Dodaj doformularza komponent TDBNavigator (z zakładki Data Controls) i umieść goponi\ej komponentu DBGrid1.Dla paska nawigatora ustaw własność59Programowanie wizualne Borland C++ BuilderDataSource na DataSource1.Umieść na formularzu dwa przyciski i zatytułuj jeodpowiednio Otwórz i Zamknij (przycisk Zamknij ma być domyślnieniedostępny, ustaw dla niego własność Enabled na false).Wygeneruj zdarzenieOnclick dla przycisku Otwórz i umieść kod powodujący wyświetlenie danych ztabeli bazy danych (ustaw własność Active komponentu Table1 na true):void __fastcall TForm1::BitBtn1Click(TObject *Sender){Table1->Active=true;BitBtn2->Enabled=true;BitBtn1->Enabled=false;}Spowoduj aby naciśnięcie przycisku Zamknij powodowało ukryciewyświetlanych danych:void __fastcall TForm1::BitBtn2Click(TObject *Sender){Table1->Active=false;BitBtn1->Enabled=true;BitBtn2->Enabled=false;}Uruchom i przetestuj program.60Programowanie wizualne Borland C++ Builder8.Podstawowe elementy biblioteki VCL ihierarchia komponentówKomponenty VCL są podstawowymi elementami, z których budujemyaplikację.W rozdziale tym omówione zostaną podstawowe elementy VCL orazprzedstawiona zostanie ich struktura hierarchiczna.Hierarchia komponentów VCLW ogólnym przypadku rozró\niamy cztery podstawowe rodzaje komponentów:" Komponenty standardowe.Są one najczęściej u\ywane przez programistów,dlatego większość z nich umieszczona jest na pierwszej karcie paletykomponentów karcie Standard." Komponenty sterujące.Nie są one dostępne w bibliotece standardowej." Komponenty graficzne.Słu\ą do wypisywania tekstu bezpośrednio naformularzu oraz do wyświetlania grafiki." Komponenty niewidoczne.Stają się niewidoczne po uruchomieniuprogramu.Wszystkie komponenty z karty Dialogs oraz niektóre z kartSystem i Servers są obiektami, które przestajemy widzieć w działającejaplikacji.Poni\ej na rysunku przedstawiono fragment drzewa hierarchicznego obiektów zbiblioteki VCL:Klasa TObjectKlasa TObject jest przodkiem wszystkich typów obiektowych Borland C++Builder 5.Najczęściej nie korzysta się bezpośrednio z właściwości i metod,które nam udostępnia.61Programowanie wizualne Borland C++ BuilderKlasa TPersistentWszystkie typy obiektowe, mające zdolność posługiwania się strumieniami,pochodzą właśnie od tej klasy.Klasa ta w rzeczywistości nie definiuje nowychwłaściwości ani pól, definiuje natomiast destruktor ~TPersistent() oraz sześćmetod:Assign() metoda przypisania obiektowi właściwości i atrybutów innegoobiektu.AssignTo() metoda odwrotna do poprzedniej.Przypisuje danemu obiektowikopię własnych właściwości i atrybutów.DefineProperties() ta metoda definiuje sposób przypisania strumieniowipewnych dodatkowych właściwości komponentu.GetNamePath() umo\liwia odczytanie nazwy obiektu oraz jego ustalonychwłaściwości w inspektorze obiektów.GetOwner() podaje właściciela obiektu.TPersistent() tworzy nowy obiekt.Klasa TComponentZ klasy tej pochodzi ka\dy komponent C++ Buildera 5.Wprowadzone przez niąwłaściwości i metody pozwalają na obsługę komponentów poprzez inspektoraobiektów.Klasa TControlKomponenty wizualne reprezentowane w tej klasie są widoczne w czasiedziałania programu, chocia\ istnieją sposoby by je ukryć lub uczynićniewidocznymi w trakcie działania programu.Obiekty tej klasy posiadają szeregwłaściwości.Poni\ej zaprezentowano niektóre z nich.Właściwości klasy TControlAlign określa w jaki sposób komponent ma być ustawiony na formularzu(obszarze klienta).Je\eli np.wybierzemy w inspektorze obiektów alClient,wówczas komponent ten pokryje cały dostępny obszar formularza.Właściwośćtego typu aktywna jest np.dla komponentów typu TPanel, TGroupBox czyTRadioGroup z karty Standard.62Programowanie wizualne Borland C++ BuilderAnchors określa poło\enie komponentu w stosunku do jednego z rogówformularza.Caption opisuje komponent.ClientHeight oraz ClientWidth określa wymiary komponentu (wysokość idługość) w obszarze klienta.Color ustala kolor wypełnienia (wnętrza) komponentu.Cursor określa postać kursora, który będzie widoczny w obszarze danegokomponentu.Enabled określa, czy komponent będzie dostępny.Je\eli posługując się np.przyciskiem typu TButton napiszemy:Button1->Enabled = FALSE;przycisk będzie widoczny, ale nie będzie aktywny.Powrót do normalnej sytuacjimo\liwy jest dzięki:Button1->Enabled = TRUE;Analogicznych ustawień dokonamy te\ przy pomocy inspektora obiektów.Font ustala rodzaj czcionki napisów widocznych w obszarze komponentu.Hint ta właściwość sprawia, \e mo\na wpisać dymek podpowiedzi (hint,tooltip).Dodatkowo własność ShowHint musi być ustalona jako TRUE.Height i Width określają rozmiar komponentu.Text dzięki tej właściwości tekst wyświetlany jest na obszarze komponentu.Stosujemy ją m.in.do obiektów typu TEdit.Top, Left określają odległości komponentu od krawędzi odpowiednio górneji lewej formularza.Visible określa, czy komponent ma być widoczny.Je\eli w programienapiszemy:Button1->Visible = FALSE;komponent pozostanie całkowicie niewidoczny do czasu wywołania:63Programowanie wizualne Borland C++ BuilderButton1->Visible = TRUE;Czynność tę mo\na równie\ wykonać przy pomocy inspektora obiektów.Zdarzenia klasy TControlKlasa TControl udostępnia nam równie\ szereg po\ytecznych zdarzeń.Donajczęściej u\ywanych nale\ą:OnClick po kliknięciu obszaru komponentu zostanie wywołana funkcjaobsługi wybranego zdarzenia.OnDblClick dwukrotne kliknięcie obszaru komponentu spowodujewywołanie funkcji odpowiedniego zdarzenia.OnResize wywołuje np.funkcję obsługi zdarzenia po zmianie rozmiarukomponentu.OnMouseDown wywołuje reakcję na zdarzenie polegające na kliknięciukomponentu.OnMouseMove ka\dy ruch myszką nad komponentem wywoła funkcjęodpowiedniego zdarzenia.OnMouseUp jak wy\ej, tyle \e w przypadku puszczenia przycisku muszki.TControl udostępnia nam równie\ zdarzenia związane z przesuwaniemkomponentów przy pomocy myszki: OnDragOver, OnDragDrop, OnEndDrag,OnStartDock czy OnStartDrag.Klasa TGraphicControlReprezentuje nieaktywne komponenty wykorzystywane w ró\nego rodzajuoperacjach związanych z grafiką
[ Pobierz całość w formacie PDF ]