Jak cię złapią, to znaczy, że oszukiwałeś. Jak nie, to znaczy, że posłużyłeś się odpowiednią taktyką.
CalcHintRect() Windows::TRect __fastcall CalcHintRect( int MaxWidth, const System::AnsiString AHint, void* AData) Oblicza rozmiar prostokÄ…ta niezbÄ™dnego do wyÅ›wietlenia podpowiedzi okreÅ›lonej przez parametry AHint i AData. Algorytm stosowany przez tÄ™ funkcjÄ™ stara siÄ™ zmieÅ›cić wyÅ›wietlany tekst w jednym wierszu, jeżeli jednak nie bÄ™dzie to możliwe mimo zwiÄ™kszenia szerokoÅ›ci okna do wielkoÅ›ci MaxWidth, tekst zostanie podzielony miÄ™dzy kilka wierszy. ActivateHint() void __fastcall ActivateHint( const Windows::TRect &Rect, const System::AnsiString AHint) Dokonuje wyÅ›wietlenia okna podpowiedzi we współrzÄ™dnych okreÅ›lonych przez parametr Rect. Jeżeli prostokÄ…t okreÅ›lony przez ten parametr wykracza choć częściowo poza ekran, metoda THintWindow–>ActivateHint() zmienia jego poÅ‚ożenie (i być może rozmiar) na najbardziej zbliżone, lecz caÅ‚kowicie mieszczÄ…ce siÄ™ w obrÄ™bie ekranu. Metoda ta dokonuje także przypisania tekstu podpowiedzi do wÅ‚aÅ›ciwoÅ›ci Caption okna jeszcze przed jego wyÅ›wietleniem; za poÅ›rednictwem tej wÅ‚aÅ›ciwoÅ›ci tekst podpowiedzi przekazywany jest do metody Paint(). ActivateHintData() void __fastcall ActivateHintData( const Windows::TRect &Rect, const System::AnsiString AHint, void * AData) Stanowi alternatywny (do metody ActivateHint) sposób spowodowania wyÅ›wietlenia podpowiedzi z jednoczesnym przekazaniem danych pomocniczych; wskaźnik do tych danych – przekazany pod postaciÄ… ostatniego parametru – dostÄ™pny jest w metodzie CalcHintRect() jako ostatni parametr jej wywoÅ‚ania. Standardowo (tj. w klasie THintWindow) implementacje metod ActivateHintData() i CalcHitRect() ignorujÄ… zupeÅ‚nie parametr AData, metoda ActivateHintData() jest wiÄ™c równoważna metodzie ActivateHint(). IsHintMsg() bool IsHintMsg(tagNSG& Msg) Klasyfikuje dany komunikat pod kÄ…tem tego, czy w wyniku jego wystÄ…pienia powinno nastÄ…pić zamkniÄ™cie okna podpowiedzi; gdy otwarte jest okno podpowiedzi kontekstowej, obiekt Application przekazuje do jego metody IsHintMsg() każdy z komunikatów otrzymanych przez aplikacjÄ™ i w przypadku otrzymania wyniku true likwiduje podpowiedź. PrzedefiniowujÄ…c metody wymienione w tabeli 3.6, zdefiniowaliÅ›my na potrzeby naszego projektu nowÄ… klasÄ™ podpowiedzi – TCalculatorHintWindow(). Jej deklaracjÄ™ prezentujemy na wydruku 3.8. Wydruk 3.8. Deklaracja alternatywnej klasy podpowiedzi – TCalculatorHintWindow class TCalculatorHintWindow : public THintWindow { typedef THintWindow inherited; protected: virtual void __fastcall Paint(void); virtual void __fastcall CreateParams(TCreateParams &Params); public: __fastcall virtual TCalculatorHintWindow(Classes::TComponent* AOwner); virtual void __fastcall ActivateHint(const Windows::TRect& Rect, const AnsiString AHint); virtual void __fastcall ActivateHintData(const Windows::TRect& Rect, const AnsiString AHint, void* AData); virtual Windows::TRect __fastcall CalcHintRect(int MaxWidth, const AnsiString AHint, void* AData); virtual bool __fastcall IsHintMsg(tagMSG& Msg); __property BiDiMode ; __property Caption ; __property Color ; __property Canvas ; __property Font ; public: inline __fastcall virtual ~TCalculatorHintWindow(void) { } public: inline __fastcall TCalculatorHintWindow(HWND ParentWindow) : THintWindow(ParentWindow) { } }; Faktycznemu przedefiniowaniu ulegÅ‚y trzy z wymienionych metod: CreateParams(), Paint() i CalcHintRect(); definicjÄ™ klasy przedstawia wydruk 3.9. Wydruk 3.9. Implementacja metod klasy TCalculatorHintWindow __fastcall TCalculatorHintWindow::TCalculatorHintWindow( Classes::TComponent* AOwner): THintWindow(AOwner) { Canvas->Font->Name = "Arial"; Canvas->Font->Color = clBlack; }
|
WÄ…tki
|