[ Pobierz całość w formacie PDF ]
.Contains(odSelected)){ACanvas->Draw(ARect.Left,ARect.Top,ActiveWritersGuildLogo);}else{ACanvas->Draw(ARect.Left,ARect.Top,InActiveWritersGuildLogo);}}Na koniec jeszcze jedna uwaga: stosuj�c w�a�ciwe nazewnictwo zasobów w plikuzasobowym umo�liwiamy �adowanie ich w p�tli programowej.W poni�szymprzyk�adzie kolejne obrazki identyfikowane s� nazwami RESOURCE_Imagexx, gdziexx zmienia si� od 01 do 17:// w deklaracji klasy:TImageList*ImageList;//--------------------------------------------------------------------------//// w konstruktorze/ImageList =new TImageList(this);ImageList->Masked =false;for(int i=0;iResInstLoad(reinterpret_cast(HInstance),rtBitmap,AnsiString("RESOURCE_Image").cat_sprintf(�%.2d �,i+1),clWhite);}//--------------------------------------------------------------------------//// w destruktorzedelete ImageList;//-------------------------------------------------------------------------//Podzia� w�a�ciwo�ci na kategorie i ich rejestracjaPocz�wszy od wersji 5 C++Builder umo�liwia podzia� w�a�ciwo�ci komponentów nakategorie, co m.in.umo�liwia posegregowanie ich w ten sposób w oknieInspektora Obiektów (patrz rys.10.13).Kategoria w�a�ciwo�ci reprezentowanajest przez klas� wywodz�c� si� z klasy bazowej TPropertyCategory.W niniejszejsekcji poka�emy zwi�zek kategorii w�a�ciwo�ci z komponentami VCL.Tu prosz� wklei� rysunek z pliku AG-10-C.BMPRysunek 10.13 W�a�ciwo�ci komponentu w podziale na kategorie.Kategorie i ich tworzenieC++Builder predefiniuje 13 standardowych klas kategorii, zestawionych w tabeli10.13Tabela 10.13 Predefiniowane kategorie C++BuilderaNazwa kategoriiKlasa kategoriiActionTActionCategoryDataTDataCategoryDatabaseTDatabaseCategoryDrag, Drop and DockingTDragNDropCategoryHelp and HintsTHelpCategoryInputTInputCategoryLayoutTLayoutCategoryLegacyTLegacyCategoryLinkageTLinkageCategoryLocaleTLocaleCategoryLocalizableTLocalizableCategoryMiscellaneousTMiscellaneousCategoryVisualTVisualCategoryPobie�ny opis ka�dej z wymienionych kategorii znajduje si� w rozdziale 2, za�deklaracje klas wymienionych w tabeli 10.13 zawarte s� w pliku Dsgnintf.hpp.Zestaw predefiniowanych kategorii mo�e by� uzupe�niony o kategorie definiowaneprzez u�ytkownika.Nowa kategoria musi zosta� wyprowadzona z klasyTPropertyCategory lub której� z jej klas pochodnych.Wymaga si�, by nowa klasakategorii przedefiniowywa�a metody Name() i Description() � tak naprawd�przedefiniowywanie metody Description(), zwracaj�cej opis kategorii nie jestkonieczne, lecz z drugiej strony nie wymaga ono wi�kszego wysi�ku.Wydruki 10.38 i 10.39 przedstawiaj� szablony kodu dokonuj�cego rejestracjinowej kategorii.Fraz� NameOfCategory nale�y na nich zast�pi� nazw� kategorii,nale�y ponadto ustawi� w�a�ciwy wynik metod Name() i Description ().UWAGA DLA SK�ADACZA:W OSTATNIM ZDANIU WYRӯNIENIE FRAZY NameOfCategory JEST NIEZWYKLE ISTOTNE IMUSI BY� ZACHOWANE W SK�ADZIEWydruk 10.38 Kod deklaruj�cy now� kategori�#includeclass PACKAGE TNameOfCategory : public TPropertyCategory{typedef TPropertyCategory inherited;public:#pragma option push -w-inlvirtual AnsiString __fastcall Name(){return Name(__classid(TNameOfCategory));}#pragma option popstatic AnsiString __fastcall Name(System::TMetaClass* vmt);#pragma option push -w-inlvirtual AnsiString __fastcall Description(){return Description(__classid(TNameOfCategory));}#pragma option popstatic AnsiString __fastcall Description(System::TMetaClass* vmt);#pragma option push -w-inl// konstruktorinline __fastcall TNameOfCategory (void) : TPropertyCategory() { }#pragma option pop#pragma option push -w-inl// destruktorinline __fastcall virtual ~TNameOfCategory (void) { }#pragma option pop};UWAGA DLA SK�ADACZA:NA WYDRUKU 10.38 WYRӯNIENIE FRAZY NameOfCategory JEST NIEZWYKLE ISTOTNE I MUSIBY� ZACHOWANE W SK�ADZIEStatycznie zadeklarowane metody Name() i Description() musz� zosta�przedefiniowane � pierwsza z nich decyduje o nazwie kategorii widocznej w oknieInspektora Obiektów:Wydruk 10 [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • coubeatki.htw.pl