TCheckBox Delfi vadīkla parāda izvēles rūtiņu, kas var būt ieslēgta (atzīmēta) vai izslēgta (nav atzīmēta). Pārbaudīts īpašums norāda, vai izvēles rūtiņa ir atzīmēta vai nav.
Kad lietotājs noklikšķina uz izvēles rūtiņas, lai mainītu tās pārbaudīto stāvokli, tiek aktivizēts izvēles rūtiņas OnClick notikums.
Mainot izvēles rūtiņas pārbaudīto īpašumu
Tā kā nav OnCheckedChanged ja jūs, iespējams, darbosities ar programmas loģiku atkarībā no izvēles rūtiņas stāvokļa OnClick notikumā.
Tomēr, ja jūs programmiski mainot pārbaudīto īpašumu, OnClick notikums tiks atlaists - kaut arī nenotika nekāda lietotāja mijiedarbība.
Ir (vismaz) divi veidi, kā programmētiski mainīt izvēles rūtiņas pārbaudīto īpašumu, vienlaikus “atspējojot” OnClick notikumu.
Noņemiet OnClick apstrādātāju, Mainiet pārbaudīto, ievietojiet atpakaļ oriģinālo OnClick apstrādātāju
Delphi for Win32 notikumam var būt pievienots tikai viens notikumu apstrādātājs (procedūra) (kaut arī ir veids, kā atdarināt multicast pasākumus Delphi for Win32). OnClick notikuma paraksts par TCheckBox vadīklu ir "tipa TNotifyEvent = objekta procedūra (Sender: TObject)".
Ja piešķirat NIL OnClick notikumam, pirms maināt izvēles rūtiņas stāvokli, pēc tam atgriezieties pie sākotnējās OnClick notikumu apstrādes procedūras - OnClick notikums netiks atlaists.
procedūra SetCheckedState (const checkBox: TCheckBox; const pārbaude: Būla);
var
onClickHandler: TNotifyEvent;
sākt
ar checkBox darīt
sākt
onClickHandler: = OnClick;
OnClick: = nulle;
Pārbaudīts: = pārbaudīt;
OnClick: = onClickHandler;
beigas;
beigas;
Šīs procedūras izmantošana ir vienkārša:
// pārslēgt Pārbaudīts stāvoklissākt
SetCheckedState (CheckBox1, NOT CheckBox1.Checked);
beigas;
Iepriekš esošajā SetCheckedState tiek pārslēgts izvēles rūtiņas CheckBox1 pārbaudītais īpašums.
Aizsargāts kapāt: ClicksDisabled: = patiess
Vēl viens veids, kā apturēt OnClick izpildi, programmveidīgi mainot izvēles rūtiņas Pārbaudītais rekvizīts, ir izmantot “paslēpto” (aizsargāto) ClicksDisabled īpašums.
Apskatot TCheckBox SetState procedūru, kas tiek izpildīta ikreiz, kad mainās pārbaudītais īpašums, OnClick tiek atlaists, ja ClicksDisabled nav taisnība.
Tā kā ClicksDisabled ir aizsargāts, nevarat tam piekļūt no sava kods.
Par laimi aizsargātā kapātēšanas tehnika ļauj piekļūt šīm Delphi vadības slēptajām / aizsargātajām īpašībām.
Piekļūstot komponenta aizsargātajiem dalībniekiem, tiek sniegta vairāk informācijas par tēmu.
Kas jums jādara, ir jādeklarē vienkārša manekena klase, kas paplašina TCheckBox tajā pašā vienībā, kurā izmantosit ClicksDisabled īpašumu.
Kad esat nokļuvis ClicksDisabled, vienkārši iestatiet to uz true, mainiet pārbaudīto īpašumu un pēc tam iestatiet ClicksDisabled atpakaļ uz false (noklusējuma vērtība):
tips
TCheckBoxEx = klase (TCheckBox);
...
ar TCheckBoxEx (CheckBox1) dobegin
ClicksDisabled: = patiess;
Pārbaudīts: = NAV pārbaudīts;
ClicksDisabled: = nepatiess;
beigas;
Piezīme: ar iepriekš norādīto kodu tiek pārslēgts izvēles rūtiņas Pārbaudītais īpašums ar nosaukumu “CheckBox1”, izmantojot aizsargāto īpašību “ClicksDisabled”.
Programmu veidošana ar Delphi
- Iesācēju ceļvedis Delphi datu bāzu programmēšanai
- Pamata diagrammu integrēšana Delphi lietojumprogrammās
- Kā pārvietot un mainīt vadības ierīces izmērus izpildes laikā
- Daudzpavedienu Delphi datu bāzes vaicājumi