Delphi. Форма, компоненты Button и Memo

Рисование линий и прямоугольников в Delphi. Компоненты Image, OpenPictureDialog, SavePictureDialog. Создание и сохранение текстовой информации. Редактирование, изменение стиля, сохранение и поиск текста. Компоненты ListBox, ComboBox, StringGrid.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 16.10.2014
Размер файла 2,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Основное свойство такого объекта как Canvas Delphi - Pixels[i, j] типа TColor, то есть это двумерный массив точек (пикселов), задаваемых своим цветом. Рисование на канве происходит в момент присвоения какой-либо точке канвы заданного цвета. Каждому пикселу может быть присвоен любой доступный для Windows цвет. Например, выполнение оператора

Image1.Canvas.Pixels[100, 100]:=clRed;

приведёт к рисованию красной точки с координатами [100, 100]. Узнать цвет пиксела можно обратным присвоением:

Color:=Image1.Canvas.Pixels[100, 100];

Тип TColor определён как длинное целое (LongInt). Его четыре байта содержат информацию о долях синего (B), зелёного (G), и красного (R) цветов. В 16-ричной системе это выглядит так: $00BBGGRR.

Доля каждого цвета может меняться от 0 до 255. Поэтому чтобы отобразить максимально красную точку, ей нужно присвоить цвет $000000FF.

Для стандартных цветов в Delphi определён набор текстовых констант. Увидеть его можно, открыв в Инспекторе Объектов свойство Color, например, той же Формы.

Следующая таблица содержит некоторые свойства и методы канвы:

Процедура TextOut(X, Y: Integer; const Text: WideString); Производит вывод строки Text начиная с (X, Y) - левого верхнего пиксела текста.

Свойство TextWidth(var Text: String): Integer; Содержит длину строки Text в пикселах.

Свойство TextHeight(var Text: String): Integer; Содержит высоту строки Text в пикселах.

Процедура MoveTo(X, Y: Integer); Производит перемещение позиции к пикселу с адресом (X, Y).

Процедура LineTo(X, Y: Integer); Производит рисование прямой линии из точки текущей позиции к пикселу с адресом (X, Y). Адрес (X, Y) становится точкой текущей позиции.

Процедура FillRect(const Rect: TRect); Заполняет прямоугольник Rect на холсте, используя текущую кисть. Может использоваться, в том числе, для стирания части изображения на холсте.

Напишем, используя только эти методы канвы, приложение для изображения на канве компонента Image текста, который вводится в компонент Memo:

Расположите на форме компоненты Memo, Image (находится на странице Additional), Edit, UpDown (находится на странице Win32). Свойство Associate компонента UpDown приравняйте в выпадающем списке нашему компоненту Edit. Этим компонентом мы будем изменять размер шрифта. Поскольку и Memo и Image находятся у нас на одном устройстве вывода - на нашем экране, размер пиксела у них одинаков, и поэтому размеры изображения будут равны.

Первое, что мы сделаем, это инициализацию переменных при старте программы. Необходимо определить размеры области рисования (создадим для этого глобальную переменную Rect типа TRect) и сделать цвет фона Image белым:

procedure TForm1.FormCreate(Sender: TObject);

begin

Rect.Left:=0;

Rect.Top:=0;

Rect.Right:=Image1.Width;

Rect.Bottom:=Image1.Height;

Image1.Canvas.Brush.Color:=clWhite;

end;

Затем нарисуем рамку по сторонам Image:

procedure TForm1.page;

begin

with Image1.Canvas do

begin

MoveTo(0, 0);

LineTo(Image1.Width-1, 0);

LineTo(Image1.Width-1, Image1.Height-1);

LineTo(0, Image1.Height-1);

LineTo(0, 0);

end;

end;

Попробуем, что получилось. Всё работает, но рамка пока не выводится. Поэтому добавим процедуру page в в процедуру FormCreate. Теперь красиво. Далее напишем простую процедуру стирания, очищения Image. Её нужно будет вызывать перед любым обновлением изображения, иначе предыдущее и последующее изображения будут перекрываться.

procedure TForm1.clearing;

begin

Image1.Canvas.FillRect(Rect); //Прямоугольник Rect

заполняется белым цветом, изображение стирается.

end;

Теперь пришла очередь непосредственно процедуры вывода текста. Начнём выводить текст от точки (3, 3) - верхнего левого угла листа, с небольшим отступом в 3 пиксела. Каждую последующую строку будем смещать на высоту строки:

