Каква е основната цел на компонента Actionlist в Delphi
Това е съвсем различен въпрос.:)
Няма особени предимства в приложения като „една форма, два бутона“.
Ситуацията е различна при големи и сложни приложения. особено ако приложението е изградено с оглед на добра използваемост, достъпност и други насоки. Едно елементарно действие, като „запазване на документа“ или „преизчисляване на баланса“, може да бъде инициирано по много начини. По този начин:
- чрез команда от главното меню
- бутон на главната лента с инструменти
- чрез команда от контекстното меню на формуляра (може да са няколко)
- чрез натискане на клавишни комбинации
- допълнителен голям бутон на формуляра
- програмно от дълбините на различни модули
и т.н.
Наличността на действие може да зависи от контекста. Например, наличността на командата "save" зависи от това дали е имало промени или не. Ако не, тогава бутонът на панела трябва да бъде деактивиран; и веднага щом има промени, станете активирани отново. И така във всички менюта, панели и формуляри, където е тази команда. Друг пример. В многопотребителска система някои действия за този потребител може да не са разрешени, няма права. В този случай е препоръчително да премахнете всички съответни бутони и команди от интерфейса (скриване). Когато проверяваме правата, разбираме, че извикваме метод, който забранява тази команда. Но как да проследите къде са разпръснати тези бутони и менюта по интерфейса и колко има? С времето могат да се добавят нови места. Механизмът за действия прилага всичко това.