ПредишенСледващото

Каква ужасна случи в името на темата! Всъщност, всичко е много по-лесно. Искам да ви кажа как да се направи в главното меню в адаптивни на програмата (т.е. някои редки ispolzyemye елементи могат да бъдат скрити или да добавите контекстно-чувствителни елементи от менюто). Тази статия също засегна въпроса за това как да се синхронизира лентата с инструменти менюта, да се направи, за да го също се променя външния му вид в зависимост от контекста на програмата. На последно място, проверете тези компоненти, които имат за цел да улесни този процес, ние, а не да се запълни всичко ръчно. И разбира се, ние правим всичко това с един пример.

Така че, ние кликнете в Делфи или Bildere File-> новообза-> VCL Формуляр за кандидатстване. Тъй Delphi програмиране среда още веднъж широко разпространена в руската част на светлината (както и в Латинска Америка :)) от C ++ Builder. и примера ще го придружава. За Builder разлики са незначителни и само изразява в синтаксиса на езика. Следователно, за да се адаптира по примера под Builder и да е повече или по-малко начинаещ програмист да работи, няма да бъде.

Веднага можем да преименувате нашата форма в обекта инспектор да frmMain (свойствата Име). В Надпис имота (форма хедър) напишете "тестово приложение TACtionManager" или нещо подобно. Добре е да направите, че тогава е по-лесно да се направи разграничение между проектите, ако изведнъж след известно време ще се върне към тях, например. Хит спаси проекта, тъй като (Save As ... Проект), той даде име: пиши: ActionManTest. като основна форма файлът е записан под името непретенциозен Майн.

Нека добавим още едно действие - да излезете от програмата. Отново, кликнете с десния бутон - щракнете върху падащото меню Добавяне на стандартна действие - и отново в клон файл изберете TFileExit.

Тя се появява в менюто Файл. Но ние, рускоезичното, искате тя да бъде наречена на файла. Поради факта, че сега тя е на разположение в инспектора на обекта, ние просто го изберете с мишката там и преименуване.

Синхронизация mainmenu и лентата с инструменти чрез tactionmanager и tapplicationevents в Делфи и строител

Zapsukaem нашите работи и напълно функционален заявление, могат да се отвори файла (на теория - поне покаже файла отворен диалоговия прозорец ... физически всеки файл, ние не се отварят) и от програмите за кликвания в главното меню или лента с инструменти. И това без нито един ред код!

Но mudornom заглавието на тази статия, че съм все още priplol TApplicationEvents. Що за животно е това и какво е то: това е компонент, отговорен за обработка за системни събития приложение, а именно: Намаляване на прозорците, процесор манипулатор празен ход възстановяване и т.н. Конкретно в нашия случай това ще бъде от полза за много времето, което е посочено в заглавието на статията.

Да предположим, че ние не искаме на потребителя да бъде в състояние да отваряте файлове във всеки период от време. За да направите това, ние трябва да се направи не е налице (Disabled скоро Enabled :. = False) елементите от менюто и на бутоните за отваряне на файла. Пример сигурност пресилено. На практика често напротив, дай Боже Save бутон (ако файлът не е отворен - няма нищо, за да спаси), или достъп до всичко, (ако е пробна версия) и т.н. Както и да е, това не е важно за разбирането на принципите на механизма. Важно е, че ние не го направи всичко на ръка, и ще таксува OnIdle манипулатор КОМПОНЕНТИ TApplicationEvents. Така че, като се откриват неговите качества и кликнете върху раздела Събития. създадете OnIdle манипулатор (двойна scholknem в съответния ред пред качествата, необходими за нас). Сега, за демонстрационни цели, искам да може да бъде отворен само от нечетен минути текущото време, т.е. на 1-ви, 3-ти, 5-ти и т.н. и в още по-потребител бях лишен от тази радост.

Писане такъв код obrabotika:

функция MinuteOf връща броя на минутите, в някакъв момент, в нашия случай сега (днес). Тази функция е обявен в DateUtils модул, така че трябва да се свърже (писане използва DateUtils; веднага след изпълнението на ключови думи в кода) Odd функция връща истина. ако е нечетно аргумент. По този начин, нашето меню продукти и икони от лентата с инструменти ще бъдат активирани или деактивирани зависимост от това дали или не присъства в момента върви chotnaya минута на системното време. Имайте предвид, че ние не се позовава на Enabled собственост на икона на елемент от менюто или лентата с инструменти, и да го направя само на едно място - в действие FileOpen1 Enabled собственост. Това работи, защото нашето меню и лентата с инструменти има един общ елемент за действие = FileOpen1.

Изпълнете нашия тест за кандидатстване и за няколко минути, след това го погледнете (а именно Open опцията в менюто и лентата с инструменти), а след това на системния часовник (по подразбиране в долния десен ъгъл на екрана). И ние виждаме, че веднага след като идва chotnaya минути, тези елементи са забранени, както и обратното. Това е възможно благодарение на манипулатор OnIdle TApplicationEvents компоненти.

Разбира се, на практика, в манипулатора са написани над нещо истинско. Naprmer ако файлът се отваря и да се промени, а след това стават достъпни, за да изберете Save и Save As ... меню и т.н.

Подкрепете проекта - споделете линка, благодаря!