[ Pobierz całość w formacie PDF ]
.Rozszerzenia klasy TIconZmodernizowana klasa TIcon obsługuje ikony o różnej rozdzielczości oraz ikony zawierające więcej niż 16 kolorów.Do wyświetlania na ekranie wybierana jest ikona o szerokości i wysokości możliwie najbliższych uprzednio określonym poprzez parametry Width i Height.Wartości te są jedynie sugestiami - rzeczywista ikona nie jest skalowana w celu uzyskania dokładnej zgodności wymiarów.Inne rozszerzenia biblioteki VCLDo innych zmian wprowadzonych do biblioteki VCL zalicza się nowa właściwość AutoSnap komponentu TSplitter, obsługująca sytuację, w której użytkownik próbuje zmienić rozmiar obiektu na mniejszy od najmniejszego dopuszczalnego.Klasa TApplication została wzbogacona o właściwości BiDiKeyboard i NonBiDiKeyboard, określające rozkład klawiatury, a nowy moduł o nazwie Contnrs wprowadza kilka klas użytkowych, obsługujących stosy i kolejki.W bibliotece VCL pojawiło się jeszcze kilka innych zmian; więcej informacji na ten temat znajduje się w systemie pomocy C++Buildera 5.Poprawianie biblioteki VCL, czyli trochę więcej niż klasa TStringListKlasa TStringList jest dość często używana w programach, które muszą być opracowane w krótkim czasie, a szybkość działania i zużycie pamięci nie odgrywają w nich znaczącej roli.Klasa ta jest bardzo użytecznym pojemnikiem, umożliwiającym przechowywanie obiektów tekstowych i innych powiązanych z nimi struktur danych.TStringList posiada właściwości i metody umożliwiające manipulowanie łańcuchami i obiektami.W niniejszym podrozdziale przedstawimy typowe przykłady użycia obiektów potomnych klasy TStringList do przechowywania informacji tekstowych w standardowych łańcuchach znakowych oraz informacji związanych, które dokładniej opisują przechowywany tekst.W tworzonej klasie będziemy chcieli umieścić wszystkie dostępne informacje o sesjach bazy danych, aliasy, nazwy tablic i związane z nimi pola, używając obiektów jednego typu.Klasa TStringListW podrozdziale tym skoncentrujemy się przede wszystkim na przechowywaniu obiektów jako łańcuchów znakowych.Więcej informacji na temat właściwości i metod dostępnych dzięki klasie TStringList można znaleźć w dziale systemu rozdziale pomocy „Visual Component Library Reference”, przy czym zaleca się w pierwszej kolejności skoncentrowanie na właściwościach: Strings, Objects i CommaText, a potem na metodach: Add(), Delete() i IndexOf().Zapoznanie się ze wszystkimi właściwościami i metodami ułatwia ich właściwy wybór i stosowanie.TStringList jest czymś więcej niż jedynie klasą przechowującą łańcuchy, które można sortować, zamieniać, usuwać i dodawać.Może on też zawierać odwołanie do innego obiektu biblioteki VCL.Dlaczego właśnie VCL?Analizując deklarację właściwości Objects, można zauważyć, że zwracany jest wskaźnik typu TObject:__property System::TObject* Objects[int Index] = {read=GetObject, write=PutObject};Powstaje zatem pytanie, jak przechowywać informacje istotne dla naszej aplikacji.Chcąc przechować wskaźnik do istniejącego obiektu lub komponentu biblioteki VCL, należy dokonać rzutowania na typ TObject*:StringList1->Objects[index] = dynamic_cast<TObject *>(Memo1);natomiast odzyskanie informacji przebiega następująco:TObject *MyObject = StringList1->Objects[i];TMemo *MyMemo = dynamic_cast<TMemo *>(MyObject);W kodzie tym założono, że nasz obiekt zawsze jest klasy TMemo.W rzeczywistym programie należałoby jeszcze przed użyciem sprawdzić, czy MyMemo nie ma wartości NULL.Jak przechowywać obiekty nie należące do biblioteki VCL?Właściwość Objects klasy TStringList jest typu TObject, dlatego musi odnosić się do obiektu tego właśnie typu (lub jego potomka).Przechowywanie struktury lub klasy na liście łańcuchów będzie możliwe, jeśli utworzy się ją jako pochodną od klasy TObject.Wydruk 6.11 przedstawia odpowiedni przykład.Wydruk 6.11.Dziedziczenie od klasy TObjectclass MyStruct : public TObject{public:int Age;char Sex;bool Married;};Fakt pochodzenia (bezpośredniego lub pośredniego) naszej klasy od TObject można wykorzystać do powiązania jej z listą łańcuchów.Na potrzeby tematu omawianego w tym podrozdziale utworzymy klasę dziedziczącą od TStringList, której celem będzie przechowywanie danych o wszystkich dostępnych sesjach bazy danych.Klasa ta zawierać będzie wszystkie nazwy sesji we właściwości Strings, a dla każdej sesji będzie określać wszystkie dostępne aliasy [ Pobierz całość w formacie PDF ]
zanotowane.pl doc.pisz.pl pdf.pisz.pl matkasanepid.xlx.pl
.Rozszerzenia klasy TIconZmodernizowana klasa TIcon obsługuje ikony o różnej rozdzielczości oraz ikony zawierające więcej niż 16 kolorów.Do wyświetlania na ekranie wybierana jest ikona o szerokości i wysokości możliwie najbliższych uprzednio określonym poprzez parametry Width i Height.Wartości te są jedynie sugestiami - rzeczywista ikona nie jest skalowana w celu uzyskania dokładnej zgodności wymiarów.Inne rozszerzenia biblioteki VCLDo innych zmian wprowadzonych do biblioteki VCL zalicza się nowa właściwość AutoSnap komponentu TSplitter, obsługująca sytuację, w której użytkownik próbuje zmienić rozmiar obiektu na mniejszy od najmniejszego dopuszczalnego.Klasa TApplication została wzbogacona o właściwości BiDiKeyboard i NonBiDiKeyboard, określające rozkład klawiatury, a nowy moduł o nazwie Contnrs wprowadza kilka klas użytkowych, obsługujących stosy i kolejki.W bibliotece VCL pojawiło się jeszcze kilka innych zmian; więcej informacji na ten temat znajduje się w systemie pomocy C++Buildera 5.Poprawianie biblioteki VCL, czyli trochę więcej niż klasa TStringListKlasa TStringList jest dość często używana w programach, które muszą być opracowane w krótkim czasie, a szybkość działania i zużycie pamięci nie odgrywają w nich znaczącej roli.Klasa ta jest bardzo użytecznym pojemnikiem, umożliwiającym przechowywanie obiektów tekstowych i innych powiązanych z nimi struktur danych.TStringList posiada właściwości i metody umożliwiające manipulowanie łańcuchami i obiektami.W niniejszym podrozdziale przedstawimy typowe przykłady użycia obiektów potomnych klasy TStringList do przechowywania informacji tekstowych w standardowych łańcuchach znakowych oraz informacji związanych, które dokładniej opisują przechowywany tekst.W tworzonej klasie będziemy chcieli umieścić wszystkie dostępne informacje o sesjach bazy danych, aliasy, nazwy tablic i związane z nimi pola, używając obiektów jednego typu.Klasa TStringListW podrozdziale tym skoncentrujemy się przede wszystkim na przechowywaniu obiektów jako łańcuchów znakowych.Więcej informacji na temat właściwości i metod dostępnych dzięki klasie TStringList można znaleźć w dziale systemu rozdziale pomocy „Visual Component Library Reference”, przy czym zaleca się w pierwszej kolejności skoncentrowanie na właściwościach: Strings, Objects i CommaText, a potem na metodach: Add(), Delete() i IndexOf().Zapoznanie się ze wszystkimi właściwościami i metodami ułatwia ich właściwy wybór i stosowanie.TStringList jest czymś więcej niż jedynie klasą przechowującą łańcuchy, które można sortować, zamieniać, usuwać i dodawać.Może on też zawierać odwołanie do innego obiektu biblioteki VCL.Dlaczego właśnie VCL?Analizując deklarację właściwości Objects, można zauważyć, że zwracany jest wskaźnik typu TObject:__property System::TObject* Objects[int Index] = {read=GetObject, write=PutObject};Powstaje zatem pytanie, jak przechowywać informacje istotne dla naszej aplikacji.Chcąc przechować wskaźnik do istniejącego obiektu lub komponentu biblioteki VCL, należy dokonać rzutowania na typ TObject*:StringList1->Objects[index] = dynamic_cast<TObject *>(Memo1);natomiast odzyskanie informacji przebiega następująco:TObject *MyObject = StringList1->Objects[i];TMemo *MyMemo = dynamic_cast<TMemo *>(MyObject);W kodzie tym założono, że nasz obiekt zawsze jest klasy TMemo.W rzeczywistym programie należałoby jeszcze przed użyciem sprawdzić, czy MyMemo nie ma wartości NULL.Jak przechowywać obiekty nie należące do biblioteki VCL?Właściwość Objects klasy TStringList jest typu TObject, dlatego musi odnosić się do obiektu tego właśnie typu (lub jego potomka).Przechowywanie struktury lub klasy na liście łańcuchów będzie możliwe, jeśli utworzy się ją jako pochodną od klasy TObject.Wydruk 6.11 przedstawia odpowiedni przykład.Wydruk 6.11.Dziedziczenie od klasy TObjectclass MyStruct : public TObject{public:int Age;char Sex;bool Married;};Fakt pochodzenia (bezpośredniego lub pośredniego) naszej klasy od TObject można wykorzystać do powiązania jej z listą łańcuchów.Na potrzeby tematu omawianego w tym podrozdziale utworzymy klasę dziedziczącą od TStringList, której celem będzie przechowywanie danych o wszystkich dostępnych sesjach bazy danych.Klasa ta zawierać będzie wszystkie nazwy sesji we właściwości Strings, a dla każdej sesji będzie określać wszystkie dostępne aliasy [ Pobierz całość w formacie PDF ]