reprezentowane jej przez właściwość Canvas, zaś prostokąt reprezentujący obszar klienta ukrywa się pod właściwością ClientRect...

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
Powered by wordpress | Theme: simpletex | © Jak ciÄ™ zÅ‚apiÄ…, to znaczy, że oszukiwaÅ‚eÅ›. Jak nie, to znaczy, że posÅ‚użyÅ‚eÅ› siÄ™ odpowiedniÄ… taktykÄ….