
- •Лабораторная работа №1 Delphi. Форма, компоненты Button и Memo
- •Лабораторная работа №2 Delphi. Формы. Рисование линий и прямоугольников
- •Лабораторная работа №3 Delphi. Рисование графиков
- •Лабораторная работа №4 Delphi. Компоненты Image, OpenPictureDialog, SavePictureDialog. Рисование и сохранение графической информации
- •Лабораторная работа №5 Delphi. Компоненты MainMenu, Memo Создание и сохранение текстовой информации
- •Создание структуры меню.
- •Справка. Если не добавить что-либо в шаблон обработчика события, то он и соответствующий заголовок метода в объявлении класса tForm1 будут удалены из текста программы при её подготовке к выполнению.
- •Добавление переменных, представляющих текущее состояние процесса обработки данных.
- •Создание обработчиков событий.
- •Лабораторная работа №6 Delphi. Компоненты диалога, RichEdit. Создание, редактирование, изменение стиля, сохранение и поиск текстовой информации
- •1. Меню
- •2. Работа с файлами
- •3. Шаблоны и действия
- •4. Панель инструментов
- •Лабораторная работа №7 Delphi. Компоненты ListBox, ComboBox, StringGrid Создание и использование
- •Лабораторная работа №8 Delphi. Страничные раскладки. Создание их и использование
- •Лабораторная работа №9 Общие представления. Графика
4. Панель инструментов
Добавьте на форму компонент TToolbar (двойным щелчком или перетащив его на заголовок формы. Установите для него высоту Height=30, а также свойства BorderWidth = 2 (отступ кнопок от границ панели) Indent = 5 (дополнительный отступ с левого края) Images = ImageList1 (список картинок).
Пока на панели нет ни одной кнопки. Если нажать на ней правую кнопку мыши, в верхней части контекстного меню появляются команды New Button (новая кнопка) и New Separator (новая линия-разделитель, граница между группами кнопок).
Сначала мы добавим три кнопки для работы с файлами.
Добавьте на панель инструментов три кнопки, установите для них обработчики события onClick, выбрав в списке готовые функции NewMIClick, OpenMiClick и SaveMIClick. Подумайте, почему на кнопках автоматически появились нужные картинки. Запустите программу и проверьте работу кнопок.
Теперь добавим еще 4 кнопки, связав их с действиями Вырезать, Копировать, Вставить и Отмена.
Добавьте на панель инструментов разделитель (New Separator) и еще четыре кнопки, установите для них свойства Action, выбрав в списке действия EditCut1, EditCopy1, EditPaste1 и EditUndo1. Проверьте работу кнопок.
Добавим еще три кнопки для установки стилей шрифта: жирного, курсива и подчеркивания. Используем для них стандартные действия (Actions) из группы Format.
Добавьте к списку действий ActionList1 стандартные действия TRichEditBold (жирный), TRichEditItalic (курсив) и TRichEditUnderline (подчеркивание) из группы Format. Исправьте для этих действий английские надписи на русские и установите правильные номера соответствующих картинок в списке ImageList1.
Добавьте на панель инструментов разделитель (New Separator) и еще три кнопки, назначьте им только что введенные стандартные действия. Запустите программу и проверьте работу новых кнопок.
Лабораторная работа №7 Delphi. Компоненты ListBox, ComboBox, StringGrid Создание и использование
Компоненты ListBox, ComboBox и Memo, расположены на первой же вкладке палитры компонентов.
Каждая строка компонентов ListBox и ComboBox является объектом Items[i], а Memo - Lines[i], где i - номер строки, который отсчитывается от нуля. Добавление строк в компоненты выполняется методами Add и Insert:
begin Memo1.Lines.Add('Первая строка'); ComboBox1.Items.Add('Первая строка'); ComboBox1.Items.Add('Вторая строка'); ListBox1.Items.Add('Первая строка'); ListBox1.Items.Add('Вторая строка'); end;
Метод Add добавляет новую строку в конец. Метод Insert имеет дополнительный параметр, указывающий, после какой строки разместить новую строку. Доступ к строкам осуществляется так: ComboBox1.Items[0] := 'Первая строка изменилась'; ListBox1.Items[1] := 'Вторая строка изменилась' ;
У компонента ComboBox дополнительно есть свойство Text, где (как и у компонента Edit) находится вводимый текст: ComboBox1.Text := ' Вводимый текст ';
На выделенную в данный момент строку компонента ComboBox указывает свойство ItemIndex типа Integer, то есть это номер выделенной строки. Следовательно, получить саму выделенную строку компонента ComboBox можно следующей конструкцией:
S := ComboBox1.Items[ComboBox1.ItemIndex];
или, пользуясь оператором присоединения
With ComboBox1 do S := Items[ItemIndex];
Вот как по нажатию клавиши Enter можно заносить в этот компонент вводимую в строку информацию и удалять нажатием Escape:
Выделите на Форме ComboBox и перейдите в Инспектор объектов, на вкладку Events. Щёлкните дважды по обработчику OnKeyPress. Система Delphi создаст заготовку обработчика. Напишите: begin if Key = #13 then ComboBox1.Items.Add(ComboBox1.Text) if Key = #27 then; ComboBox1.Items.Delete(ComboBox1.Items.Count-1); end;
Key - определённая в этом обработчике переменная, содержащая код нажатой клавиши, #13 и #27 - коды клавиш Enter и Escape соответственно. Items.Count - количество содержащихся в компоненте строк. Так как отсчёт строк идёт от нуля, мы отнимаем единицу. После очередного удаления количество строк меняется, таким образом, Items.Count-1 всегда указывает на последнюю строку. Последовательно нажимая Escape, мы можем удалить все строки. Командой ComboBox1.Items.Delete(0); можно добиться того же эффекта, только удаляться будут первые строки. Впрочем, чтобы стереть всё сразу, есть метод Clear.
Компонент Delphi StringGrid (Таблица строк) расположен на странице Additional Палитры компонентов. Использование электронных таблиц пользователями компьютеров стало привычным и достаточно удобным средством в работе с данными. С помощью компонента StringGrid создаются таблицы, в ячейках которых содержаться произвольные текстовые данные. Он является прямым потомком компонента DrawGrid, много свойств и методов унаследовано от него.
Основное свойство компонента StringGrid - это двумерный массив Cells[ACol, ARow : integer] типа String с помощью него можно обращаться к содержимому ячеек и изменять их содержание. ACol устанавливает номер столбца, ARow - задает строку в таблице. Этим свойством можно воспользоваться только во время выполнения программы, оно доступно для записи и чтения.
Нумерация строк и столбцов идет с нуля. Свойство ColCount задает число столбцов, RowCount - число строк.
Компонент StringGrid по умолчанию слева и сверху имеет заголовочные области, они имеют серый цвет. Количество подобных строк и столбцов устанавливается в свойствах FixedCols и FixedRow. Если же для таблицы не нужны заголовочные области, то эти свойства должны быть равны нулю.
Для закрепления материала давайте создадим приложение, которое покажет нам таблицу умножения. На форму шириной (Width) равной 365 и высотой (Height) 389 поместим компонент StringGrid. Обработчик onCreate формы (возникает двойным щелчком мыши по форме) будет таким:
procedure TForm1.FormCreate(Sender: TObject);
var
x, y : integer;
begin
// Задаем число столбцов и строк таблицы
StringGrid1.ColCount := 10;
StringGrid1.RowCount := 10;
// Задаем шируну и высоту ячеек
StringGrid1.DefaultColWidth := 30;
StringGrid1.DefaultRowHeight:= 30;
// раставляем цифры от 1 до 9 в
// горизонтальной области заголовка
for x := 1 to StringGrid1.ColCount - 1 do
StringGrid1.Cells[x, 0] := IntToStr(x);
// растравляем цифры от 1 до 9 в
// вертикальной области заголовка
for y := 1 to StringGrid1.ColCount - 1 do
StringGrid1.Cells[0, y] := IntToStr(y);
// выводим результаты умножения в ячейки таблицы
for x := 1 to StringGrid1.ColCount - 1 do
for y := 1 to StringGrid1.RowCount - 1 do
StringGrid1.Cells[x, y] := IntToStr(x*y);
end;
Запустим приложение внешний вид его будет примерно таким:
Итог: нами был рассмотрен компонент StringGrid, его свойства и методы.