Подесите ЦхецкБок. Означено без догађаја ОнЦлицк

Тхе ТЦхецкБок Делпхи контрола приказује потврдни оквир који може бити укључен (потврђен) или искључен (неозначен). Тхе Проверена имовина одређује да ли је потврдни оквир потврђен или не.

Када корисник кликне на потврдни оквир да промени стање провере, активира се догађај ОнЦлицк за потврдни оквир.

Промена потврђене особине у пољу за потврду

Пошто нема ОнЦхецкедЦхангед догађаја, вероватно ћете руковати програмском логиком овисно о одјављеном стању у пољу за потврду у његовом догађају ОнЦлицк.

Међутим, ако ви програмски промените означену својину, ОнЦлицк догађај ће бити покренут - иако се није десила интеракција корисника.

Постоје (најмање) два начина да се програмски промијене означена својства потврдног оквира, а да се „онемогући“ ОнЦлицк догађај.

Уклоните ОнЦлицк Хандлер, Промените означено, вратите оригинални ОнЦлицк руковатељ

У Делпхи за Вин32 догађај може имати само један руковаоц догађаја (поступак) прикључен на њега (иако постоји начин да опонашате мултицаст догађаје у Делпхи за Вин32). Потпис ОнЦлицк догађаја ТЦхецкБок контроле је "откуцајте ТНотифиЕвент = поступак (пошиљалац: ТОбјецт) објекта;"

instagram viewer

Ако доделите НИЛ догађају ОнЦлицк пре него што промените стање у пољу за потврду, вратите се на оригинални поступак руковања догађајем ОнЦлицк - ОнЦлицк догађај неће бити покренут.

процедура СетЦхецкедСтате (цонст цхецкБок: ТЦхецкБок; цонст провера: боолеан);

вар

 онЦлицкХандлер: ТНотифиЕвент;

започети

са поље за потврду урадити

започети

 онЦлицкХандлер: = ОнЦлицк;

 ОнЦлицк: = нула;

Проверено: = провера;
ОнЦлицк: = онЦлицкХандлер;
крај;

крај; 

Употреба овог поступка је једноставна:

// пребацити провјерено стањезапочети

 СетЦхецкедСтате (ЦхецкБок1, НОТ ЦхецкБок1.Цхецкед);

крај;

Горња СетЦхецкедСтате пребацује потврђено својство ЦхецкБок1 у потврдни оквир.

Заштићени хацк: ЦлицксДисаблед: = труе

Други начин да се спречи извршавање ОнЦлицк-а, када програмско промените Означено својство потврдног оквира, је да искористите „скривено“ (заштићено) ЦлицксДисаблед својство.

Гледајући поступак поступка СетСтате ТЦхецкБок-а који се извршава кад год се промијени Провјерено својство, ОнЦлицк се активира ако ЦлицксДисаблед није истинит.

Пошто је ЦлицксДисаблед заштићен, не можете му приступити са своје код.

Срећом, заштићена хацк техника омогућава вам приступ скривеним / заштићеним својствима Делпхи контроле.

Приступ заштићеним члановима компоненте пружа више информација о овој теми.

Оно што требате да урадите је да прогласите једноставну класу лутки која ће проширити ТЦхецкБок у истој јединици на којој ћете користити својство ЦлицксДисаблед.

Једном када примите ЦлицксДисаблед, једноставно га поставите на труе, промените означено својство, а затим вратите ЦлицксДисаблед на фалсе (задана вредност):

тип


 ТЦхецкБокЕк = класа (ТЦхецкБок);


 ...


са ТЦхецкБокЕк (ЦхецкБок1) добегин

 ЦлицксДисаблед: = тачно;

 Проверено: = НЕ Проверено;

 ЦлицксДисаблед: = фалсе;

крај;

Напомена: горњи код пребацује означено својство потврдног оквира под називом „ЦхецкБок1“ користећи заштићени својство ЦлицксДисаблед.

Израда апликација помоћу Делпхија

  • Водич за почетнике за програмирање Делпхи базе података
  • Интегрисање основних графикона у Делпхи апликације
  • Како премјестити и промијенити величину контрола у вријеме извођења
  • Мултитхреадед Делпхи базе података