- •Белорусский национальный технический университет
- •Конспект лекций по курсу «конструирование программ и языки программирования»
- •1. Введение Общие понятия
- •Недостатки ms-dos
- •Преимущества Windows
- •Основные концепции Windows
- •Объекты Windows
- •Механизмы сообщения
- •2. Основы визуального программирования в delphi Принцип создания приложений в Delphi
- •Процесс создания исполняемого файла в Delphi
- •3. Стандартные визуальные компоненты Формы
- •4. События, обрабатываемые формой
- •5. Свойства стандартных компонент Общие сведения
- •Компонент Tlabel
- •Компонент tButton
- •Компонент tEdit
- •Компонента tMemo
- •Компонента tCheckBox Это кнопка с независимой фиксацией. Такой компонент обладает следующими свойствами:
- •Компонент tRadioGroup
- •Компонент tСheckListBox
- •Компонент tPanel
- •К омпонент tScrollBar
- •К омпонент tMainMenu
- •Компонент tPopupMenu
- •Компонент tListBox
- •Компонент tComboBox
- •6. Графические компоненты Общие свойства
- •Компонент tImage (отображение картинок)
- •Компонент tShape (стандартные фигуры)
- •Компонент tBevel (кромка)
- •Компонент tChart (построитель графиков)
- •Компонент tPaintBox
- •Компонента tImage
- •Компонента tShape
- •Компонент tBevel
- •Поддержка графических операций
- •Свойство объектов Canvas
- •7. Табличное представление данных
- •Компонент tStringGrid
- •Компонент tDrawGrid
- •8. Дополнительные компоненты Компонент tBitBtn
- •Компонент tSpeedButton
- •Компонент tToolBar
- •9. Организация стандартных диалогов
- •Компонент tOpenDialog и tSaveDialog
- •Компонент tOpenPictureDialog и tSavePictuteDialog
- •Компонент tColorDialog
- •Компонент tFontDialog
- •Компонент tPrintDialog
- •10. Программирование печати документов
- •11. Вывод графических изображений
- •Компонент tProgressBar
- •Компонент tAnimate
- •Компонент tDateTimePicker
- •Компонент tMediaPlayer
- •Компонент tAnimate
- •Средства создания мультимедийных приложений Что такое мультимедиа
- •Компонент tMediaPlayer
- •Два вида программ мультимедиа
- •Пример программы с мультимедиа
- •Обработка исключительных ситуаций
- •Структурная обработка исключительных ситуаций
- •Модель исключительных ситуаций в Delphi
- •Синтаксис обработки исключительных ситуаций
- •Примеры обработки исключительных ситуаций
- •Вызов исключительной ситуации
- •Доступ к экземпляру объекта exception
- •Предопределенные обработчики исключительных ситуаций
- •Исключения, возникающие при работе с базами данных
- •Заключение
- •Создание и использование ini-файлов
- •Развертывание приложений. Локализация и интернационализация приложений
- •Литература
- •12. Управление программой с помощью панели инструментов
- •Компонент tImageList
- •Компонент tToolBar- инструментальная панель
- •13. Создание программы с несколькими формами и средства управления ими
- •14. Создание многостраничного документа
- •Литература
Литература
Архангельский А.Я. Программирование в Delphi 6. – М.: ЗАО «Издательство БИНОМ», 2002. – 1120 с.
Фаронов В.В. Delphi 6. Учебный курс. – М.: Нолидж, 2001. - 670 c.
Тейксейра, Стив и Пачеко, Ксавье. Delphi 6. Руководство разрабочика. Том 1. Основные методы и технологии. Пер. с англ. Уч. пос. – М.: Изд. дом «Вильямс», - 2001. - 832 с.
Тейксейра, Стив и Пачеко, Ксавье. Delphi 6. Руководство разрабочика. Том 2. Разработка компонентов и работа с базами данных. Пер. с англ. Уч. пос. - М.: Изд. дом «Вильямс», 2001. – 992 с.
Сван, Том. Delphi 4. Библия разработчика: Пер. с англ. – М.: СПб.: Диалектика, 1998. – 672 с.
Федоров А.. Delphi 5.0 для всех. -М.: Тоо фирма “КомпьютерПресс”, 1998. - 464 с.
Марко Кэнту. Delphi 5 для профессионалов. - СПб.: Питер. 2001. – 944 с.
Бобровский С. Delphi 5: учебный курс – СПб: Издательство «Питер», 2000.- 640 с.
Дополнительная литература
Рубенкин Нейл Дж.. Программирование в Delphi для “чайников” - К.: Диалектика, 1996. - 304 с.
Дарахвелидзе П.Г., Марков Е.П. Delphi - Среда визуального программирования. - СП.: - BHV, Санкт-Петербург, 1986. - 352 с.
Дэн Оузьер, и др. Delphi 3. Освой самостоятельно. / Пер. с англ. – М.: Издательство БИНОМ, 1998. – 560 с.
12. Управление программой с помощью панели инструментов
Цель: Научиться подключать инструментальную панель, изучить основные свойства и типы кнопок, использование их для управления вычислительным процессом.
Постановка задачи: Разработать программу, содержащую инструментальную панель со всеми возможными кнопками.
Компонент tImageList
Компонент TImageList представляет собой набор изображений одинаковых размеров, на которые можно ссылаться по индексам, начинающимся с 0. Этот компонент позволяет организовать эффективное и экономное использование пиктограмм и битовых матриц другими компонентами, например TToolBar.
Изображения в компонент TImageList могут быть загружены в процессе проектирования с помощью редактора списка изображений. Окно редактора вызывается двойным щелчком на компоненте TImageList.
В окне редактора можно добавить в списки изображений нужное изображение, используя команду Add, удалить изображение командой Delete, очистить весь список командой Clear. При добавлении изображений в список открывается обычное окно открытия файла изображений. Необходимо иметь ввиду, что размеры всех изображений должны быть одинаковыми. Как правило это размер, используемый в меню, списках, кнопках.
Каждое загруженное в список изображение получает индекс. Именно на эти индексы впоследствии вы можете ссылаться, когда необходимо загрузить нужное графическое изображение.
Компонент tToolBar- инструментальная панель
TToolBar |
|
Компонент TToolBar – это специальный контейнер для создания инструментальных панелей. В компонент TToolBar можно поместить любые другие компоненты. Как правило, он используется для расположения в ней кнопок, с помощью которых можно оперативно выполнить нужную команду. Кнопки можно группировать и располагать в несколько рядов.
Главная отличительная черта TToolBar - его способность гибкого управления дочерними элементами, которые он может группировать, выравнивать по размерам, располагать в несколько рядов. Компонент может манипулировать любыми вставленными в него дочерними элементами, но все его возможности в полной мере проявляются только при использовании специально для него разработанного компонента TToolButton (инструментальная кнопка). Этот компонент похож на кнопку TSpeedButton, но в палитре компонентов его нет.
Для того, чтобы вставить TToolButton в инструментальную панель TToolBar, необходимо правой кнопкой щелкнуть на компоненте TToolBar и в открывшемся окне выбрать NewButton или NewSeparator (новый сепаратор). Сепараторы предназначены для функционального выделения на инструментальной панели групп элементов и представляют собой разновидности кнопок TToolButton.
Хотя компонент TToolButton не имеет свойства, предназначенного для хранения картинки, однако он умеет использовать контейнер TImageList, чтобы извлечь из него нужную картинку и поместить ее на инструментальную кнопку.
Методику использования TToolBar совместно с TToolButton рассмотрим на примере создания текстового редактора. Пусть требуемый дизайн программы имеет вид, показанный на фиг.1.
Фиг.1. Пример TToolBar с кнопками TToolButton
Методика использования TToolBar состоит в следующем.
1. Поместите на пустую форму компонент TImageList, щелкните по нему правой кнопкой мыши и выберите продолжение TImageList Editor.
2. Для заполнения контейнера TImageList1 подойдут любые небольшие по размеру изображения. К сожалению, растры из каталога images | buttons (полный путь: c:\Program Files\Common Files\Borland Shared\Images\Buttons), рассчитанные на использование в кнопках .
prope
ger;
prope
TImag prope
При добавлении изображений для кнопки TToolButton следует иметь ввиду, что использование заготовок из каталога images | buttons в кнопках TToolButton приведет к появлению для каждой кнопки по два изображения одновременно. При попытке добавить сдвоенное изображение командой Add редактора в контейнер TImageList DELPHI задаст вопрос: Размерность изображения больше размерности списка. Разделить на отдельные битовые матрицы? На данный вопрос надо отвечать положительно. Тогда загружаемая битовая матрица автоматически разделится на отдельные изображения и потом вы можете удалить те из них, которые Вам не нужны кнопкой Delete редактора.
3. Поместите на форму компонент TToolBar, в окне Инспектора объектов разыщите свойство Images, раскройте список в правой колонке строки Images и выберите ImageList1. Мы указали компоненту на источник изображений и можем теперь вставлять в него кнопки.
4. Щелкните по TToolBar правой кнопкой мыши и выберите New Button.
5. Вставьте еще две кнопки, после чего вставьте разделитель New Separator.
6. Разместите на ToolBar остальные кнопки и сепараторы (см. фиг.1).
7. Если вы захотите, чтобы кнопки имели модный «плоский» вид, установите в свойство Flat компонента ToolBar1 значение True.
Свойство Buttons компонента TToolBar позволяет обратиться к каждому его дочернему компоненту как к объекту класса TToolButton.
Вид изображения на кнопке определяется свойством ImageIndex компонента TToolButton. Оно определяет индекс изображения, хранящегося во внешнем компоненте ImageList. Указание на этот компонент задается свойствами Images и Disable Images компонента TToolBar. У кнопки есть и другие особенности: находиться в нажатом или отжатом состояниях и т.п.
Для компонента TToolBar определено событие OnResize, возникающее при изменении размеров компонента.
Листинг Unit DemoToolBar приводится ниже.
Unit DemoToolBar;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Buttons, ComCtrls, ImgList,
ToolWin;
type
TForm2 = class(TForm)
Memo1: TMemo;
OpenDialog1: TOpenDialog;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ImageList1: TImageList;
SaveDialog1: TSaveDialog;
procedure FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
procedure sbtExitClick(Sender: TObject);
procedure sbtNewClick(Sender: TObject);
procedure sbtOpenClick(Sender: TObject);
procedure sbtSaveClick(Sender: TObject);
procedure sbtCutClick(Sender: TObject);
procedure sbtCopyClick(Sender: TObject);
procedure sbtPasteClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.DFM}
procedure TForm2.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
Memo1.Top := 25;
Memo1.Height := Form2.ClientHeight - 25;
end;
procedure TForm2.sbtExitClick(Sender: TObject);
begin
Close;
end;
procedure TForm2.sbtNewClick(Sender: TObject);
begin
Memo1.Lines.Clear;
end;
procedure TForm2.sbtOpenClick(Sender: TObject);
begin
if OpenDialog1.Execute then
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
procedure TForm2.sbtSaveClick(Sender: TObject);
begin
if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
end;
procedure TForm2.sbtCutClick(Sender: TObject);
begin
Memo1.CutToClipboard;
end;
procedure TForm2.sbtCopyClick(Sender: TObject);
begin
Memo1.CopyToClipboard;
end;
procedure TForm2.sbtPasteClick(Sender: TObject);
begin
Memo1.PasteFromClipboard;
end;
end.