TCheckBox Delphi kontrola prikazuje potvrdni okvir koji može biti uključen (potvrđen) ili isključen (nije uključen). Provjereno vlasništvo određuje je li potvrdni okvir potvrđen ili ne.
Kada korisnik klikne na potvrdni okvir da promijeni stanje Provjereno, aktivira se događaj OnClick za potvrdni okvir.
Promjena potvrđenog svojstva potvrdnog okvira
Budući da nema OnCheckedChanged događaja, vjerojatno ćete rukovati programskom logikom ovisno o provjerenom stanju potvrdnog okvira u njegovom događaju OnClick.
Međutim, ako vi programski promijeniti svojstvo Provjereno, događaj OnClick će biti pokrenut - iako se nije odvijala interakcija korisnika.
Postoje (barem) dva načina za programiranje promjena označenog svojstva potvrdnog okvira, pri čemu se "onemogućuje" OnClick događaj.
Uklonite OnClick Handler, promijenite označeno, vratite izvorni program onClick
U programu Delphi za Win32 događaj može imati samo jedan aparat za obradu događaja (postupak) (iako postoji način oponašanja multicast događaja u Delphiju za Win32). Potpis OnClick događaja TCheckBox kontrole je "upišite TNotifyEvent = postupak (pošiljalac: TObject) objekta;"
Ako dodijelite NIL događaju OnClick prije promjene stanja potvrdnog okvira, vratite se na izvorni postupak rukovanja događajem OnClick - događaj OnClick neće se pokrenuti.
postupak SetCheckedState (const checkBox: TCheckBox; const provjera: boolean);
var
onClickHandler: TNotifyEvent;
početi
s potvrdni okvir čini
početi
onClickHandler: = OnClick;
OnClick: = nula;
Provjereno: = provjera;
OnClick: = onClickHandler;
kraj;
kraj;
Upotreba ovog postupka je jednostavna:
// prebaciti provjereno stanjepočeti
SetCheckedState (CheckBox1, NOT CheckBox1.Checked);
kraj;
Gore gore postavljena SetCheckedState mijenja označeno svojstvo CheckBox1.
Zaštićeni hack: ClicksDisabled: = true
Drugi način da se zaustavi izvršavanje OnClick-a, kada programsko promijenite potvrđeno svojstvo potvrdnog okvira, je iskoristiti "skriveno" (zaštićeno) ClicksDisabled nekretnine.
Pregledavanjem postupka SetState TCheckBox-a koji se izvršava kad god se promijeni Provjereno svojstvo OnClick se aktivira ako ClicksDisabled nije istinit.
Budući da je ClicksDisabled zaštićen, ne možete mu pristupiti s adrese kodirati.
Srećom, zaštićena hack tehnika omogućuje vam pristup skrivenim / zaštićenim svojstvima Delphi kontrole.
Pristup zaštićenim članovima komponente pruža više informacija o temi.
Ono što trebate učiniti je da se deklarira jednostavna klasa lutke koja proširuje TCheckBox u istoj jedinici na kojoj ćete koristiti svojstvo ClicksDisabled.
Jednom kada primite ClicksDisabled, jednostavno ga postavite na true, promijenite svojstvo Checked, a zatim vratite ClicksDisabled na false (zadana vrijednost):
tip
TCheckBoxEx = klasa (TCheckBox);
...
s TCheckBoxEx (CheckBox1) dobegin
ClicksDisabled: = istina;
Provjereno: = NIJE provjereno;
ClicksDisabled: = false;
kraj;
Napomena: gornji kôd prebacuje označeno svojstvo potvrdnog okvira pod nazivom "CheckBox1" pomoću zaštićenog svojstva ClicksDisabled.
Izrada aplikacija s Delphi
- Vodič za početnike za programiranje Delphi baze podataka
- Integriranje osnovnih grafikona u Delphi aplikacije
- Kako premjestiti i promijeniti veličinu kontrola u vrijeme izvođenja
- Višestrani upiti u Delphi bazu podataka