[ Pobierz całość w formacie PDF ]
.Create() w systemiepomocy, gdzie opisane s¹ dopuszczalne postaci wyra¿eñ blankietowych).Funkcja RegisterPropertiesInCategory() równie¿ jest funkcj¹ przeci¹¿on¹:function RegisterPropertiesInCategory(ACategoryClass: TPropertyCategoryClass;const AFilters: array of const): TPropertyCategory; overload;function RegisterPropertiesInCategory(ACategoryClass: TPropertyCategoryClass;AComponentClass: TClass; const AFilters: array of string): TPropertyCategory;overload;function RegisterPropertiesInCategory(ACategoryClass: TPropertyCategoryClass;APropertyType: PTypeInfo; const AFilters: array of string): TPropertyCategory;overload;Klasy kategorii w³aœciwoœciTyp TPropertyCategoryClass jest metaklas¹ obejmuj¹c¹ klasy zgodne z klas¹TPropertyCategory, bazow¹ dla wszystkich klas kategorii:TPropertyCategoryClass = class of TPropertyCategory;TPropertyCategory = class(TObject)privateFList: TObjectList;FMatchCount: Integer;FEditor: TPropertyEditor;FEnabled, FVisible: Boolean;FGroup: Integer;FName: string;protectedfunction GetFilter(Index: Integer): TPropertyFilter;publicconstructor Create(const AName: string);destructor Destroy; override;function Add(AFilter: TPropertyFilter): TPropertyFilter;function Count: Integer;function Match(const APropertyName: string; AComponentClass: TClass;APropertyType: PTypeInfo): Boolean;procedure ClearMatches;procedure FreeEditorGroup(AGroup: Integer);property Filters[Index: Integer]: TPropertyFilter read GetFilter;property MatchCount: Integer read FMatchCount;property Visible: Boolean read FVisible write FVisible;property Editor: TPropertyEditor read FEditor write FEditor;property Name: string read FName;end;Delphi 6 definiuje 12 standardowych klas kategorii, uwzglêdniaj¹cych charakteri przeznaczenie ró¿norodnych w³aœciwoœci; wymieniamy je w tabeli 12.4.Tabela 12.4.Standardowe klasy kategorii w³aœciwoœci w Delphi 6Klasa kategoriiCharakter w³aœciwoœciPrzyk³ady w³aœciwoœciTActionCategoryW³aœciwoœci zwi¹zane z akcjami wykonywanymi w trakcie wykonania programuTControl.Enabled, TControl.HintTDatabaseCategoryW³aœciwoœci zwi¹zane z operacjami bazodanowymiTQuery.DataBase, TQuery.SQLTDragNDropCategoryW³aœciwoœci zwi¹zane z operacjami przeci¹gania oraz dokowaniaTControl.DragCursor, TControl.DragKindTHelpCategoryW³aœciwoœci zwi¹zane z systemem pomocy i podpowiedziamiTWinControl.Hint, TWinControl.HelpContextTLayoutCategoryW³aœciwoœci okreœlaj¹ce wygl¹d kontrolki w czasie projektowaniaTControl.Top, TControl.LeftTLegacyCategoryW³aœciwoœci zwi¹zane z przestarza³ymi operacjamiTWinControl.Ctl3D, TWinControl.ParentCtl3DTLinkageCategoryW³aœciwoœci zapewniaj¹ce zwi¹zek pomiêdzy komponentamiTDataSource.DataSetTLocaleCategoryW³aœciwoœci zwi¹zane z ustawieniami miêdzynarodowymiTControl.BiDiMode, TControl.ParentBiDiModeTLocalizableCategoryW³aœciwoœci ró¿nicowane w narodowych wersjach aplikacjiTytu³y komponentów (Caption)TMiscellaneousCategoryW³aœciwoœci nie zarejestrowane jawnie w ¿adnej innej kategoriiNazwy komponentów(Name), TSpeedButton.AllowAllUpTVisualCategoryW³aœciwoœci zwi¹zane z wygl¹dem komponentu w czasie wykonania programuTScrollBox.Align, TScrollBox.VisibleTInputCategoryW³aœciwoœci zwi¹zane z wprowadzaniem danych (poza kontekstem bazodanowym)TEdit.Enabled, TEdit.ReadOnlyPoni¿sza instrukcja dokonuje zaliczenia w³aœciwoœci Keen komponentu TNeato dokategorii TActionCategory:RegisterPropertyInCategory(TActionCategory, TNeato, 'Keen');Powinna siê ona znaleŸæ w treœci procedury Register(), najlepiej w moduledefiniuj¹cym komponent TNeato.Przyporz¹dkowywanie okreœlonym w³aœciwoœciom okreœlonych kategorii nie jest w¿aden sposób uregulowane ani ograniczone przez zasady Object Pascala — wszczególnoœci, pojedyncza w³aœciwoœæ mo¿e nale¿eæ do dowolnej liczbykategorii.Definiowanie w³asnych kategorii w³aœciwoœciWykorzystuj¹c naturalne dla modelu obiektowego dziedziczenie, u¿ytkownik mamo¿liwoœæ definiowania w³asnych kategorii w³aœciwoœci.Zdefiniowanie nowejklasy kategorii sprowadza siê do zaimplementowania jej wirtualnych metod Name()i Description().W charakterze przyk³adu zdefiniujemy kategoriê TSoundCategory obejmuj¹c¹niektóre w³aœciwoœci komponentu TddgWaveFile.Prezentowany na wydruku 12.9modu³ zawiera implementacjê tej kategorii, jak równie¿ implementacje edytorakomponentu i edytora jego w³aœciwoœci WaveName.Wydruk 12.9.Implementacja kategorii TSoundCategory oraz edytorów: komponentuTddgWaveFile i jego w³aœciwoœci WaveNameunit WavezEd;interfaceuses PropertyCategories, DesignEditors, DesignIntf;type{ Edytor w³aœciwoœci TddgWaveFile.WaveName }TWaveFileStringProperty = class(TStringProperty)publicprocedure Edit; override;function GetAttributes: TPropertyAttributes; override;end;{ Edytor komponentu TddgWaveFile [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • listy-do-eda.opx.pl