HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Saját HELP dialógusablak megjelenítése


Példaprogram letöltése

4555 bájt

Az alkalmazások dialógusablakának van olyan beállítási lehetősége, amelynél a Form fejlécében egy kérdőjel jelenik meg (biHelp) segítendő a felhasználót. A megfelelő műveletek elvégzésével megoldható, hogy a kérdőjelre kattintva a saját dialógusablakunk jelenjen meg tetszőleges információval. Cikkünkben annak járunk utána, hogy mit kell tennünk ennek megvalósításához.

Ahhoz, hogy a TForm komponens fejlécén egy kérdőjelet tartalmazó nyomógomb jelenjen meg, két dolgot kell tennünk:
  • A TForm BorderStyle property-jét bsDialog-ra kell állítani
  • A BorderIcon property esetében pedig a biHelp és a biSystemMenu elemet kell TRUE értékre állítani
A kérdőjelet tartalmazó nyomógomb lenyomásának eseményéhez pedig rendelhetünk egy olyan eseménykezelőt, melyben saját HELP dialógusablakot jelenítünk meg. Ehhez a WM_NCLBUTTONDOWN és a WM_NCLBUTTONUP Windows üzenetekhez kell egy-egy kezelőt írnunk. Ezek deklarációi a következők:
wmButtonDown
procedure wmButtonDown(
var Msg: TWMNCLButtonDown
); message WM_NCLBUTTONDOWN;
Kezelőmetódus a WM_NCLBUTTONDOWN üzenethez.
Paraméterek
var Msg: TWMNCLButtonDown
Az üzenet, melynek típusa a Messages unit-ban van deklarálva.
wmButtonUp
procedure wmButtonUp(
var Msg: TWMNCLButtonUp
); message WM_NCLBUTTONUP;
Kezelőmetódus a WM_NCLBUTTONUP üzenethez.
Paraméterek
var Msg: TWMNCLButtonUp
Az üzenet, melynek típusa a Messages unit-ban van deklarálva.
A WM_NCLBUTTONDOWN üzenetre írt metódus egyszerűbb, itt csak arról gondoskodunk, hogy amikor az egér bal gombját lenyomjuk, és kurzor a nyomógomb fölött van, akkor ne történjen semmi, egyéb esetben viszont történjen meg az üzenet feldolgozása.
if Msg.HitTest = HTHELP then begin
  Msg.Result := 0;
end
else
  inherited;
A másik metódusban kezeljük le az egérgomb nem-kliensterület fölötti felengedésnek eseményét. A TWMNCLButtonUp típus deklarációja a következő a Messages unit-ban.
TWMNCHitMessage = packed record
  Msg: Cardinal;
  HitTest: Longint;
  XCursor: Smallint;
  YCursor: Smallint;
  Result: Longint;
end;
A HitTest mezőből kérdezhető le, hogy a kattintás tulajdonképpen melyik gomb, vagy objektum fölött történt. Ekkor egy WM_NCHITTEST üzenet lesz elküldve, melynek visszatérési értéke egy konstans. Amennyiben a konstans értéke HTHELP, akkor a kattintás a kérdőjeles gomb fölött történt. Ekkor megjelenítjük saját dialógusablakot, mely most egy TForm objektum.
if Msg.HitTest = HTHELP then begin
  Msg.Result := 0;
  Form2.ShowModal;
end
else 
  inherited;

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 737. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |