Када Делпхи позива на алат за обраду догађаја, старе вредности локалних варијабли се бришу. Шта ако желимо пратити колико је пута притиснуто неко дугме? Могле бисмо да вредности буду присутне користећи променљиву на нивоу јединице, али генерално је добра идеја променити нивое јединице само за дељење информација. Оно што нам је потребно обично се у Делфима називају статичке променљиве или типкане константе.
Променљива или стална
Уписане константе могу се упоредити са иницијализираним варијаблама-варијаблама чије су вриједности дефиниране при уласку у њихов блок (обично руковатељ догађајима). Таква варијабла се иницијализира тек када се програм покрене. Након тога, вриједност уписане константе остаје између узастопних позива у њиховим поступцима.
Кориштење типканих константи врло је чист начин имплементације аутоматски иницијализираних варијабли. Да бисмо имплементирали ове варијабле без укуцаних константи, мораћемо да направимо одељак за иницијализацију који поставља вредност сваке иницијализоване променљиве.
Променљиве константе
Иако декларишемо типкане константе у цонст делу поступка, важно је имати на уму да они нису константе. Ако у било којој тачки ваше апликације, ако имате приступ идентификатору за унесену константу, моћи ћете да измените њену вредност.
Да бисте видели откуцане константе на делу, ставите дугме на празан образац и доделите следећи код руководиоцу догађаја ОнЦлицк:
процедура ТФорм1.Буттон1Цлицк (Пошиљалац: ТОбјецт); цонст кликови: Интегер = 1; // није истинска константазапочети Форм1.Цаптион: = ИнтТоСтр (кликови); кликови: = кликови + 1; крај;
Примјетите да сваки пут када кликнете на дугме, стално се повећавају натписи.
Сада испробајте следећи код:
процедура ТФорм1.Буттон1Цлицк (Пошиљалац: ТОбјецт); вар кликови: Интегер; започети Форм1.Цаптион: = ИнтТоСтр (кликови); кликови: = кликови + 1; крај;
Сада користимо неиницијализовану варијаблу за бројач кликова. Примјетите ту чудну вриједност у описима образаца након што кликнете на гумб.
Константне типоване константе
Морате се сложити да идеја о модификованим константама звучи помало чудно. У 32-битним верзијама Делпхи Борланд одлучио је да обесхрабри њихову употребу, али да их подржи за наслеђени код Делпхи 1.
Можемо омогућити или онемогућити Придружене константне константе на страници Компајлера у дијалошком оквиру Пројектне могућности.
Ако сте за одређени пројекат онемогућили Ассигнабле типкане константе, када покушате да саставите претходни код, Делпхи ће вам приликом компилације дати грешку 'Лева страна не може бити додељена'. Међутим, можете да креирате константну типкану константу изјављивањем:
{$ Ј +}цонст кликови: Интегер = 1; {$ Ј-}
Због тога, први пример кода изгледа:
процедура ТФорм1.Буттон1Цлицк (Пошиљалац: ТОбјецт); цонст{$ Ј +} кликови: Интегер = 1; // није истинска константа{$ Ј-}започети Форм1.Цаптион: = ИнтТоСтр (кликови); кликови: = кликови + 1; крај;
Закључак
На вама је да одлучите да ли желите да укуцане константе додијелите или не. Важно је да су, поред идеалних за бројаче, типкане константе идеалне за прављење компоненте су наизменично видљиве или невидљиве, или их можемо користити за пребацивање између било којег боолеан-а својства. Натипкане константе такође се могу користити у ТТимеровом руковаоцу догађаја да би се евидентирало колико се пута чак покренуло.