Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


Информационный Канал Subscribe.Ru

Ежедневная рассылка сайта Мастера DELPHI

DELPHIMASTER.ru

Выпуск от 10.09.04 09:18

Лучшее из нашего FAQ   |x|
Зачем нужен 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акладные расходы оценить не пытался (они безусловно есть), но думаю, что они в большинстве случаев не существенны.

Комментарий от Max Rezanov

это правильно оценивать и не пытайся Ж:-)))
1. Открываем проект
%Delphi4%\Demos\Richedit\richedit.dpr
2. Форма MainForm
2.1 секция

private
FFileName: string;
FUpdating: Boolean;
FDragOfs: Integer;
FDragging: Boolean;
добавили
>> i1 : integer;

2.2 затем

procedure TMainForm.FormCreate(Sender: TObject);
var
ScreenLogPixels: Integer;
DC: HDC;
begin
... чик, чик.. просто проустили строки
добавили
>> i1 := 0;
end;

2.3. затем полный рулез

procedure TMainForm.ActionList2Update(Action: TBasicAction;
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. О сколько нам открытий нудных.....

»»» Прислать свои комментарии

Обсуждается в конференциях   |x|
  • Как построить график в Excel?
    Проблема такая: из своей проги заполняю столбец в экселе числовыми значениями. Так вот по ним надо построить в экселе ...
  • Как в OpenGL повысить яркость
    subj.
  • InstallShield, BDE
    Установил InstallShield Developer 7.0, однако у него нет модулей bde. Скачал merge module bde511pro, пытаюсь его ...
  • Дык как же поженить KOL и FPC?
    Скачал последнюю версию KOL, есть FPC версии 1.0.10. Распаковал, пропатчил для FPC, всё сделал по инструкции. В ...
  • Окно поверх всех окон - проблема(+)
    Для модераторов: В FAQ и поиске ничего не нашёл, точнее нашёл, но не то. Здравствуйте уважаемые Мастера. Вроде всё ...
  • проблемы с TServerSocket
    Доброе время суток. У меня возникла такая ситуация. Прога, рассылающая по таймеру куче клиентов некую строку кодом: ...
  • OLAP
    Добрый день господа. Если кто занимался оперативной аналитической обработкой данных не дайте пропасть. Пытался ...
У нас большой выбор статей   |x|
COM. Автоматизация - от простого к сложному (часть I)
В данной статье речь пойдёт об одной из COM-ориентированных технологий, которая занимает одно из ведущих мест при разработке программных средств, использующих технологию COM. Итак, разговор пойдёт об автоматизации.
...
Я ориентировал данную статью на неискушённых в COM-программировании людей, попросту говоря, на новичков в данной области, поэтому я намеренно не вдавался в объяснения некоторых деталей, понимание которых может только запутать неискушённого читателя. По этой же причине (ориентированности на НЕпрофессионалов), некоторые вещи (очевидные для опытных людей) я разобрал с особой тщательностью.
Новинки книжного рынка   |x|
DirectX. Графика в проектах Delphi (с CD-ROM)
Книга посвящена использованию модулей DirectX в приложениях, разрабатываемых в Delphi. Начиная с простых примеров, последовательно и подробно рассматривается создание объектов двумерной и трехмерной графики, визуальные и цветовые эффекты, а также обсуждаются дополнительные темы, такие как быстрая работа с устройствами ввода. Большое внимание уделяется вопросам оптимизации и ускорения работы приложений. Книга содержит практические решения проблем, возникающих при программировании игр и других приложений, нуждающихся в высокой скорости вывода графики в среде Windows. Прилагается компакт-диск с инструментальными средствами, кодами и демонстрационными версиями рассматриваемых примеров.
Автор: Краснов
Опрос населения :)
Как вы относитесь к KOL и MCK?
»»» Отлично.
»»» Никак.
»»» Барахло.
»»» А что это?
Для души

Хокку дня
Что же ты, гейша, лежишь нагишом?
Знаю,что жарко, но я же терплю
Видишь, тулуп не снимаю!

Афоризмы
"Человечек, - это звучит горденько!"

Фраза дня
Иду, вижу - кто-то пить бросил...

Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Нью Джерзи (США) водителям нельзя самим заправлять машину. На всех заправках этим должен заниматься обслуживающий персонал.
В Арканзасе (США) считается преступлением неправильно произнести название этого штата.

И на закуску коротенький анекдот
- Открываю утром холодильник, а там - ничего... Ну, погоди, коварный живой йогурт!

Фотоприколы.
Начните день с хорошего настроения!
http://www.delphimaster.ru/cgi-bin/prikol.pl?id=18667602


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (merlin@delphimaster.ru)

Добро пожаловать на сайт -= Мастера DELPHI =- 

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.mdelphi
Отписаться

В избранное