Добавил:
ikot.chulakov@gmail.com Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по Delphi с готовыми программами / Лабораторная работа №19 Создание панели инструментов.pdf
Скачиваний:
25
Добавлен:
12.07.2020
Размер:
794.87 Кб
Скачать

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

обработчик события для кнопки btnOpen уже создан, то можно не создавать новый обработчик события, а просто выбрать нужный обработчик из списка (Рисунок 26).

Рисунок 26 – Выбор обработчика события для команды actOpen

Аналогичным образом назначьте обработчики событий для всех оставшихся команд.

Необходимо только немного доработать (Листинг 1) обработчики событий для команд actSheme1 и actSheme2 (Листинг 3).

Листинг 3

procedure TfrmEditor.mitSheme1Click(Sender: TObject); begin

Memo.Color:=clWhite; //цвет фона Memo.Font.Color:=clBlack; //цвет текста

end;

procedure TfrmEditor.mitSheme2Click(Sender: TObject); begin

Memo.Color:=clBlue;//цвет фона Memo.Font.Color:=clYellow;//цвет текста

end;

Вэтих обработчиках удален код связанный с переключением кнопок на панели инструментов и код связанный с переключением пунктов меню. Это стало возможным благодаря установке значения свойства AutoCheck=True в командах actSheme1 и actSheme2.

ВПриложении А приведен полный листинг программы. В Приложении Б приведен вид окна дерева объектов после добавления в проект всех компонентов.

Задания к лабораторной работе

1.Изучить работу с компонентами TToolBar, TControlBar, TActionList по материалу лабораторной работы.

2.Набрать и отладить программы, приведенные в лабораторной работе.

3.Модифицируйте программу, приведенную в лабораторной работе:

Добавьте команду actNew, создающую новый файл. Причем если компонент Memo уже содержит введенный текст, то должен выдаваться запрос на сохранение этого текста в файл. Запрос должен содержать три варианта ответа:

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

сохранить текст в файл;

не сохранять текст в файл;

не создавать новый файл.

Если был выбран положительный ответ на запрос о создании нового файла, то содержимое строкового редактора должно быть очищено.

Для команды должны быть заданы свойства Hint и ImageIndex, Добавить в тестовый редактор вертикальную полосу прокрутки. Добавьте ограничения на изменение размеров окна редактора.

При загрузке программы окно редактора должно появляться в центре экрана.

Внесите изменения в пункт меню «Вид». Управление видимостью панелей инструментов должно осуществляться для каждой панели раздельно.

4. Модифицируйте программу, приведенную в лабораторной работе:

Добавьте в программу панель инструментов «Меню» (tbMenuBar). Перенесите главное меню на эту панель (см. рисунок ниже).

5.Ответить на контрольные вопросы к лабораторной работе.

6.Отчитаться преподавателю по данной теме.

Вопросы к лабораторной работе

1.Как можно добавить кнопки на панель инструментов?

2.Какое свойство кнопки панели инструментов содержит значок?

3.Как добавить панель инструментов в компонент TControlBar?

4.Какие преимущества дает использование списка команд (TActionList)?

5.Как запретить выполнение команды?

6.Как задать реакцию программы на активацию команды?

7.Как «привязать» команду к элементу управления?

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Справочные таблицы

 

Таблица 1 – Основные свойства и события компонента TToolBar................................

2

Таблица 2 – Важнейшие свойства и события компонента TToolButton........................

4

Таблица 3 – Подсказки для кнопок панели инструментов.............................................

11

Таблица 4

– Свойства компонента TControlBar ................................................................

13

Таблица 5

– Свойства компонента TActionList..................................................................

15

Таблица 6

– Свойства компонента TAction ........................................................................

17

Таблица 7

– Свойства команд...............................................................................................

18

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Приложение А

unit UEditor;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, ImgList, ComCtrls, ToolWin, ExtCtrls, ActnList;

type

TfrmEditor = class(TForm) MainMenu: TMainMenu; Memo: TMemo;

mitFile: TMenuItem; mitNew: TMenuItem; mitOpen: TMenuItem; mitSaveAs: TMenuItem; mitSave: TMenuItem; mitExit: TMenuItem; N1: TMenuItem; mitView: TMenuItem;

