на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Розробка засобами Delphi дидактичного ілюстративного матеріалу для розв’язання задачі з аналітичної геометр
p align="left">Якщо необхідно у деякій процедурі запустити таймер, що відлічив би заданий інтервал, наприклад, 5 секунд, після чого треба виконати деякі операції та вимкнути таймер, це можна зробити наступним чином. При проектуванні таймер робиться доступним (Enabled = true), але властивість Interval задається порівнюваним 0. Таймер не буде працювати, доки у момент, коли треба запустити таймер, не буде виконатися оператор [7].

Timer1.Interval:= 5000;

Через 5 секунд після цього наступить подія OnTimer. В її обробнику треба задати оператор, що відключить таймер, після чого можна виконувати необхідні операції:

Timer1.Interval:= 0;

Таймер точно витримує задані інтервали Interval, якщо вони достатньо великі -- сотні та тисячі мілісекунд. Якщо ж задавати інтервали довжиною десятки або одиниці мілісекунд, то реальні інтервали часу виявляються знатно більше внаслідок різноманітних накладних витрат, що пов'язані із викликами функцій та іншими обчислювальними аспект.

2.2.8 MainMenu

Меню -- це не візуальний компонент, який у додатку представляє с
обою список об'єднаних за функціональною ознакою пунктів, кожен із яких визначає команду або вкладене меню (підменю). Вибір пункту меню відповідає виконанню заданої команди або розкриттю підменю.

Існує два виду меню [5]:

– головне меню (MainMenu) -- компонент, призначений для керування працею усього додатку. При роботі додатку воно розташовується у верхні частині форми під заголовком та містить найбільш загальні команди роботи;

– спливаюче меню (PopupMenu) -- може визначатися для будь-якого об'єкту. Воно також містить команди, але вони, як правило, відносяться до відповідного об'єкту. У додатку спливаюче меню викликається натисканням по правій кнопці миші у момент, коли вказівник миші наведений на відповідний об'єкт. Таке меню ще називається контекстним, оскільки до нього входять ті команди, які можна виконувати над конкретним об'єктом у конкретний час.

Оскільки меню -- не візуальні компоненти, то вони можуть розміщуватись у будь-якому зручному для програміста місці форми. Для створення та зміни пунктів меню у процесі розробки додатку призначений Конструктор Меню (Menu Designer).

Усі пункти меню мають однакові властивості, які відображаються у Інспекторі Об'єктів. Наприклад, властивості Name та Caption. Властивість ShortCut може задавати «гарячі клавіші» для команди, що відповідає пункту. Якщо властивість Caption задати як « - » (тире), то в меню з'явиться розділова горизонтальна риса.

Для кожного пункту меню повинен бути заданий метод, що визначає дії, які виконуються у відповідь на подію вибору відповідного пункту. Щоб задати такий метод, треба запустити Конструктор меню та виконати подвійне натискання по необхідному пункту.

2.2.9 OLEContainer

