Зачем нужен 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 и т.п.:
4. Проставил всем компонентам, активизирующим это действие, свойства Action и, если
надо, ImageList. Без экшинсов тебе пришлось бы всем контролам проставлять Captio!
n'ы, хинты, имагиндексы и т.п.. Прописывать везде, где надо, куски типа
и следить за тем, чтобы все кнопки/меню итемы и т.п. соответствовали: пользователь сделал изменение, хочет сохранить, а у него в менюшке по правой кнопке пункт Save - запрещен. И расскажи ему, что у него в MainMenu/File/Save - разрешился, а этот - "забыл". Далее, можно спокойно "нарисовать" этот ActionList с Action'ами, набросать кнопок на один ToolBar, проработать функциональность, а уже потом не напрягаясь и не думая, где какой код вставить, "дорисовывать" менюшки и кнопки. При этом, когда надо одну кнопку грохнуть, а другую добавить - это не напрягает, т.к. ничего важного элемент
кнопки не содержит. Всю информацию о поведении этой кнопки содержит соответствующий!
Action. Вывод: снижает трудозатраты на разработку пользовательского интерфейса - снижает вероятность ошибки. Hакладные расходы оценить не пытался (они безусловно есть), но думаю, что они в большинстве случаев не существенны.
procedure TMainForm.FormCreate(Sender: TObject); var ScreenLogPixels: Integer; DC: HDC; begin ... чик, чик.. просто проустили строки добавили >> i1 := 0; end;
2.3. затем
полный рулез
procedure TMainForm.ActionList2Update(Action: TBasicActio!
n; var Handled: Boolean); begin { Update the status of the edit commands } EditCutCmd.Enabled := Editor.SelLength > 0; EditCopyCmd.Enabled := EditCutCmd.Enabled; if Editor.HandleAllocated then begin EditUndoCmd.Enabled := Editor.Perform(EM_CANUNDO, 0, 0) <> 0; EditPasteCmd.Enabled := Editor.Perform(EM_CANPASTE, 0, 0) <> 0; end; добавили >> inc(i1); >> StatusBar.Panels[2].Text := inttostr(i1); end;
3. запуск У меня после старта 1602 вызова ActionList2Update повели мышкой по окну 32К вызвовов на текущий момет пишу письмо, проект висит, я тама немного поелозил мышей около 1М вызовов, 0.912М, если быть точным Ж:-((
Резуме: 1. Все выше перечисленное не значит что я не рекомендую использовать ActionList. 2. Надо думать, что
именно выносить на Update(SQL-запрос скорее всего не надо Ж:-)))) 3. О сколько на!
м открытий нудных.....
Cоветы по Delphi
На сайте достаточно часто можно услышать вопросы общей направленности, повторяющиеся не по одному разу... Чтобы частично разгрузить форум и чат сайта, решено было написать данную подборку вопросов.
Delphi 5: учебный курс
В книге рассмотрены возможности системы программирования Delphi 5, описан язык программирования Object Pascal, рассмотрены визуальные компоненты системы и методы их создания. Особое внимание уделено принципам и практическим приемам создания сетевых приложений для разных архитектур и разработке программ, поддерживающих основные протоколы Интернета.Не требует специальной подготовки, может быть использована как пособие для изучающих основы программирования и сетевые технологии, а также как справочник по компонентам Delphi и пособие для самообразования.
Автор: С. Бобровский
ICQ2000 Сделай Сам :) Сайт для тех, кто интересуется протоколами ICQ. Описана работа протокола ICQ2000a (ICQv7), Подробно-комментированные исходные коды для Delphi-5 прилагаются. (ICQ2000 для начинающих и не ...
» Оценка сайта: 3
Опрос населения :)
Новый журнал для программистов "RSDN Magazine". Согласны ли вы его покупать ежемесячно?
Дорогие друзья! Мы рады представить вам новый совместный проект сайтов www.rsdn.ru, delphi.mastak.ru и www.optim.ru - профессиональный журнал для программистов RSDN Magazine.
Несомненно, ваше мнение о необходимости такого журнала, содержании рубрик и темах отдельных статей поможет сделать журнал более полезным и интересным. Высказать свое мнение, проголосовать или же подписаться вы можете на сайте. Без вашего участия, нам будет трудно сделать правильный журнал!
На сайте выложен анонс пилотного выпуска журнала, вступительное слово от редакции.
Для души
Хокку дня
Печальный мир! Даже когда расцветают вишни... Даже тогда...
Афоризмы
Переходя дорогу только на зеленый свет, тоже можно попасть под машину....
Фраза дня
Ну что уставился, как маздай на новое устройство?
Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Хартфорде в Коннектикуте официально запрещено открывать общеобразовательные классы для собак.
Жителям Нью Йорка запрещается при встречах в виде привествия "хватать друг друга за нос".
И на закуску коротенький анекдот
- Пап, дай 500 рублей. - Зачем? - Да на четыре поменяю. - Это по какому курсу? - По философии.