Məsləhətlər

OnBlick Hadisəsi olmadan CheckBox.Checked seçin

OnBlick Hadisəsi olmadan CheckBox.Checked seçin

TCheckBox Delphi idarəsi (yoxlanıla bilən) və ya kənarda (yoxlanılmayan) ola biləcək bir onay qutusunu göstərir. The Yoxlanılan əmlak onay qutusunun yoxlanıldığını və ya olmamasını göstərir.

İstifadəçi yoxlanılmış vəziyyətini dəyişdirmək üçün onay qutusunu kliklədikdə, onbox üçün OnClick hadisəsi işə salınır.

Onay qutusunun yoxlanılan əmlakının dəyişdirilməsi

Yox olduğu üçün OnChecked dəyişdirildi hadisə, yəqin ki, OnClick hadisəsində onay qutusunun yoxlanılmış vəziyyətindən asılı olaraq proqram məntiqini idarə edəcəksiniz.

Ancaq, əgər Proqramlı olaraq Checked əmlakını dəyişdirin, OnClick hadisəsi atəşə tutulacaq - istifadəçi qarşılıqlılığı baş tutmasa da.

OnClick hadisəsini "deaktivləşdirərkən" onay qutusunun yoxlanılmış mülkiyyətini proqramatik şəkildə dəyişdirməyin (ən azı) iki yolu var.

OnClick İşleyicisini çıxarın, Yoxlanılanı dəyişdirin, Orijinal OnClick işleyicisini geri qoyun

Win32 üçün Delphi-də bir hadisəyə yalnız bir hadisə idarəedicisi (prosedur) qoşula bilər (baxmayaraq ki, Win32 üçün Delphi-də multikast hadisələrini təqlid etmək yolu var). OnClick hadisəsinin bir TCheckBox idarəetmə imzası "obyektin TNotifyEvent = proseduru (Göndərən: TObject);"

Yoxlama qutusunun vəziyyətini dəyişdirməzdən əvvəl OnClick hadisəsinə NIL təyin etsəniz, orijinal OnClick hadisə ilə işləmə proseduruna qayıdırsınız - OnClick hadisəsi atəşə tutulmayacaqdır.

proseduru SetCheckedState (const checkBox: TCheckBox; const yoxlamaq: boolean);

var

onClickHandler: TNotifyEvent;

başlamaq

  ilə checkBox etmək

  başlamaq

onClickHandler: = OnClick;

OnClick: = nil;
Yoxlandı: = yoxlamaq;
OnClick: = onClickHandler;
  

son;

son;

Bu prosedurun istifadəsi sadədir:

 // keçid yoxlanılmış vəziyyətbaşlamaq

SetCheckedState (CheckBox1, CheckBox1 Yoxdur);

son;

Yuxarıdakı SetCheckedState, CheckBox1 onay qutusunun Checked əmlakını dəyişir.

Qorunan Hack: ClicksDisabled: = doğrudur

OnClick-in icra edilməsini dayandırmağın başqa bir yolu, bir onay qutusunun Yoxlanılan mülkiyyətini proqramla dəyişdirdiyiniz zaman "gizli" (qorunan) fürsətdən istifadə etməkdir. KliklərDisaktiv əmlak.

Yoxlanılan əmlak dəyişdikdə yerinə yetirilən TCheckBox-un SetState proseduruna baxaraq, ClicksDisabled doğru deyilsə OnClick atəşə tutulur.

ClicksDisabled qorunduğundan ona kodunuzdan daxil ola bilməzsiniz.

Xoşbəxtlikdən, qorunan hack texnikası bir Delphi nəzarətinin gizli / qorunan xüsusiyyətlərinə daxil olmağa imkan verir.

Bir komponentin qorunan üzvlərinə giriş bu mövzuda daha çox məlumat verir.

Nə etməli olduğunuz, TCheckBox'un ClicksDisabled xüsusiyyətini istifadə edəcəyiniz eyni bölmədə uzanan sadə bir dummy sinifini elan etməkdir.

Əllərinizi ClicksDisabled-də əldə etdikdən sonra onu həqiqətə qoyun, Yoxlanılan mülkü dəyişdirin, sonra ClicksDisabled-i yalan (standart dəyər) yerinə qoyun:

növü

TCheckBoxEx = sinif (TCheckBox);



ilə TCheckBoxEx (CheckBox1) dobegin

ClicksDisabled: = doğrudur;

Yoxlanılır: = Yoxdur;

ClicksDisabled: = saxta;

son;

Qeyd: yuxarıdakı kod qorunan ClicksDisabled mülkiyyətindən istifadə edərək "CheckBox1" adlı onay qutusunun Checked əmlakını dəyişir.

Delphi ilə tətbiqetmələr qurmaq