Iestatiet izvēles rūtiņu. Atzīmēts bez OnClick notikuma
Notiek ClicksDisabled aizsargātā īpašuma slēpšana
Getty Images / Deivids Goulds
TCheckBox Delfos vadīkla parāda izvēles rūtiņu, kas var būt ieslēgta (atzīmēta) vai izslēgta (neatzīmēta). The 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ā statusu Atzīmēts, tiek aktivizēts izvēles rūtiņas OnClick notikums.
Izvēles rūtiņas atzīmētā īpašuma maiņa
Tā kā nav OnCheckedChanged notikumu, jūs, iespējams, apstrādāsit programmas loģiku atkarībā no tā OnClick notikumā atzīmētās izvēles rūtiņas stāvokļa.
Tomēr, ja jūs programmatiski mainot rekvizītu Checked, tiks aktivizēts OnClick notikums -- lai gan lietotāja mijiedarbība nenotika.
Ir (vismaz) divi veidi, kā programmatiski mainīt izvēles rūtiņas atzīmēto rekvizītu, vienlaikus 'atspējojot' OnClick notikumu.
Noņemiet OnClick apdarinātāju, izmainiet atzīmi, ievietojiet atpakaļ sākotnējo OnClick apdarinātāju
Programmā Delphi for Win32 notikumam var būt pievienots tikai viens notikumu apstrādātājs (procedūra), lai gan Delphi for Win32 ir veids, kā atdarināt multiraides notikumus. OnClick notikuma TCheckBox vadīklas paraksts ir 'tips TNotifyEvent = objekta procedūra (Sūtītājs: TObject);'
Ja piešķirat NIL OnClick notikumam pirms izvēles rūtiņas stāvokļa maiņas, pēc tam atgriezieties pie sākotnējās OnClick notikumu apstrādes procedūras — OnClick notikums netiks aktivizēts.
|_+_||_+_||_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
Pārbaudīts := pārbaudīt;
OnClick := onClickHandler;
|_+_|
|_+_|
Šīs procedūras izmantošana ir vienkārša:
|_+_||_+_|
|_+_|
|_+_|
Iepriekš redzamais SetCheckedState pārslēdz izvēles rūtiņas CheckBox1 rekvizītu Checked.
Aizsargāta uzlaušana: ClicksDisabled: = patiess
Vēl viens veids, kā apturēt OnClick izpildi, programmatiski mainot izvēles rūtiņas rekvizītu Atzīmēts, ir izmantot 'slēpto' (aizsargāto) priekšrocības. KlikšķiAtspējoti īpašums.
Aplūkojot TCheckBox procedūru SetState, kas tiek izpildīta ikreiz, kad mainās rekvizīts Checked, OnClick tiek aktivizēts, ja ClicksDisabled nav patiess.
Tā kā ClicksDisabled ir aizsargāts, jūs tam nevarat piekļūt no sava kodu .
Par laimi, aizsargātā uzlaušanas tehnika ļauj piekļūt šīm Delphi vadīklas slēptajām/aizsargātajām īpašībām.
Piekļūstošie komponenta aizsargātie dalībnieki sniedz plašāku informāciju par šo tēmu.
Tas, kas jums jādara, ir deklarēt vienkāršu fiktīvu klasi, kas paplašina TCheckBox tajā pašā vienībā, kurā izmantosit rekvizītu ClicksDisabled.
Kad esat ieguvis ClicksDisabled, vienkārši iestatiet to uz True, mainiet rekvizītu Checked un pēc tam iestatiet ClicksDisabled atpakaļ uz false (noklusējuma vērtība):
|_+_||_+_||_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
Piezīme: iepriekš minētais kods pārslēdz izvēles rūtiņas ar nosaukumu CheckBox1 rekvizītu Atzīmēts, izmantojot aizsargāto rekvizītu ClicksDisabled.
Lietojumprogrammu veidošana ar Delphi
- Delphi datu bāzes programmēšanas rokasgrāmata iesācējiem
- Pamata diagrammu integrēšana Delphi lietojumprogrammās
- Kā pārvietot vadīklas un mainīt tās izmērus izpildes laikā
- Daudzpavedienu Delphi datu bāzu vaicājumi