
- •Введение
- •Компонент TToolBar
- •Кнопки
- •Значки на кнопках
- •Надписи на кнопках
- •Разделительные линии
- •Кнопки-переключатели
- •Обработка нажатий кнопок
- •Подсказки к кнопкам
- •Управление видимостью панели кнопок
- •Компонент TControlBar
- •Механизм причаливания
- •Список команд. Компонент TActionList.
- •Создание списка команд
- •Команды. Компонент TAction.
- •Caption
- •Привязка команд
- •Реакция на команды
- •Задания к лабораторной работе
- •Вопросы к лабораторной работе
- •Справочные таблицы
- •Приложение А
- •Приложение Б

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
обработчик события для кнопки 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.