ImageList, ActionList 12 Технология за разработка на приложения

Компетентното разработване на сериозно приложение трябва да започне не със създаване на красив и удобен потребителски интерфейс, а с компилиране списък с действия, които потребителят ще може да извърши, използвайки това приложение. Разбира се, с напредването на дизайна този първоначален списък ще се разширява и усъвършенства. Но поне първоначалната версия на такъв списък трябва да бъде отправна точка на дизайна. Без това едва ли можете да създадете нещо полезно.

След като списъкът с действия е съставен, можете да започнете да мислите за изпълнителните елементи на интерфейса, с които потребителят може да инициира действия. И тук могат да възникнат определени трудности. Обикновено се предлагат няколко инициатора за едно и също действие. Например, като правило, някои раздели на главното меню се дублират с бързи бутони на лентите с инструменти, раздели на контекстните менюта, клавишни комбинации и понякога обикновени бутони. Това дублиране е удобно за потребителя. Но независимото развитие на всички тези контролни елементи често води до ненужно дублиране на кодове и най-важното - намалява възможността за надграждане и поддържане на приложението. Всъщност, ако решите да промените нещо в едно от действията, ще трябва да направите промени на няколко места в програмата наведнъж. И не дай Боже да пропуснете нещо: координираната работа на контролните елементи ще бъде нарушена.

За да се избегнат подобни усложнения, Delphi предоставя компоненти, които работят централизирано управление действия, технитеизпращане. Въвеждате списъка с действията, които сте извършили, в специален компонент - диспечера. За всяко действие можете да зададете много свойства: етикети на съответните контроли, икони, текстове на етикети с подсказки, бързи клавиши и много други. Можете също да напишете манипулатор, за да сте сигурни, че планираното действие ще се осъществи. Както обаче ще видите по-късно, за стандартни действия това обикновено дори не е необходимо да се прави. Разработчиците на Delphi са създали много класове от тези стандартни действия, в които необходимите функции се изпълняват автоматично. Така че, ако не знаете подробностите за тези възможности, рискувате да „преоткриете колелото“. Ще отделите време и усилия за тяхното изпълнение, а след това се оказва, че същото може да се направи с няколко движения на мишката и то много по-добре, отколкото сте мислили за себе си.

Ако сте формирали такъв списък с действия, последващият дизайн на контролите е значително опростен. Повечето елементи имат свойство Действие. Достатъчно е да се отнесете към едно от действията в това свойство и всички свойства на това действие и манипулаторът, който го изпълнява, ще бъдат прехвърлени към този контрол. И не е нужно да предефинирате всичко за всеки елемент. Можете ли да си представите колко време ще спестите? И ако по-късно промените нещо в изпълнението на действието или в неговите свойства (например, променете клавишните комбинации или иконата), тогава дори няма да се налага да помните кои елементи в различни форми на вашето приложение инициират това действие. Всички тези елементи автоматично ще приемат направените промени.

Delphi осигурява подобна централизация на контрола на приложенията на няколко нива. За диспечерски действия, започвайки с Delphi 4, има компонент ActionList, Опрости създаването на менюта и ленти с инструменти, направи програмите по-разбираеми и структурирани. Вече в Delphi 5, броят на стандартните действия, от които може да се осъществи достъпActionList, имаше над двадесет. А в Delphi 7 броят им достигна 66. Можете ли да си представите колко стандартни операции са внедрили създателите на Delphi за вас?