HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

ListView elemeinél lévő Checkbox-ra történő kattintás eseményének létrehozása


Példaprogram letöltése

4692 bájt

Készítünk egy új komponenst a ListView-ből származtatva, mely kiegészül egy új eseménnyel OnCheckboxClick névvel, amely akkor kerül aktivizálásra, ha a ListView egyes elemei előtt lévő Checkbox-ra kattint a felhasználó.

A mellékelt példaprogram megnyitása előtt az ExListView.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
Első lépésként létrehozunk egy új eseménytípust TCheckboxClickEvent névvel, mely két paramétert tartalmaz, az egyik maga a komponens objektuma lesz, míg a másikban a ListView azon elemét kapjuk majd meg TListItem típusban, melynél a kattintás történt.
TCheckboxClickEvent = procedure (Sender: TObject; Item: TListItem) of object;
Az új komponensen belül fel kell használnunk az OnMouseUp eseményt, melyet a MouseUp eljárás felülírásával tehetünk meg. Amikor tehát a felhasználó felengedi az egér gombját a ListView területén belül, akkor ellenőrizzük, hogy hol történt a kattintás.
procedure TExListView.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  Item: TListItem;
  HitTest: THitTests;
begin
Ehhez a GetItemAt függvény segítségével lekérdezzük az egér kattintás x, y koordinátájában lévő ListView elemet, majd a GetHitTestInfoAt függvénnyel meghatározzuk, hogy ezen a koordinátán milyen részobjektuma található a ListView komponensnek.
  Item:=GetItemAt(x, y);
  HitTest:=GetHitTestInfoAt(x, y);
Mivel a kattintás történhet olyan helyen is a ListView komponensben, ahol nem található egyetlen elem sem, így következő lépésként ellenőriznünk kell, hogy az előző két függvény értékes adatot szolgáltatott-e. Abban az esetben, ha a GetHitTestInfoAt függvény által szolgáltatott eredmény halmazban megtalálható a htOnStateIcon konstans, akkor biztosak lehetünk abban, hogy a kattintás valamely elem CheckBox-án történt. Ebben az esetben aktivizálhatjuk a létrehozott eseményünket.
  if (Item<>nil) and (HitTest=[htOnStateIcon]) and (Assigned(FOnChecboxClick)) then begin
    FOnChecboxClick(Self, Item);
  end;
end;

Cikksorozat

#IDKategóriaCikk címeSorozat
1488DelphiMS SQL tárolt eljárások1. rész
1499DelphiMS SQL tárolt eljárások2. rész
1507DelphiMS SQL tárolt eljárások3. rész
1519DelphiMS SQL tárolt eljárások4. rész
1526DelphiMS SQL tárolt eljárások5. rész
1537DelphiMS SQL tárolt eljárások6. rész
1546DelphiMS SQL tárolt eljárások7. rész
1553DelphiMS SQL tárolt eljárások8. rész
1564DelphiMS SQL tárolt eljárások9. rész
1573DelphiMS SQL tárolt eljárások10. rész
1582DelphiMS SQL tárolt eljárások11. rész
1591DelphiMS SQL tárolt eljárások12. rész
1600DelphiMS SQL tárolt eljárások13. rész
1609DelphiMS SQL tárolt eljárások14. rész
1617DelphiMS SQL tárolt eljárások15. rész
1626DelphiMS SQL tárolt eljárások16. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 488. 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 |