Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2008, 16:33   #1
Kold
Новичок
Джуниор
 
Регистрация: 28.11.2008
Сообщений: 2
Стрелка Помогите пожалуйста с задачкой

Помогите пожалуйста с задачкой. Здать нужно вот уже а я все никак не могу сделать.Пожалуйста!!!
Задача состоит в том чтобы создать какой нибудь объект (например квадрат) и чтоб его можно было перемещать по экрану стрелками с клавиатуры.
вот что начередил я (ну не уверен что тут правильно)
Код:

Unit GraphApp; Interface
Uses GraphObj;
const                                                                         
NPoints = 100;
type

TGraphApp = object
Points: array [1..NPoints] of TPoint; 
Line: TLine;                      
Rect: TRect;                                                     
Circ: TCircle;                                                 
ActiveObj: Integer; 
Procedure Init;
 Procedure Run;
 Procedure Done;






procedure  ShowAll;
procedure MoveActiveObj (dX,dY:  Integer);
end; implementation
uses Graph,CRT;
procedure TGraphApp. Init ;
var
D,R,Err,k:   Integer;
begin

D := Detect;                     
 InitGraph(D,R, '\tp\bgi') ;

  
Err:= GraphResult;       
if ErroO then begin
GraphErrorMsg (Err); Halt end; 
 for k:=1 to NPoints do
Points [k] .Init (Random(GetMaxX),Random(GetMaxY),Random(15)+1) ;

Line. Init (GetMaxX div 3, GetMaxY div 3,2*GetMaxX div 3,
2*GetMaxY div 3,LightRed);
Circ. Init (GetMaxX div 2,GetMaxY div 2,GetMaxY div 5, White) ;
Rect.Init(2*GetMaxX div 5,2*GetMaxY div 5,3*GetMaxX div 5,
3*GetMaxY div 5,Yellow);
ShowAll;                              
ActiveObj   := 1                 
      { TGraphApp .Init}
Procedure TGraphApp. Run ;
var
Stop: Boolean;                                          
const
d=5;   







begin
stop:=  False; 
repeat                               
case ReadKey or                                 
#27: Stop := True;                             
#9: begin
inc(ActiveObj); 
if Active0bj>3 then ActiveObj:= 3 end;
 #0: case ReadKey of
#71: MoveActiveObj(-D,-D);  
#72: MoveActiveObj ( 0,-D); 
 #73: MoveActiveObj ( D,-D); 
 #75: MoveActiveObj (-D, 0); 
 #77: MoveActiveObj ( D, 0); 
 #79: MoveActiveObj (-D, D) ; 
 #80: MoveActiveObj ( 0, D) ; 
 #81: MoveActiveObj ( D, D) ; 
 end
 end; 
ShowAll;
 Until Stop
 end;   

Destructor TGraphApp.Done;
 begin
CloseGraph
end;   
Procedure TGraphApp.ShowAll;
var                                                                    
k: Integer; begin
for k:=1 to Npoints do Points [k].Show;
line.show;
Rect.Show; Cire.Show 
end;

Procedur. TGraphApp.MoveActiveObj;   case ActiveObj of







1:   Rect. Move To (dX, dY) ;
2:   Circ.MoveTo(dX,dY);   
3:   Line.MoveTo(dX,dY)
end
 end; 
end.
Сначало показалось легко на деле ничего не получается.

Последний раз редактировалось Alex21; 29.11.2008 в 13:16.
Kold вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пожалуйста помогите с задачкой на строки kiko Паскаль, Turbo Pascal, PascalABC.NET 3 27.11.2008 18:58
Помогите с задачкой, пожалуйста! korteas Помощь студентам 6 09.10.2007 12:10
Помогите пожалуйста с задачкой Antowka Помощь студентам 1 13.06.2007 13:41