[ Pobierz całość w formacie PDF ]
.// Generowany filtr: ("OnMouse*", 0, 0), czyli wszystkie w³aœciwoœci// o nazwie zaczynaj¹cej siê od OnMouse//// RegisterPropertyInCategory(TMetaClass* ACategoryClass,// const AnsiString APropertyName);RegisterPropertyInCategory(__classid(TMouseCategory),"OnMouse*");// 2 - - Rejestracja dwóch filtrów w kategorii TMouseCategory.// Generowane s¹ dwa filtry://// ("", 0, CursoTypeInfo), czyli wszystkie w³aœciwoœæi typu TCursor// ("OnMouse*", 0, 0), czyli wszystkie w³aœciwoœci o nazwie// zaczynaj¹cej siê od OnMouse//// RegisterPropertiesInCategory(TMetaClass* ACategoryClass,// const System::TVarRec* AFilters,// const int AFilters_Size);PTypeInfo CursorTypeInfo= *Typinfo::GetPropInfo(__typeinfo(TForm),"Cursor")->PropType;RegisterPropertiesInCategory(__classid(TMouseCategory),ARRAYOFCONST(( CursorTypeInfo,AnsiString("OnMouse*"),AnsiString("EventName2") )) );// 3 - - Register two property filters for TMouseCategory.// The first filter is ("OnClick", 0, 0), i.e.for any property// (probably event) whose name is "OnClick".// The second filter is ("OnDblClick", 0, 0), i.e.for any property// (probably event) whose name is "OnDblClick".// Use :// RegisterPropertiesInCategory(TMetaClass* ACategoryClass,// TMetaClass* AComponentClass,// const AnsiString* AFilters,// const int AFilters_Size)// 3 - - Rejestracja dwóch filtrów w kategorii TMouseCategory.// Generowane s¹ dwa filtry://// ("OnClick", 0, 0), czyli dowolna w³aœciwoœæ o nazwie OnClick// ("OnDblClick", 0, 0), czyli dowolna w³aœciwoœæ o nazwie// OnDblClick//// RegisterPropertiesInCategory(TMetaClass* ACategoryClass,// TMetaClass* AComponentClass,// const AnsiString* AFilters,// const int AFilters_Size)TMetaClass* AnyComponent = 0;RegisterPropertiesInCategory( __classid(TMouseCategory),AnyComponent,OPENARRAY( AnsiString,("OnClick","OnDblClick") ) );}}Zwróæ uwagê, i¿ w trzecim przyk³adzie parametr okreœlaj¹cy dopuszczalny typkomponentu jest pustym wskaŸnikiem; nie mo¿na by³o u¿yæ w tej roli sta³ej 0,gdy¿ kompilator nie potrafi³by jednoznacznie okreœliæ w³aœciwego aspektuprzeci¹¿onej funkcji — sta³a 0 mog³aby bowiem równie dobrze oznaczaæ pustywskaŸnik PTypeInfo.W analogiczny sposób pusty wskaŸnik PTypeInfo w przyk³adzienr 2 nale¿a³oby zadeklarowaæ jakoPTypeInfo AnyPropertyType = 0;PodsumowanieNiniejszy rozdzia³ poœwiêciliœmy tym elementom C++Buildera, które wi¹¿¹ siêbezpoœrednio z operowaniem komponentami, a wiêc edytorom komponentów i edytoromich w³aœciwoœci.Na pocz¹tku przedstawiliœmy problematykê tworzenia edytorów w³aœciwoœci drog¹przedefiniowywania metod standardowej klasy bazowej TPropertyEditor.Opisaliœmyznaczenie poszczególnych metod tej klasy ze szczególnym uwzglêdnieniem metodnowych dla wersji 5 C++Buildera.Zaprezentowaliœmy tak¿e obszerny materia³dotycz¹cy wykorzystania grafiki w procesie edycji w³aœciwoœci.Kolejn¹ czêœæ rozdzia³u poœwiêciliœmy edytorom komponentów.Przedstawiliœmymetody odpowiedzialne za szeroko pojêt¹ obs³ugê menu kontekstowego komponentu irealizacjê czynnoœci zwi¹zanych z jego opcjami.Zaprezentowaliœmy tak¿e dwarodzaje reakcji komponentu na jego dwukrotne klikniêcie i zwi¹zane z tym dwieklasy bazowe edytorów komponentów: TComponentEditor i TDefaultEditor.Ze wzglêdu na powszechne wykorzystywanie elementów graficznych nie tylko wtworzonych aplikacjach, lecz tak¿e w narzêdziach IDE, przedstawiliœmy koncepcjêwykorzystania obrazków zgrupowanych w plikach zasobowych na potrzeby edytorówkomponentów i edytorów w³aœciwoœci.Stopieñ ogólnoœci opisywanych przy tejokazji zagadnieñ czyni je tak¿e stosowalnymi do tworzonych projektów jakoca³oœci.Integracja edytorów komponentów i edytorów w³aœciwoœci ze œrodowiskiem IDEodbywa siê poprzez ich rejestracjê.Przedstawiliœmy funkcje dokonuj¹ce tejrejestracji, przy okazji zajmuj¹c siê elementami informacji RTTIdostarczaj¹cymi niezbêdnych do tego informacji.Na zakoñczenie zajêliœmy siê problematyk¹ klasyfikowania w³aœciwoœcikomponentów w okreœlonych kategoriach.Przedstawiliœmy s³u¿¹ce temu celowifunkcje i obiekty VCL, ilustruj¹c kilkoma przyk³adami ich zastosowanie [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • rurakamil.xlx.pl
  •