Iestatiet izvēles rūtiņu. Pārbaudīts bez OnClick notikuma

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)".

instagram viewer

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
instagram story viewer