Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 сентября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Зачем нужен TAction ?

Hужны они для синхронизации свойств Enable, Checked, ImageIndex, Caption, Hint, OnClick и т.п. различных контролов. Hаиболее часто применяется для кнопок и элементов меню. Сильно облегчает разработку дружественных сред, когда до какого-то действия можно добраться через кнопку toolbar'а, MainMenu'шку и PopupMenu'шку:
1. Создал Action, проставил св-ва (Caption, Hint, ImageIndex и т.п.)
2. Прописал действие на OnExecute (если не лениться и задавать нормальные имена Action'ам, то процедуры тоже будут иметь нормальные имена)
3. Прописал на TAction.OnUpdate условия для Enabled, Checked и т.п.:
procedure TForm1.DBConnectUpdate(Sender: TObject);
begin
Checked := Database1.Connected;
Enabled := (FUserName + FPassword) <> '';
end;
4. Проставил всем компонентам, активизирующим это действие, свойства
Action и, если надо, ImageList.
Без экшинсов тебе пришлось бы всем контролам проставлять Caption'ы,
хинты, имагиндексы и т.п.. Прописывать везде, где надо, куски типа
BtnConnect.Enabled := экспр
PUConnect.Enabled := экспр
PDConnect.Enabled := экспр
BtnConnect.Checked:= др.экспр
PUConnect.Checked := др.экспр
PDConnect.Checked := др.экспр

и следить за тем, чтобы все кнопки/меню итемы и т.п. соответствовали:
пользователь сделал изменение, хочет сохранить, а у него в менюшке по правой кнопке пункт Save - запрещен. И расскажи ему, что у него в MainMenu/File/Save - разрешился, а этот - "забыл".
Далее, можно спокойно "нарисовать" этот ActionList с Action'ами, набросать кнопок на один ToolBar, проработать функциональность, а уже потом не напрягаясь и не думая, где какой код вставить, "дорисовывать" менюшки и
кнопки. При этом, когда надо одну кнопку грохнуть, а другую добавить - это не напрягает, т.к. ничего важного элемент кнопки не содержит. Всю информацию о поведении этой кнопки содержит соответствующий Action.
Вывод: снижает трудозатраты на разработку пользовательского интерфейса - снижает вероятность ошибки. Hакладные расходы оценить не пытался (они безусловно есть), но думаю, что они в большинстве случаев не существенны.



<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS