Графические возможности Delphi

Категория: Учебники по Delphi » Быстрый старт в Delphi

В этой cтатье рассказывается, как Delphi помогает упростить работу с графикой Windows. Эту тему можно было бы раскрыть даже немного раньше, потому что мы уже познакомились с ее основами и немного рисовали. Сейчас рассмотрим вопро­сы, связанные с графическими возможностями среды, как можно более подробно.

Windows — это графическая оболочка, и все, что вы в ней видите, — это графи­ка. Но для программиста большинство вещей очень сильно упрощено, особенно в Delphi. Поэтому мы пока еще не сталкивались с графическими средствами очень близко. Но если вы соберетесь писать какой-нибудь большой проект, то обязательно столкнетесь с проблемой рисования при оформлении определенных частей программы.

 

Так как Windows— это графическая оболочка, то дальнейшее обучение про­граммированию невозможно без изучения этой главы. Так что не пропустите и прочтите полностью, даже если вы думаете, что эта тема вам не нужна. Даже при написании программ работы с базами данных мне иногда приходится использовать в приложении графические функции ОС.

 

Иконка в SystemTray

Категория: Учебники по Delphi » Быстрый старт в Delphi

Иконка в SystemTrayНе знаю почему, но многие программисты, особенно начинающие, пытаются за­сунуть иконку в системный лоток System Tray, который расположен рядом с часи­ками в панели задач. Лично я не очень люблю, когда у меня в окнах возле часов слишком много иконок. Например, сейчас там только индикатор сетевого соедине­ния, регулировка звука и словарь ABBYY Lingvo. Все аккуратно и ничего лишнего.

 

Эстетическая часть использования каких-то компонентов или дизайнерских изысков выходит за рамки данной книги, но я рекомендую вам без особой надоб­ности не забивать системный лоток лишними картинками.

 

Если уж иконка в системном лотке вам необходима, то для ее создания можно использовать компонент TSystemTray с вкладки Additional. У этого компонента следующие свойства:

  • Animate — если это свойство равно истине, то включена анимация и в систем­ном лотке иконки будут последовательно меняться (как в рисованных мульт­фильмах), а картинками для анимации будет служить список в свойстве icons.
  • Если это свойство равно false, то в лотке будет отображаться статичная кар­тинка в виде иконки из свойства icon;
  • Animate interval — задержка в миллисекундах между показами иконок;
  • BaiioonFiags — определяет стиль иконки подсказки. Вы можете рядом с икон­кой отображать Balloon Hint (всплывающая подсказка) — подсказку, которая, помимо классического Hint-текста, содержит заголовок и иконку. В свойстве можно указать, нужно ли показывать картинку и какой она должна иметь тип. Например, для отображения информационной картинки нужно указать значение bfinfo. Пример подсказки с такой иконкой можно увидеть на рис.;
  • BallonHint — текст подсказки Balloon;
  • BallonTimeout — время отображения подсказки Balloon;
  • BaiionTitie — заголовок подсказки Balloon;
  • Hint — классическая подсказка, отображаемая при наведении на компонент;
  • icon — иконка, при отображении статической картинки;
  • iconindex — индекс иконки, отображаемой в данный момент при анимации;
  • icons — массив иконок, для отображения анимации;
  • visible — если этот параметр равен истине, то иконка в системном лотке ото­бражается, иначе невидима.

Чтобы отобразить подсказку Balloon, нужно программно выполнить метод showBaiioonHint, который не имеет параметров.

Компонент System Tray появился в Delphi сравнительно недавно, если я не оши­баюсь, то это произошло в Delphi 2005. До этого иконку в системный лоток прихо­дилось помещать с помощью Windows API или использовать компоненты сторон­них разработчиков.

 

 

Практика использования Action в Delphi

Категория: Учебники по Delphi » Быстрый старт в Delphi

Практика использования Action в DelphiВ этом разделе мы глубже окунемся в мир действий TAction. Для рассмотрения практики возьмем за основу пример файлового менеджера, написанного в статье. Допустим, что вы хотите добавить на панель задач кнопку, по нажатии которой будет запускаться выделенный файл. При этом кнопка должна быть доступна толь­ко тогда, когда в сетке выделен хотя бы один файл.

Чтобы изменять состояние кнопки, можно через событие onseiectitem компо­нента TListview отслеживать, когда выделен файл, а когда нет, и в зависимости от этого изменять свойство Enabled действия, отвечающего за запуск файла. Это событие вызывается каждый раз, когда изменяется состояние выделения опреде­ленного элемента.

В данном случае у нас только одно условие, от которого зависит доступность команды — выделен ли файл в списке или нет. Иногда бывают случаи, когда усло­вий бывает несколько и в этом случае контролировать доступность действия стано­вится очень сложно. Но это и не нужно. У Action есть способ лучше.

Итак, откройте пример из разд. 11.22 и поместите на форму ActionManager и создайте в нем действие. Теперь можно поместить на форму панель и меню и пе­ренести на них действие. У меня получилась форма, показанная на рис.

 

 

 

 

Меню и панели на основе Action в Delphi

Категория: Учебники по Delphi » Быстрый старт в Delphi

До этого создавались стандартные меню и панели. Для этого мы использовали разные компоненты. Чтобы создать меню и панели в более современном стиле, нужно использовать совершенно другие компоненты, потому что MS почему-то не захотело развивать старое направление функций работы с меню. Но преимущество не в том, что можно сделать меню в каком-то стиле, а в том, что они построены на действиях Action.

 

Пример, описанный в этом разделе, можно воссоздать в Delphi 6 и 7. В более старых версиях необходимых компонентов просто нет.

Некоторых программистов смущают компоненты ActionManager, ActionMainMenuBar и ActionToolBar на вкладке Additional. Это возможно по причине консерватизма и привычки использовать классические ToolBar и MainMenu. Давайте попробуем перебороть себя и написать приложение с помощью новых компонентов. Вы буде­те в восторге, поэтому что эти новые компоненты действительно упрощают и улучшают программирование.

 

Итак, создадим новый проект и поместим на главную форму по одной копии компонентов ActionManager, ActionMainMenuBar И ActionTooiBar. Для большей красоты нужно поместить на форму еще и набор картинок imageList с вкладки Win32. В этот набор нужно добавить картинки размером 16x16 для ваших будущих КНОПОК И пунктов меню. После ЭТОГО выделите ActionManager И В свойстве Images укажите созданный набор картинок.

 

Перемещаемые панели и меню в стиле MS (Docking)

Категория: Учебники по Delphi » Быстрый старт в Delphi

Перемещаемые панели и меню в стиле MS (Docking)Очень часто разработчики приложений интересуются, как добиться такого эффекта, как у ToolBar в MS Office. Для большей ясности — это когда палитру с кнопками можно оторвать от окна и прилепить в другое место или вообще пре­вратить в отдельное окно.

 

ДЛЯ ТОГО ЧТОбы TToolBar можно было перемещать, достаточно уста­новить В нем СВОЙСТВО DragKind в dkDock. Вот и все. Но главная про­блема не в этом. Самое сложное здесь — это сохранить положение TToolBar после выхода из програм­мы и восстановить его при запуске. Для примера напишем маленькую программу, которую вы можете до­вести до полноценной.

 

На рис. показана форма, ко­торую мы будем использовать для создания примера.