Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Компонент 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), рассчитанные на использование в кнопках.
TSpeedButton содержат по два изображения каждый - обычное и для запрещенной кнопки. При добавлении изображений для кнопки 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.
|