[ Pobierz całość w formacie PDF ]
.71.//if (GetComctl32Version() < 471){throw EWin32Error(″W celu użycia programu konieczne jest zainstalowanie\n″″ biblioteki COMCTL32.DLL w wersji 4.71 lub wyższej.\n″″WiÄ™cej informacji na ten temat znajduje siÄ™ w artykule na \n″″temat uaktualniania bibliotek DLL \n″″ na stronie \n″ ″http://support.microsoft.com/support/kb/articles/Q186/1/76.ASP″);}}Okazuje siÄ™, że kilka elementów sterujÄ…cych biblioteki VCL, tworzÄ…cych „otoczkÄ™” niektórych klas standardowych elementów sterujÄ…cych, udostÄ™pnia cechy, które sÄ… dostÄ™pne jedynie w nowszych wersjach bibliotek.WykorzystujÄ…c komponent udostÄ™pniajÄ…cy nowsze cechy, należy zwrócić uwagÄ™ na wersjÄ™ biblioteki DLL obecnej w systemie, w którym aplikacja bÄ™dzie uruchamiana.CzÄ™sto różni siÄ™ ona od wersji zainstalowanej na komputerze, na którym program jest tworzony.Biblioteka VCL nie umożliwia sprawdzenia w czasie dziaÅ‚ania programu zgodnoÅ›ci komponentów i ich cech z bibliotekÄ… COMCTL32.DLL.JeÅ›li projekt opiera siÄ™ na komponentach z biblioteki COMCTL32.DLL, najlepiej dokonać sprawdzenia za pomocÄ… funkcji GetComctl32Version().Rozszerzenia standardowych elementów sterujÄ…cych wprowadzone w systemie C++BuilderBiblioteka VCL obejmuje kilka komponentów tworzÄ…cych „otoczkÄ™” dla wielu klas standardowych elementów sterujÄ…cych systemu Windows.W szczególnoÅ›ci zaliczajÄ… siÄ™ do nich komponenty ulokowane na zakÅ‚adce Win32 palety komponentów.Wszystkie nowe wersje biblioteki COMCTL32 zawierajÄ… nowe struktury, komunikaty i funkcje.Dlatego programiÅ›ci używajÄ…cy biblioteki VCL muszÄ… stale dbać o to, by używane przez nich komponenty byÅ‚y zgodne z aktualnÄ… wersjÄ… biblioteki.Ten nieustanny proces czyni każdÄ… nowÄ… wersjÄ™ C++Buildera znacznie bardziej wartoÅ›ciowÄ… od poprzednich.Również możliwoÅ›ci C++Buildera 5 odzwierciedlajÄ… wiele spoÅ›ród najnowszych zmian zawartych w bibliotece standardowych elementów sterujÄ…cych.Obecnie zajmiemy siÄ™ tymi unowoczeÅ›nieniami, które można znaleźć jedynie w C++Builderze 5.ZaliczajÄ… siÄ™ do nich miÄ™dzy innymi:lzmiany w definicji klasy TlistView;llzmiany w definicji klasy TheaderControl;llobsÅ‚uga niestandardowych funkcji rysowania (ang.custom draw) dla obiektów klasy TToolBar.lUdoskonalenia obiektów klasy TListViewKlasa TListView udostÄ™pnia tzw.widok listy, czyli systemowy element sterujÄ…cy o nazwie list view.Ten bez wÄ…tpienia najbardziej uniwersalny komponent biblioteki VCL obejmuje niemal wszystkie aspekty zwiÄ…zane z widokiem listy.Zajmiemy siÄ™ teraz kilkoma nowoÅ›ciami wprowadzonymi do tej klasy w C++Builderze 5.NaszÄ… dyskusjÄ™ ograniczymy do aspektów odnoszÄ…cych siÄ™ do biblioteki standardowych elementów sterujÄ…cych.Ikony elementów listyWprowadzony po raz pierwszy w wersji 4.70 biblioteki COMCTL32.DLL styl rozszerzony LVS_EX_SUBITEMIMAGES umożliwia wyÅ›wietlanie ikony obok każdej pozycji zawartej w widoku listy.Styl ten jest szczególnie użyteczny, gdy poszczególne kolumny używane sÄ… do przedstawienia informacji, które najÅ‚atwiej zaprezentować w formie graficznej.Klasa TListView używa go domyÅ›lnie.Klasa TListItem wprowadza wÅ‚aÅ›ciwość SubItemImages, wiążącÄ… odpowiednie obrazki (identyfikowane wÅ‚aÅ›ciwoÅ›ciÄ… TListView::SmallImages) z poszczególnymi pozycjami listyWÅ‚aÅ›ciwość HoverTimeKomunikat LVM_SETHOVERTIME zostaÅ‚ wprowadzony po raz pierwszy w wersji 4.71 biblioteki COMCTL32.DLL.Używanie go w połączeniu ze stylem rozszerzonym LVS_EX_TRACKSELECT umożliwia okreÅ›lenie czasu, przez jaki kursor myszy musi znajdować siÄ™ nad obiektem, aby ten zostaÅ‚ wybrany (bez potrzeby naciskania przycisku myszy - przyp.tÅ‚um.).Klasa TListView udostÄ™pnia ten komunikat poprzez wÅ‚aÅ›ciwość TListView::HoverTime.UstawiajÄ…c wÅ‚aÅ›ciwość TListView::HotTrack na wartość true i przypisujÄ…c wÅ‚aÅ›ciwoÅ›ci HoverTime odpowiedniÄ… wartość w milisekundach, można Å‚atwo uzyskać pożądane zachowanie widoku.PodobszaryNietypowÄ… cechÄ… widoku listy jest możliwość zdefiniowania wielu obszarów roboczych.Oznacza to, że możliwe jest podzielenie obszaru roboczego na wiele wirtualnych podobszarów.Cecha ta pojawiÅ‚a siÄ™ po raz pierwszy w wersji 4.71 biblioteki COMCTL32.DLL, razem ze stylem rozszerzonym LVS_EX_MULTIWORKAREAS oraz komunikatami: LVM_GETWORKAREAS, LVM_SETWORKAREAS i LVM_GETNUMEROFWORKAREAS
[ Pobierz całość w formacie PDF ]