Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа3.doc
Скачиваний:
4
Добавлен:
06.11.2018
Размер:
281.09 Кб
Скачать
    1. Панель инструментов

Для создания панели инструментов удобно использовать специальные компоненты ToolBar и CoolBar, находящиеся на странице Win32 Палитры компонентов

Компонент ToolBar содержит специальные кнопки ToolButton и позволяет манипулировать ими. Но на эту панель можно установить и свои управляющие элементы: ComboBox, Edit, SpeedButton и т.д.

Для добавления к панели инструментов новой кнопки ToolButton нужно щелкнуть на компоненте ToolBar правой кнопкой мыши и выбрать пункт New Button (новая кнопка) локального меню. В результате справа о имеющихся кнопок появиться ToolButton новая кнопка. На панели можно разместить разграничивающий промежуток (разделительную линию), используя пункт локального меню New Separator (новый разделитель).

Вид кнопки ToolButton определяет свойство Style, которое может принимать одно из следующих значний:

  • tbsButton- быстрая кнопка

  • tbsCheck- переключаемая кнопка

  • tbsDropDown- отображает стрелку, указывающую вниз, которая служит для доступа к раскрывающемуся меню типа PopupMenu, которое задается в свойстве DropDownMenu кнопки

  • tbsSeparator- отображается пустое место

  • tbsDivider- отображается вертикальная линия для разделения области

Чтобы оформить панель в современном стиле (с плоскими кнопками) интерфейса Windows, для кнопок ToolButton свойству Flat устанавливаем значение true. Для объединения кнопок в группу используют свойство Grooped.

Для вывода изображения на кнопки используют свойство ImageIndex, которому передают порядковый номер рисунка из списка в ImageList1 (нумерация начинается с нуля). Этот список указывают в Images компоненты ToolBar. Если кнопка используется как переключатель, то второму положению задается тот же номер рисунка, но из списка ImageList2, который заносится в HotImage. Неактивные или заблокированные кнопки отображают рисунок из списка ImageList3 под тем же номером, который заносится в DisableImages. Надписи к кнопкам Caption будут отображаться рядом, если установить свойство ShowCaption в true. Картинки можно взять из папки C:\Program Files\Common Files\Borland Shared\Images или создать самим в редакторе Tools\Image Editor размером 16х16 пикселов в формате bmp или ico.

Задавать события можно и из созданного главного меню, используя свойство MenuItem.

Если нужно использовать несколько панелей инструментов, то воспользуйтесь свойством Bands компоненты CoolBar.

    1. Запуск других приложений

Иногда из программы на Delphi требуется запустить другую программу. Для этого есть два способа, и оба используют API-функции. Первый способ использует функцию API-функцию WinExec, а второй - ShellExecute. Посмотрим на применение этих функций в деле.

Сначала используем функцию ShellExecute. Для нее пример достаточно распространенный - мы сделаем гиперссылку на форме. Щелкаешь по ней - и оказываешься на некотором сайте. Часто такую ссылку можно видеть в окошке About. Для использования функции ShellExecute прежде всего добавляем ShellAPI в секцию Uses нашего кода (иначе компилятор ругнется на эту функцию):

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics,

Controls, Forms, Dialogs, StdCtrls, ShellAPI;

Далее помещаем на форме Label, и делаем надпись синей и подчеркнутой (как это и принято для гиперссылки). Делаем двойной щелчок мышью на Label1 для перехода в окно кода. В обработчике пишем следующий код:

...

procedure TForm1.Label1Click(Sender: TObject);

begin

ShellExecute(Form1.Handle, 'open', 'http://progs.biz',

nil, nil, SW_SHOWNORMAL)

end;

...

Запускаем программу, щелкаем по нашей гиперссылке и оказываем на сайте alexeev.nm.ru.

Рассмотрим параметры нашей функции более подробно.

Первый параметр (Form1.Handle у нас) - это указатель на окно, из которого запускается другое приложение.

Второй параметр (у нас это open) - показывает, что мы делаем. Значение open для него - самое распространенное. Еще из распространенных значений этот параметр может принимать print (для печати, естественно) и nil (которое фактически тоже самое, что и open).

Третий параметр - это что мы, собственно открываем (печатаем и т. д.). Он может быть как именем конкретного exe-файла (например, notepad.exe), так и именем документа (например, test.doc). В этом случае запустится приложение, ассоциированное с файлом открываемого типа (для *.doc - Word и т. д.)). Третье значение для рассматриваемого параметра - это имя папки (например, D:\Delphi).

Четвертый параметр (у нас он nil) - это параметры для запускаемого exe-файла (который должен стоять третьим параметром). Например, сюда можно написать, что за файл мы хотим открыть в Блокноте:

...

ShellExecute(Form1.Handle, 'open', 'notepad.exe',

'D:\test.txt', nil, SW_SHOWNORMAL)

...

Откроется файл test.txt на диске D:, как и ожидается.

Что же до функции WinExec, то она оставлена только для совместимости. Вот пример ее применения:

...

WinExec('notepad.exe',SW_SHOWNORMAL)

...

Указанный фрагмент запустит Блокнот.