mitStatusBarVisible: TMenuItem; mitToolbarVisible: TMenuItem; N2: TMenuItem;

mitSheme1: TMenuItem; mitSheme2: TMenuItem; PopupMenu: TPopupMenu; mipSheme1: TMenuItem; mipSheme2: TMenuItem; ImageList: TImageList; StatusBar: TStatusBar; OpenDialog: TOpenDialog; SaveDialog: TSaveDialog; tbStandart: TToolBar; tbnNew: TToolButton; tbnOpen: TToolButton; tbnSave: TToolButton; tbnExit: TToolButton; ToolButton1: TToolButton; tbView: TToolBar; tbnSheme2: TToolButton; tbnSheme1: TToolButton; ControlBar: TControlBar; ActionList: TActionList; actOpen: TAction; actSave: TAction; actExit: TAction; actSheme1: TAction; actSheme2: TAction;

procedure mitExitClick(Sender: TObject); procedure mitNewClick(Sender: TObject);

procedure mitStatusBarVisibleClick(Sender: TObject); procedure mitToolbarVisibleClick(Sender: TObject); procedure mitSheme1Click(Sender: TObject); procedure mitSheme2Click(Sender: TObject); procedure MemoKeyUp(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure mitSaveClick(Sender: TObject);

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

procedure MemoClick(Sender: TObject); procedure mitOpenClick(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

frmEditor: TfrmEditor;

implementation

{$R *.dfm}

procedure TfrmEditor.mitExitClick(Sender: TObject); begin

Close;

end;

procedure TfrmEditor.mitNewClick(Sender: TObject); begin

MessageBox(Handle,

PChar('Активирован пункт меню '+(Sender as TMenuItem).Caption), 'Сообщение', MB_OK or MB_ICONWARNING);

end;

procedure TfrmEditor.mitStatusBarVisibleClick(Sender: TObject); begin

mitStatusBarVisible.Checked:=not mitStatusBarVisible.Checked; //скрываем/показываем строку состояния

StatusBar.Visible:=mitStatusBarVisible.Checked;

end;

procedure TfrmEditor.mitToolbarVisibleClick(Sender: TObject); begin

mitToolbarVisible.Checked:=not mitToolbarVisible.Checked; //скрываем/показываем панели инструментов tbStandart.Visible:=mitToolbarVisible.Checked; tbView.Visible:=mitToolbarVisible.Checked;

end;

procedure TfrmEditor.mitSheme1Click(Sender: TObject); begin

Memo.Color:=clWhite; //цвет фона Memo.Font.Color:=clBlack; //цвет текста

end;

procedure TfrmEditor.mitSheme2Click(Sender: TObject); begin

Memo.Color:=clBlue;//цвет фона Memo.Font.Color:=clYellow;//цвет текста

end;

procedure TfrmEditor.MemoKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

begin

StatusBar.Panels[1].Text:='(Стр: '+IntToStr(Memo.CaretPos.Y+1) + ' Кол: '+IntToStr(Memo.CaretPos.X)+')';

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

end;

procedure TfrmEditor.mitSaveClick(Sender: TObject); begin

try

if SaveDialog.Execute then //пользователь сделал выбор

//сохранение строк в текстовый файл

Memo.Lines.SaveToFile(SaveDialog.FileName); except

MessageBox(Handle, 'Ошибка записи файла!',

'Ошибка', MB_OK or MB_ICONERROR);

end;

end;

procedure TfrmEditor.MemoClick(Sender: TObject); begin

StatusBar.Panels[1].Text:='(Стр: '+IntToStr(Memo.CaretPos.Y+1) + ' Кол: '+IntToStr(Memo.CaretPos.X)+')';

end;

procedure TfrmEditor.mitOpenClick(Sender: TObject); begin

try

if OpenDialog.Execute then //пользователь сделал выбор

//загрузка строк из текстового файла

Memo.Lines.LoadFromFile(OpenDialog.FileName); except

MessageBox(Handle, 'Ошибка открытия файла!', 'Ошибка', MB_OK or MB_ICONERROR);

end;

end;

end.