Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 10.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
409 Кб
Скачать
☆

Interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, ExtCtrls;

type

TForm1 = class(TForm)

Image1: TImage;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

Button1: TButton;

Edit1: TEdit;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N1Click(Sender: TObject);

private { Private declarations }

public { Public declarations }

end;

var

Form1: TForm1;

Implementation

{$R *.dfm}

function www(x:real):real ;

begin

result:=x*x-3*x+2;

end;

procedure TForm1.Button1Click(Sender: TObject);

var x,y:real; i:integer;

begin

if Edit1.Text<> '' then

begin

Image1.Canvas.Brush.Color:=clWhite;

Image1.Canvas.Rectangle(0,0,501,501);

Image1.Canvas.MoveTo(0,251);

Image1.Canvas.LineTo(501,251);

Image1.Canvas.MoveTo(251,0);

Image1.Canvas.LineTo(251,501);

Image1.Canvas.MoveTo(241,20);

Image1.Canvas.LineTo(251,0);

Image1.Canvas.LineTo(261,20);

Image1.Canvas.MoveTo(481,241);

Image1.Canvas.LineTo(501,251);

Image1.Canvas.LineTo(481,261);

for i:=1 to 21 do begin

Image1.Canvas.MoveTo(i*25+1,246);

Image1.Canvas.LineTo(i*25+1,254);

Image1.Canvas.TextOut(i*25+1,255,FloatToStr(StrToInt(edit1.Text)/250*(i*25-250)));

Image1.Canvas.MoveTo(246,i*25+1);

Image1.Canvas.LineTo(254,i*25+1);

Image1.Canvas.TextOut(255,i*25+1,FloatToStr(- StrToInt(edit1.Text)/250*(i*25-250)));

end;

Image1.Canvas.TextOut(240,10,'y');

Image1.Canvas.TextOut(480,230,'x');

x:=StrToInt(edit1.Text)/250*(-250);

y:=www(x);

Image1.Canvas.MoveTo(round(X/Strtoint(Edit1.Text)*250+251),

round(-Y/StrToInt(Edit1.Text)*250+251));

for i:=2 to 501 do begin

x:=StrToInt(edit1.Text)/250*(i-251);

y:=www(x);

Image1.Canvas.LineTo(round(X/Strtoint(Edit1.Text)*250+251),

round(- Y/StrToInt(Edit1.Text)*250+251)); end

end

else ShowMessage('введите масштаб');

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Image1.Canvas.Brush.Color:=clWhite;

Image1.Canvas.Rectangle(0,0,501,501);

Image1.Canvas.MoveTo(0,251);

Image1.Canvas.LineTo(501,251);

Image1.Canvas.MoveTo(251,0);

Image1.Canvas.LineTo(251,501);

Image1.Canvas.MoveTo(241,20);

Image1.Canvas.LineTo(251,0);

Image1.Canvas.LineTo(261,20);

Image1.Canvas.MoveTo(481,241);

Image1.Canvas.LineTo(501,251);

Image1.Canvas.LineTo(481,261);

Image1.Canvas.TextOut(240,10,'y');

Image1.Canvas.TextOut(480,230,'x');

end;

procedure TForm1.N2Click(Sender: TObject);

begin close; end;

procedure TForm1.N1Click(Sender: TObject);

begin

MessageDlg('программа рисует функцию, заданную в подпрограмме-функция. В окне масштаб вводится число отрезков на которые разбиваются координатные прямые',mtinformation,[mbok],0)

end;

end.

Вывод иллюстраций

Наиболее просто вывести иллюстрацию, которая находится в файле с расширением bmp, jpg или ico, можно при помощи компонента image, значок которого находится на вкладке Additional палитры (рис. 10.11).

Рис. 10.11. Значок компонента Image

В табл. 10.8 перечислены основные свойства компонента image.

Таблица 10.8. Свойства компонента image

Свойство

Определяет

Picture

Width, Height

AutoSize

Strech

Visible

Иллюстрацию, которая отображается в поле компонента

Размер компонента. Если размер компонента меньше размера иллюстрации, и значение свойств AutoSize и strech равно False, то отображается часть иллюстрации

Признак автоматического изменения размера компонента в соответствии с реальным размером иллюстрации

Признак автоматического масштабирования иллюстрации в соответствии с реальным размером компонента. Чтобы было выполнено масштабирование, значение свойства AutoSize должно быть False

Отображается ли компонент, и, соответственно, иллюстрация, на поверхности формы

Иллюстрацию, которая будет выведена в поле компонента image, можно задать как во время разработки формы приложения, так и во время работы программы.

Во время разработки формы иллюстрация задается установкой значения свойства picture путем выбора файла иллюстрации в стандартном диалоговом окне, которое появляется в результате щелчка на командной кнопке Load окна Picture Editor (рис. 10.12). Чтобы запустить Image Editor, нужно в окне Object Inspector выбрать свойство Picture и щелкнуть на кнопке с тремя точками.

Если размер иллюстрации больше размера компонента, то свойству strech нужно присвоить значение True и установить значения свойств width и Height пропорционально реальным размерам иллюстрации.

Чтобы вывести иллюстрацию в поле компонента image во время работы программы, нужно применить метод LoadFromFile к свойству Picture, указав в качестве параметра имя файла иллюстрации. Например, инструкция

Form1.Image1.Picture.LoadFromFile('e:\temp\bart.bmp')

загружает иллюстрацию из файла bart.bmp и выводит ее в поле вывода иллюстрации (image1).

Метод LoadFromFile позволяет отображать иллюстрации различных графических форматов: BMP, WMF, JPEG (файлы с расширением jpg).

Следующая программа, ее текст приведен в листинге 10.6, использует компонент image для просмотра иллюстраций, которые находятся в указанном пользователем каталоге. Диалоговое окно программы приведено на рис. 10.13.

Рис. 10.12. Окно Picture Editor

Рис. 10.13. Слайд-проектор

Листинг 10.6. Слайд-проектор

unit shpic_;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]