Абревіатура OLE означає Objects Linked and Embedded (приєднання та вбудовані об'єкти). OLE є подальшим розвитком ідеї поділюваних між додатками даних. OLE дозволяє легко вмонтувати в додаток обробку будь-яких типів даних. Кожен раз, коли в програмі-клієнті користувач звертається до OLE-об'єкту з метою перегляду або редагування даних (зазвичай подвійного клацання мишкою на об'єкті), запускається додаток-сервер, в якому і відбувається робота з даними [2].

Як випливає з назви, OLE-об'єкти можна або приєднати до OLE-контейнера, або включити до нього. У першому випадку дані будуть зберігатися в файлі на диску; будь-який додаток буде мати доступ до цих даних і зможе вносити зміни. У другому випадку дані включаються в OLE-контейнер, і тільки він зможе переглядати і модифікувати ці дані.

Вибрати OLE-сервер можна, двічі натиснувши на компоненті (див. Рисунок 6).

Рисунок 4 - Вибір OLE-сервера

У цьому діалозі є список всіх зареєстрованих в системі OLE-серверів. Тип OLE-об'єкту визначається як раз тим сервером, який Ви вкажете. Якщо Ви створите новий об'єкт (Create New), то при натисканні на кнопку OK запуститься програма OLE-сервера, в якій і формується новий об'єкт.

Також OLE-об'єкт можна створити, використовуючи вже існуючий файл у форматі одного з OLE-серверів. Для цього потрібно вибрати пункт Create from File (див. Рисунок 7).

Рисунок 5 -- Створення із файлу

Обраний об'єкт можна як включити до програми, так і приєднати, відзначивши пункт Link.

Якщо під час дизайну Ви обираєте об'єкт для включення в OLE-контейнер, то він повністю записується у файл форми (formName.dfm) і в подальшому прикомпілюється до .exe файлу. У випадку дуже великих об'єктів це може призвести до тривалих пауз і навіть до виникнення помилки "Out of resource". Тому рекомендується великі об'єкти робити приєднаними (linked).

2.3 Алгоритми процедур

Блок-схема алгоритму процедури графічної побудови:

2.4 Програмний код додатку

Головна форма:

unit Unit1;

interface

uses

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

Dialogs, Menus, ExtCtrls, StdCtrls;

type

TForm1 = class(TForm)

GroupBox1: TGroupBox;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

GroupBox2: TGroupBox;

PaintBox1: TPaintBox;

MainMenu1: TMainMenu;

N1: TMenuItem;

Button1: TButton;

GroupBox3: TGroupBox;

ColorBox1: TColorBox;

Label6: TLabel;

Label5: TLabel;

CheckBox1: TCheckBox;

Label7: TLabel;

Button2: TButton;

Label8: TLabel;

ColorBox2: TColorBox;

Label9: TLabel;

CheckBox2: TCheckBox;

Label10: TLabel;

CheckBox3: TCheckBox;

Label11: TLabel;

ColorBox3: TColorBox;

Label12: TLabel;

Label13: TLabel;

ColorBox4: TColorBox;

ComboBox1: TComboBox;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

Bycnherwbz1: TMenuItem;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure ColorBox1Change(Sender: TObject);

procedure CheckBox1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure ColorBox2Change(Sender: TObject);

procedure CheckBox2Click(Sender: TObject);

procedure CheckBox3Click(Sender: TObject);

procedure ColorBox3Change(Sender: TObject);

procedure ColorBox4Change(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure Activate(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure Bycnherwbz1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

x0,y0:integer;

xe,ye:integer;

x,y:real;

dx,dy:real;

Mx,My:real;

xmin,xmax,ymin,ymax:integer;

a1,a2,b1,b2:integer;

xa,ya,xb,yb,xc,yc,xd,yd:real;

v,c,c1:integer;

OB,OD,D,BD:real;

xn,yn,xn1,yn1:Real;

X1,Y1,X2,Y2,Z1,Z2,xO,yO:real;

w:integer;

vis:integer;

OBP,ODP:integer;

implementation

uses Unit3, Unit2, Unit4, Unit5, Unit6;

{$R *.dfm}

function ekrX(x:real):integer; //Преобразование X

begin

ekrX:=round(mx*(x-xmin)+a1);

end;

function ekrY(y:real):integer; //Преобразование Y

begin

ekrY:=round(my*(-y+ymax)+b1);

end;

procedure TForm1.Activate(Sender: TObject);

begin

if vis<>1

then

begin

Form2.ShowModal;

end;

End;

procedure TForm1.FormCreate(Sender: TObject);

begin

xmin:=-4; xmax:=4; ymin:=-4; ymax:=4;

a1:=10; a2:=410;

b1:=10; b2:=410;

dx:=1; dy:=1;

with PaintBox1.Canvas do

begin

Brush.Color:=clWhite;

Rectangle(-1,-1,PaintBox1.Width+1,PaintBox1.Height+1);

Pen.width:=1;

Pen.Color:=clBlack;

Mx:=round((a2-a1)/(xmax-xmin));

My:=round((b2-b1)/(ymax-ymin));

x0:=a1-round(mx)*xmin;

y0:=b1+round(my)*ymax;

Pen.width:=1;

Pen.Style:=psDot;

Pen.Color:=Colorbox2.Selected;;

Font.Color:=Colorbox3.Selected;

if checkbox3.checked=true then

begin

TextOut(a2-10,y0-15,'X');

TextOut(x0+5,b1+5,'Y');

TextOut(x0+5,y0-18,'0');

end;

x:=xmin;

repeat

Xe:=round(mx*(x-xmin)+a1);

if Checkbox1.Checked=true then

begin

MoveTo(xe,b1);LineTo(xe,b2);

end;

if checkbox3.checked=true then

begin

if x<>0 then textOut(xe-5,y0+5,FloatToStr(x));

end;

x:=x+dx;

until(x>xmax);

y:=ymin;

repeat

Ye:=round(my*(-y+ymax)+b1);

if Checkbox1.Checked=true then

begin

MoveTo(a1,ye);LineTo(a2,ye);

end;

if checkbox3.checked=true then

begin

if y<>0 then textOut(x0-20,ye-5,FloatToStr(y));

end;

y:=y+dy;

until(y>ymax);

Font.Color:=clBlack;

If Checkbox2.Checked=true then

begin

Pen.Width:=2;

Pen.Color:=Colorbox1.Selected;;

Pen.Style:=psSolid;

MoveTo(a1,y0); LineTo(a2,y0);

MoveTo(x0,b1); LineTo(x0,b2);

end;

If v=1 then

begin

X1:=yC-yA;Y1:=xA-xC;

Z1:=xA*yC-xC*yA;

X2:=yD-yB;Y2:=xB-xD;

Z2:=xB*yD-xD*yB;

D:=X1*Y2-Y1*X2;

If D<>0 then

begin

xO:=(Z1*Y2-Y1*Z2)/D;

yO:=(X1*Z2-Z1*X2)/D;

OB:=sqrt(sqr(xO-xB)+sqr(yO-yB));

OD:=sqrt(sqr(xO-xD)+sqr(yO-yD));

BD:=sqrt(sqr(xB-xD)+sqr(yB-yD));

OBP:=round(OB*(100/BD));

ODP:=100-OBP;

label5.Caption:='OB='+FloatToStrF(OB,fffixed,4,2)+' '+IntToStr(OBP)+'%'+#13

+'OD='+FloatToStrF(OD,fffixed,4,2)+' '+intToStr(ODP)+'%';

Font.Color:=clRed;

textOut(ekrX(xO)+6,ekrY(yO)-6,'O');

end

else

begin

label5.Caption:='';

ShowMessage('Исправте координаты точек');

end;

Case Combobox1.ItemIndex of

0:w:=1;

1:w:=2;

end;

Pen.Width:=w;

Pen.Style:=psSolid;

Pen.Color:=Colorbox4.Selected;

MoveTo(ekrX(xa),ekrY(ya));

LineTo(ekrX(xb),ekrY(yb));

LineTo(ekrX(xc),ekrY(yc));

LineTo(ekrX(xd),ekrY(yd));

LineTo(ekrX(xa),ekrY(ya));

Pen.Width:=1;Pen.Style:=psDot;

LineTo(ekrX(xc),ekrY(yc));

MoveTo(ekrX(xb),ekrY(yb));

LineTo(ekrX(xd),ekrY(yd));

Font.Color:=clRed;

textOut(ekrX(xA)+6,ekrY(yA)+1,'A');

textOut(ekrX(xB)+6,ekrY(yB)+1,'B');

textOut(ekrX(xC)+6,ekrY(yC)+1,'C');

Страницы: 1, 2, 3, 4



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.