![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 04.02.2011
Сообщений: 75
|
![]()
Здравствуйте всем.Пишу программу,в которой должно осуществляться колебательное движение букв латинского алфавита I H T. Почему не происходит передача в unit массивов а b с типа tpoint(координаты посчитаны мной,в процедуре draw происходит рисование)?Вот текст программы:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) img1: TImage; btn1: TButton; btn2: TButton; procedure form1activate(sender:tobject); procedure btn1Click(Sender: TObject); procedure btn2Click(Sender: TObject); end; var Form1: TForm1; implementation uses unit2; type mas1=array [1..5] of tpoint; var I:tI; T:tT; H:tH; moving:boolean=true; p:single=0.0; q:single=2.0; r:single=3.0; a: mas1=((X:60;y:150),(x:80;y:150),(x: 100;y:150), (x:60;Y:100),(x:100;y:100)); b: mas1=((X:100;y:150),(x:180;y:150),( x:200;y:150), (x:0;Y:0),(x:0;y:0)); c: mas1=((X:300;y:120),(x:300;y:80),(x :350;y:120), (x:350;Y:100),(x:350;y:80)); {$R *.dfm} procedure tform1.form1activate; begin img1.Canvas.Brush.Color:=clwhite; end; procedure TForm1.btn1Click(Sender: TObject); begin close; end; procedure TForm1.btn2Click(Sender: TObject); var cos1,cos2,cos3:extended; begin cos1:=3; cos2:=3.4; cos3:=9; i:=ti.create(80,100,a,5,cos1,img1); t:=tt.create(180,100,b,3,cos2,img1) ; h:=th.create(300,100,c,5,cos3,img1) ; repeat i.move(p); t.move(q); t.move(r); p:=p+0.001; q:=q+0.051; r:=r+0.077; application.processmessages; until not moving; end; initialization finalization i.Free; h.Free; t.Free; end. unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type mas2=array [1..5] of tpoint; tfigure=class xc,yc:integer; mast:mas2; kolt:integer; mast2:mas2; w:extended; image:timage; procedure draw;virtual;abstract; procedure rel(mast2:mas2);virtual; constructor create(x,y:integer;var a:mas2; akol:integer;aw:extended;aimage:tim age); procedure move(t:single); end; tI=class(tfigure) procedure draw;override; end; tT=class(tfigure) procedure draw;override; end; tH=class(tfigure) procedure draw;override; end; implementation constructor tfigure.create; var i:integer; begin xc:=x; yc:=y; kolt:=akol; for i:=1 to kolt do begin mast[i]:=a[i]; end; w:=aw; image:=aimage; end; procedure tfigure.rel; var i:integer; begin for i:=1 to kolt do begin mast2[i].X:=round((mast[i].x-xc)*cos(w)-yc*sin(w)+xc); mast2[i].Y:=round((mast[i].Y-yc)*cos(w)-(mast[i].X-xc)*sin(w+yc)); end; end; procedure tfigure.move; begin image.Canvas.Pen.Color:=clwhite; draw; image.Canvas.Pen.Color:=clblack; rel(mast); draw; end; procedure ti.draw; begin image.Canvas.MoveTo(mast[1].x,mast[1].y); image.Canvas.LineTo(mast[3].x,mast[3].y); image.Canvas.MoveTo(mast[4].x,mast[4].y); image.Canvas.LineTo(mast[5].x,mast[5].y); image.Canvas.MoveTo(80,100); image.Canvas.lineto(mast[2].x,mast[2].Y); end; procedure tt.draw; begin image.Canvas.MoveTo(mast[1].x,mast[1].y); image.Canvas.LineTo(mast[3].x,mast[3].y); image.Canvas.MoveTo(mast[2].x,mast[2].y); image.Canvas.LineTo(180,100); end; procedure th.draw; begin image.Canvas.MoveTo(mast[1].x,mast[1].y); image.Canvas.LineTo(mast[2].x,mast[2].y); image.Canvas.MoveTo(mast[3].x,mast[3].y); image.Canvas.LineTo(mast[5].x,mast[5].y); image.Canvas.LineTo(mast[4].x,mast[4].y); image.Canvas.MoveTo(300,100); end; end. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Классы с использованием полиморфизма | Patrool | Помощь студентам | 0 | 09.12.2010 00:35 |
Cоздании блока на CSS | alex774 | HTML и CSS | 1 | 18.01.2010 17:32 |
Принципы реализации полиморфизма | Nostalgia | Помощь студентам | 1 | 05.01.2010 11:49 |
Отслеживание движущихся объектов | Impuls1989 | Общие вопросы C/C++ | 2 | 29.06.2009 00:21 |
Особенности программированя движущихся объектов | DeKot | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 12 | 16.02.2009 08:22 |