Графические объекты в среде Delphi
Графические возможности среды Delphi. Наследники класса TGraphicsObject. Создание форм, диаграмм, графиков, таблиц и рисунков. Основные свойства Image, Chart, DrawGrid, Animate, PaintBox. Загрузка и хранение графических изображений и их комбинирование.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 10.11.2015 |
Размер файла | 812,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Img.AutoSize := False;
img.Picture := nil;
Img.Picture.LoadFromFile(OpenDlg.FileName);
end;
//Помощь
procedure TForm1.delN7Click(Sender: TObject);
begin
Help.ShowModal;
end;
//О программе
procedure TForm1.delN8Click(Sender: TObject);
begin
About.ShowModal;
end;
//Печать
procedure TForm1.print1Click(Sender: TObject);
begin
PrintDialog1.Execute;
Printer.BeginDoc;
with Img.Picture.BitMap do
Printer.Canvas.CopyRect(Rect(0, 0, Height, Width),
Canvas, Rect(0, 0, Height, Width));
Printer.EndDoc;
end;
//Создать
procedure TForm1.delN2Click(Sender: TObject);
begin
ShellExecute(Form1.Handle, 'open', PChar('c:\WINDOWS\system32\mspaint.exe'), nil , nil, SW_SHOWNORMAL);
Close;
end;
//Редактирование
procedure TForm1.Edit1Click(Sender: TObject);
begin
ShellExecute(Form1.Handle, 'open', PChar('c:\WINDOWS\system32\mspaint.exe'), PChar(OpenDlg.FileName), nil, SW_SHOWNORMAL);
Close;
end;
//Удаление
procedure TForm1.del1Click(Sender: TObject);
begin
case MessageBox(0, 'Вы действительно хотите удалить файл?', 'Удаление..', MB_YESNO or MB_ICONWARNING) of
mrYes:
begin
//Удаляем файл
if SysUtils.DeleteFile(OpenDlg.FileName) then
ShowMessage('Файл удален!');
//Выбираем следущее изображение в списке
if ListBox1.ItemIndex <> ListBox1.Count - 1 then
ListBox1.ItemIndex := ListBox1.ItemIndex + 1
else
ListBox1.ItemIndex := 0;
OpenDlg.FileName := ListBox1.Items[ListBox1.ItemIndex];
//Удаляем из списка
ListBox1.Items.Delete(ListBox1.ItemIndex-1);
//Задаем масштабирование
Img.Proportional := True;
Img.AutoSize := False;
//Открываем следущее изображение
Img.Picture.LoadFromFile(OpenDlg.FileName);
end;
mrNo: Exit;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if GetAsyncKeyState(VK_RIGHT)<> 0 then
Form1.r.Click;
if GetAsyncKeyState(VK_LEFT)<> 0 then
Form1.l.Click;
if GetAsyncKeyState(VK_DELETE)<> 0 then
Form1.del1.Click;
end;
end.
Листинг программы 4
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TeEngine, TeeFunci, Series, ExtCtrls, TeeProcs, Chart;
type
TForm1 = class(TForm)
Chart1: TChart;
Series1: TLineSeries;
TeeFunction1: TAddTeeFunction;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Implementation {$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
Series1.Clear;
for i:=0 to 22 do
begin
Series1.AddXY(i*0.29, 5*cos(i*0.29),'',clGreen); end; end; end.
Листинг программы 5:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls, XPMan,
ImgList, Menus;
type
TForm1 = class(TForm)
Label5: TLabel;
Label6: TLabel;
Edit5: TEdit;
Edit6: TEdit;
Label8: TLabel;
Edit7: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Chart1: TChart;
Series1: TLineSeries;
XPManifest1: TXPManifest;
Series2: TLineSeries;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Hx,Hy,h:extended;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Hx:=pi/2;
Hy:=0.5;
h:=0.01;
Edit5.Text:=floatToStr(Hx);
Edit6.Text:=floatToStr(Hy);
Edit7.Text:=floatToStr(h);
Chart1.BottomAxis.Automatic:=False;
Chart1.BottomAxis.Minimum:= -pi;
Chart1.BottomAxis.Maximum:= pi;
Chart1.LeftAxis.Automatic:=False;
Chart1.LeftAxis.Minimum:= -1;
Chart1.LeftAxis.Maximum:= 1;
Chart1.BottomAxis.Increment:=Hx;
Chart1.LeftAxis.Increment:=Hy;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//чтение данных из окон однострочных редакторов
Hx:=StrToFloat(Edit5.Text);
Hy:=StrToFloat(Edit6.Text);
Chart1.BottomAxis.Minimum:= -pi;
Chart1.BottomAxis.Maximum:= pi;
Chart1.LeftAxis.Minimum:= -1;
Chart1.LeftAxis.Maximum:= 1;
Chart1.bottomAxis.Increment:=Hx;
Chart1.LeftAxis.Increment:=Hy;
end;
procedure TForm1.Button2Click(Sender: TObject);
var x,y1,y2:extended;
begin
Series1.Clear;
Series2.Clear;
h:=strToFloat(Edit7.Text);
x:=-pi;
repeat
y1 := sin(x)*cos(x);
Series1.AddXY(x,y1,'',clTeeColor);
y2 := Pi * (Sin(x)/Cos(x));
Series2.AddXY(x,y2,'',clTeeColor);
x:=x+h;
Until (x > pi);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Form2.ShowModal;
end;
end.
Листинг программы 5
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
Tvert=1..8; //номера вертикалей
Tgor=0..8; //горизонталей
Tresh=array[Tvert] of Tgor; //решение - 8 ферзей, для каждого позиция: пере-сечение вертикали и горизонтали
TLibertyMainDiag=array[2..16] of boolean; //список главных диагоналей, по-казывает свободна или нет
TLibertyNotMainDiag=array[-7..7] of boolean; //побочные
TLibertyHoriz=array[1..8] of boolean; //горизонтали
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
ListBox1: TListBox;
DrawGrid1: TDrawGrid;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
kol: integer;
implementation {$R *.dfm}
var
LibMain:TLibertyMainDiag;
LibNotMain:TLibertyNotMainDiag;
LibHoriz:TLibertyHoriz;
resh:Tresh; //решение
Nvar:integer; //номер текущего решения (варианта)
log: boolean;
procedure Print(resh:Tresh; var stop : boolean); //печатает на экран текущее решение
var i:integer;
j: integer;
t:tRect;
begin
form1.ListBox1.Items.Clear;
for i := 1 to kol do
for j := 1 to kol do begin
t:=form1.DrawGrid1.CellRect(i-1, j-1);
form1.DrawGrid1.canvas.textout(t.Left,t.Top, ' -');
end;
for i:=1 to kol do begin
form1.ListBox1.Items.Add('('+inttostr(i)+','+inttostr(resh[i])+')');
t:=form1.DrawGrid1.CellRect(i-1, resh[i]-1);
form1.DrawGrid1.canvas.textout(t.Left,t.Top, ' q');
end;
if messagebox(form1.Handle, pchar('Вы хотите продолжить?'),'Продолжить',MB_OkCancel)<>id_OK then
stop := true;
end;
procedure Init; //инициализирует - все клетки свободны!
var i:integer;
begin
for i:=2 to 16 do
LibMain[i]:=true;
for i:=-7 to 7 do
LibNotMain[i]:=true;
for i:=1 to 8 do
LibHoriz[i]:=true;
end; {Init}
procedure Q8TryAll(Nvert:Tvert; var resh:Tresh; var stop :boolean); //ищем
var Ngor:Tgor; //номер текущей горизонтали
begin
Ngor:=0;
repeat
Ngor:=Ngor+1;
//если одновременно свободны: горизонталь, главная и побочная диагонали
if LibHoriz[Ngor] and LibMain[Ngor+Nvert] and LibNotMain[Nvert-Ngor] then begin
resh[Nvert]:=Ngor;
//занять горизонталь и диагонали
LibHoriz[Ngor]:=false;
LibMain[Ngor+Nvert]:=false;
LibNotMAin[Nvert-Ngor]:=false;
//распечатать решение, если перебрали все все вертикали и каждую заняли
if Nvert=kol then Print(resh, stop)
//поставить новую ловушку, чтобы перебрать все варианты
else
Q8TryAll(succ(Nvert),resh, stop);
//откат, снимаем ловушку, т. к. перебрали все варианты
LibHoriz[Ngor]:=true;
LibMain[Ngor+Nvert]:=true;
LibNotMAin[Nvert-Ngor]:=true;
end; {if LibHoriz[Ngor]...}
until (Ngor=StrToInt(form1.Edit1.Text)) or stop;
end; {Q8TryAll}
procedure quin;
Begin
Nvar:=0;
Init;
log := false;
Q8TryAll(1,resh, log);
messagebox(form1.Handle,'Решений больше нет','решений нет', mb_ok);
End;
procedure TForm1.Button1Click(Sender: TObject);
begin
kol := StrToInt(edit1.Text);
DrawGrid1.ColCount := kol;
DrawGrid1.rowCount := kol;
quin;
end;
end.
Листинг программы 6
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
P: TPaintBox;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
B:TBitMap;
cX,cY,ww,hh,step_:word;
XX,YY:word;
anim,xod:byte;
const
pol: array[0..9,0..1] of byte = ((5,2), (5,3), (7,3), (7,5), (6,5), (6,4), (3,4), (3,3), (4,3), (4,2));
move_: array[1..14] of byte = (1,2,1,1,2,2,3,4,3,3,3,4,1,4);
implementation {$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
step_:=50; //шаг клетки
ww:= 10;
hh:=7;
XX:= pol[9,0]*step_;
YY:= pol[9,1]*step_;
anim:=0;
B:=TBitMap.Create;
B.Width:= ww * step_;
B.Height:= hh * step_;
xod:=1;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
i:word;
begin
B.Canvas.MoveTo(pol[9,0]*step_, pol[9,1]*step_);
for i:=0 to 9 do B.Canvas.LineTo(pol[i,0]*step_, pol[i,1]*step_);
//Рисуем крестик.
B.Canvas.MoveTo(XX-7,YY-7);
B.Canvas.LineTo(XX+7,YY+7);
B.Canvas.MoveTo(XX+7,YY-7);
B.Canvas.LineTo(XX-7,YY+7);;
if anim < 10 then begin
case move_[xod] of
1:XX:= XX+5;
2:YY:= YY+5;
3:XX:= XX-5;
4:YY:= YY-5;
end;
anim:=anim + 1;
end else begin
anim:=0;
if xod <> 14 then xod:=xod+1 else xod:=1;
end;
P.Canvas.Draw(0,0,B);
B.canvas.fillrect(B.canvas.cliprect);
end;
end.
Размещено на Allbest.ur
...Подобные документы
Сущность программирования с использованием среды Delphi 7 и ее основные графические возможности. Структура автономно компилируемого программного модуля и его принципы. Основные приемы работы с графическими процедурами, построение дуги, круга и эллипса.
курсовая работа [138,2 K], добавлен 16.12.2011Создание приложения для просмотра графических файлов. Компоненты, объекты и операторы для отображения графической информации в библиотеке Delphi. Канва как область компонента для рисования и отображения изображений. Рисование пером, закрашивание кистью.
методичка [98,1 K], добавлен 19.06.2011Растровые и векторные графические редакторы. Форматы файлов, используемые для хранения графических изображений. Графические редакторы, используемые для создания изображений. Редакторы для создания трехмерных изображений. Создание графического редактора.
курсовая работа [306,5 K], добавлен 23.08.2013Средства языка программирования Delphi. Структурные типы данных. Строковые переменные, массивы, множества, файлы. Механизм классов в C++. Интерфейсный и описательный обзоры классов в Delphi. Работа с текстовыми и бинарными файлами прямого доступа.
курсовая работа [990,4 K], добавлен 07.08.2012Графические возможности текстовых процессоров Microsoft Office Word и Open office.org. Вставка в документы рисунков и других объектов. Встраивание и связывание объектов. Преобразование текста посредством Microsoft WordArt. Виды графических объектов.
реферат [4,3 M], добавлен 17.06.2015Особенности среды визуального проектирования Borland Delphi 7.0. Этапы разработки программы и составления блок-схемы алгоритмов. Способы вычисления кусочно-заданной функции одной переменной. Рассмотрение компонентов среды Delphi, ее предназначение.
контрольная работа [703,8 K], добавлен 24.09.2012Разработка базы данных книжного магазина в среде программирования Delphi. Создание таблиц и их заполнение. Требования к составу и параметрам технических средств. База данных как набор файлов, содержащих информацию. Этапы создания приложения в Delphi.
курсовая работа [803,6 K], добавлен 04.11.2012Разработка программы для фирм, занимающихся продажей и учетом лекарственных средств. Структурный анализ с помощью диаграмм SADT и диаграмм "сущность-связь". Создание приложения в Delphi и таблиц базы данных. Организация пользовательского интерфейса.
курсовая работа [618,5 K], добавлен 30.11.2009Среда Borland Delphi и ее графические средства для построения фрактальных множеств. Разработка программы для построения изображения листа папоротника при помощи вероятностных распределений с использованием средств для отображения графической информации.
курсовая работа [1,3 M], добавлен 29.07.2013Delphi как среда разработки программ, ориентированных на работу в Windows. Назначение и преимущество использования электронных учебников. Описание возможностей среды Delphi 5 для разработки электронного учебника. Варианты применения служб Internet.
дипломная работа [3,6 M], добавлен 13.07.2011Разработка программного приложения в среде Delphi. Создание таблиц и их заполнение. Форма редактирования записи. Реализация SQL запросов и поиска. Создание отчётов по БД. Руководство пользователя. Требования к составу и параметрам технических средств.
курсовая работа [1,3 M], добавлен 03.11.2014Разработка информационной системы административного управления. Выбор языка и среды программирования. Структура взаимодействия информации. Требования к программно-аппаратному окружению. Создание программы в Delphi и связывание ее с базой данных.
курсовая работа [1010,9 K], добавлен 08.10.2015Изучение основных принципов разработки приложений баз данных в среде Delphi. Создание таблиц, псевдонима и вычисляемых полей базы данных. Особенности организации поиска и фильтрации. Сортировка данных в таблицах. Построение запросов. Генерация отчетов.
курсовая работа [1,3 M], добавлен 05.02.2017Игра арканный симулятор гонок разработана: в среде Delphi 5 с использованием библиотеки OpenGL 1.3.4582, Pixia 2.4g для создания и редактирования текстур, Image Editor 3.0 для создания иконок, 3D-Stydio Max 5.0 для создания моделей машин (игрока).
курсовая работа [34,1 K], добавлен 23.12.2007Форматирование текста, работа с таблицами. Добавление графических объектов в документ. Создание формул, построение диаграмм. Основные приемы работы в электронных таблицах Excel. Графические возможности в Microsoft Word. Решений нелинейных уравнений.
контрольная работа [743,9 K], добавлен 27.05.2013Программирование и простейшие графические возможности. Основные структуры для представления и два конструктора с аргументами. Дальнейшие координаты точки и инициализирование новой. Хранение и изменение координат левого верхнего угла прямоугольника.
лабораторная работа [24,2 K], добавлен 01.12.2011Векторная компьютерная графика. Графические примитивы. Графические возможности языка программирования Pascal. Методические рекомендации к изучению графики в языке программирования Pascal. Построение графиков функций.
курсовая работа [28,3 K], добавлен 13.06.2007Анализ информационной системы ИНЭК "Страховщик". Описание предметной области с использованием модели "сущность-связь". Моделирование бизнес-процессов с помощью IDEF0-диаграмм. Проектирование и разработка приложения в среде Delphi и создание интерфейса.
отчет по практике [4,9 M], добавлен 28.12.2014Понятие компьютерной графики. Представление графической информации в компьютере. Графические форматы и редакторы. Характеристика программы, интерфейса. Возможности использования программы CorelDraw. Возможности создания сложных графических изображений.
дипломная работа [1,1 M], добавлен 04.01.2011Общая характеристика системы программирования Delphi, а также принципы создания ее компонентов. Описание значений файлов приложения, созданного с помощью Delphi. Структура и свойства библиотеки визуальных компонентов (Visual Component Library или VCL).
отчет по практике [1,1 M], добавлен 07.12.2010