procedure TForm1.prn;

var i: Integer;

begin

with Image1.Canvas do

for i:=1 to Memo1.Lines.Count do

TextOut(3, 3+(i-1)*TextHeight('A'), Memo1.Lines[i-1]);

end;

Теперь всё готово для вывода текста. Делать это будем по событию OnChange:

procedure TForm1.Memo1Change(Sender: TObject);

begin

clearing;

prn;

page;

end;

Ну и напоследок процедура изменения размера шрифта:

procedure TForm1.Edit1Change(Sender: TObject);

begin

Memo1.Font.Size:=UpDown1.Position;

Image1.Canvas.Font.Size:=UpDown1.Position;

Memo1Change(Sender);

end;

Можно модифицировать эту программу для вывода текста на печать. Для работы с принтером нужно подключить модуль Printers:

unit Unit1;

Interface

Uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Printers;

При работе с принтером как с полотном для начала печати вызывается метод BeginDoc, затем производится вывод документа, завершается печать вызовом метода EndDoc:

Printer.BeginDoc;

with Printer.Canvas do

begin

... Печать документа ...

end;

Printer.EndDoc;

Ширина и высота полотна принтера доступны через свойства Printer.PageWidth и Printer.PageHeight. Закончить печать на одной странице и начать печатать на другой можно с помощью метода Printer.NewPage.

Размещено на Allbest.ru


Подобные документы

  • Программа "Labs", выбор шрифта с помощью элемента ComboBox. Очистка содержимого и добавление значений в элемент ListBox. Загрузка картинки в элементе Image. Совместная работа SpinButton и TextBox. Изменение масштаба надписи и текста элемента Label.

    лабораторная работа [3,1 M], добавлен 31.05.2009

  • Создание приложения для просмотра графических файлов. Компоненты, объекты и операторы для отображения графической информации в библиотеке Delphi. Канва как область компонента для рисования и отображения изображений. Рисование пером, закрашивание кистью.

    методичка [98,1 K], добавлен 19.06.2011

  • Создание нового документа. Редактирование текстовых файлов типа TXT и RTF. Сохранение измененного документа. Изменение шрифта, начертания и размера символов. Отмена последнего действия. Оформление нового текста, форматирование абзаца, удаление текста.

    реферат [158,6 K], добавлен 25.10.2013

  • Принципы и порядок работы с файлами на языке Delphi, получение навыков программирования с использованием файлов. Создание каталога продуктов. Страница палитры компонентов, настраиваемые компоненты и их значения. Текст программы и ее тестирование.

    лабораторная работа [243,9 K], добавлен 09.01.2009

  • Проектирование базы данных учета посещаемости и среда разработки программного продукта. Работа с базами данных Access в Delphi: компоненты доступа к данным, создание отчетов в Delphi и запросов на языке SQL. Программа и эксплуатационная документация.

    дипломная работа [53,2 K], добавлен 16.07.2008

  • Понятие и назначение условных операторов, их функциональные особенности и характерные свойства. Разновидности и отличия циклов. Прерывание фрагмента программы с циклом с использованием оператора break. Компоненты для отображения и редактирования текста.

    контрольная работа [13,2 K], добавлен 02.05.2012

  • Создание электронного учебника "Визуальные и не визуальные компоненты Delphi". Основные требования к организации интерфейса. Логическая структура и технические средства. Аппаратно–программный комплекс. Применение программы, тестирование и отладка.

    курсовая работа [39,5 K], добавлен 03.12.2012

  • Разработка программы автоматизации процесса проверки знаний учащихся. Использование языка программирования Borland Delphi 7.0, его свойства, компоненты для работы со строками. Создание обучающих тестов на знание лексики и грамматики английского языка.

    курсовая работа [521,0 K], добавлен 06.03.2016

  • Создание компьютерной игры посредством среды программирования Delphi. Инструменты разработки, компоненты и методы для разработки программы. Логическая и физическая структуры, основные функции и элементы управления программы, ее тестирование и отладка.

    курсовая работа [27,9 K], добавлен 26.07.2014

  • Функциональное и эксплуатационное назначение изделия. Программная совместимость. Результирующие компоненты изделия. Носители информации. Безопасность и секретность. Требования к надежности. Мобильность. Стадии и этапы разработки.

    реферат [553,2 K], добавлен 13.08.2006

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.