[ Pobierz całość w formacie PDF ]
.Dwukrotne klikniêcie lewym przyciskiemTComponentEditor:Je¿eli do menu kontekstowego dodano jakieœ opcje (GetVerbCount()>0) wykonywanajest akcja zwi¹zana z pierwszym wyœwietlanym elementem.Wywo³ywana jest metoda Edit().TDefaultEditor:W oknie edytora kodu tworzony jest szablon funkcji zdarzeniowej dla jednego zezdarzeñ OnChange, OnCreate lub OnClick zale¿nie od tego, dla którego z nichnajwczeœniej deklarowana jest w³aœciwoœæ zdarzeniowa.Je¿eli komponent nieobs³uguje ¿adnego z wymienionych zdarzeñ, wybierana jest pierwsza deklarowanaw³aœciwoœæ zdarzeniowa.Je¿eli komponent w ogóle nie posiada w³aœciwoœcizdarzeniowych, nie jest wykonywana ¿adna akcja.Analizuj¹c tê tabelê nietrudno zauwa¿yæ ró¿nicê pomiêdzy implementacjami metodyEdit() w obydwu wymienionych klasach.Je¿eli wiêc nowo tworzony edytorkomponentu tworzyæ szablon jakiejœ metody zdarzeniowej w odpowiedzi nadwukrotne klikniêcie, TDefaultEditor z pewnoœci¹ stanowiæ bêdzie dla niegoodpowiedniejsz¹ klasê bazow¹ ni¿ TComponentEditor.Aby prawid³owo zaimplementowaæ poszczególne metody edytora komponentu, nale¿ywpierw poznaæ spe³niane przez nie zadania; jest to przedmiotem opisuzamieszczonego w tabeli 10.12.Tabela 10.12 Metody wirtualne klas TComponentEditor i TDefaultEditorMetodaPrzeznaczenieint GetVerbCount(void)Okreœla liczbê opcji dodawanych do menu kontekstowego.AnsiString GetVerb(int index)Okreœla tekstow¹ reprezentacjê opcji menu kontekstowego, z nastêpuj¹cymizastrze¿eniami: Znak ampersanda (&) okreœla „akcelerator” (hotkey) dla opcji(na podstawie poprzedzanego znaku).Reprezentacja opcji wywo³uj¹cej dialogpowinna koñczyæ siê wielokropkiem (.).Tekst „–” (myœlnik) oznacza nie opcjê,lecz separator (divider) pomiêdzy opcjami.void PrepareItem(int Index, const Menus::TMenuItem* AItem)Wywo³ywana jest dla ka¿dej opcji menu kontekstowego przed jej wyœwietleniem, coumo¿liwia dokonanie pewnych akcji uzupe³niaj¹cych, na przyk³ad uczynienie danejopcji niedostêpn¹(AItem–>Enable=false).void ExecuteVerb(int Index)Wywo³ywana jest w momencie klikniêcia w któr¹œ z dodanych opcji menukontekstowego.Index oznacza numer opcji.void Edit(void)Wywo³ywana jest w momencie dwukrotnego klikniêcia w komponent; jej domyœlnyscenariusz opisany zosta³ w tabeli 10.11.void EditProperty(TPropertyEditor* PropertyEditor, bool& Continue,bool& FreeEditor)(tylko TDefaultEditor)Decyduje o tym, dla którego zdarzenia generowany bêdzie szablon funkcji obs³ugiw odpowiedzi na dwukrotne klikniêcie w komponent.void Copy(void)Wywo³ywana w momencie kopiowania edytowanego komponentu do Schowka.Stanowiokazjê do utworzenia w Schowku dodatkowego obrazu komponentu w specyficznymformacie, charakterystycznym dla jakiejœ zewnêtrznej aplikacji.Wydruki 10.31 i 10.32 przedstawiaj¹ deklaracje przyk³adowych klas edytorówwyprowadzonych z klas (odpowiednio) TComponentEditor i TDefaultEditor.Wydruk 10.31 Deklaracja przyk³adowego edytora wyprowadzonego z klasyTComponentEditor#include "dsgnintf.hpp"class TCustomComponentEditor : public TComponentEditor{typedef TComponentEditor inherited;public:// dwukrotne klikniêcievirtual void __fastcall Edit(void);// klikniêcie prawym przyciskiem// MENU KONTEKSTOWE - krok 1virtual int __fastcall GetVerbCount(void);// - krok 2virtual AnsiString __fastcall GetVerb(int Index);// - krok 3 (NIEOBOWI¥ZKOWY)virtual void __fastcall PrepareItem(int Index,const Menus::TMenuItem* AItem);// - krok 4virtual void __fastcall ExecuteVerb(int Index);// kopiowanie do Schowkavirtual void __fastcall Copy(void);public:#pragma option push -w-inlinline __fastcall virtualTCustomComponentEditor(Classes::TComponent* AComponent,_di_IFormDesigner ADesigner): TComponentEditor(AComponent, ADesigner){ }#pragma option poppublic:#pragma option push -w-inlinline __fastcall virtual ~TCustomComponentEditor(void) { }#pragma option pop};Wydruk 10.32 Deklaracja przyk³adowego edytora wyprowadzonego z klasyTDefaultEditor#include "dsgnintf [ Pobierz caÅ‚ość w formacie PDF ]

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