0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 4
1

Не могу разобраться в программе в делфи.

16.03.2011, 15:36. Показов 859. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! У меня курсовая через две недели по программированию, программку в делфи скинула,а разобраться как оно там всё работает никак не могу.))) Можете мне написать что там что означает? Пожалуйста.

Вот код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
unit Unit2;
interface
uses
sysutils, Windows,Classes,ExtCtrls,Graphics,Forms,Controls, Messages,Dialogs;
type
  visu_entree = class(tpanel)
  public
    nom: string;
    ox: integer;
    oy: integer;
    procedure Panel1Mousedown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    constructor create(AOwner: TComponent);override;
  end;
  ennemi = class(tpanel)
  public
    directiony: integer;
    directionx: integer;
    decx: integer;
    decy: integer;
    function gettouch(tutu: visu_entree): boolean;
    procedure bouge(AOwner: TComponent; deca: integer);
    constructor create(AOwner: TComponent); override;
 
      end;
  TForm2 = class(TForm)
    Timer1: TTimer;
    procedure init;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  end;
var
  Form2: TForm2;
  r: visu_entree;
  e1, e2, e3 : ennemi;
  decc,temps: integer;
implementation
{$R *.dfm}
constructor ennemi.Create(AOwner: TComponent);
begin
  inherited create(aowner);
  directiony := -1;directionx := -1;
  height := 60; width := 60;
  color := clred;
end;
 
procedure ennemi.bouge(AOwner: TComponent; deca: integer);
begin
 if (top <= 0) or ((top + Height) >= tform(self.Owner).height - 30) then
    directiony := directiony * -1;
  top := top + deca * decy * directiony;
  if (left <= 0) or ((left + width) >= tform(self.owner).width - 30) then
    directionx := directionx * -1;
  left := left + deca * decx * directionx;
 
end;
 
constructor visu_entree.Create(AOwner: TComponent);
begin
  inherited create(aowner);
  height := 40; width := 40;
  color := clblue;
  onmousemove := Panel1MouseMove;
  onmousedown := Panel1Mousedown;
end;
 
procedure visu_entree.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if shift = [ssLeft] then
    begin
      if (top + y - oy > 0) and (top + height + y < tform(self.owner).Height - 5) then
        Top := top + y - oy;
      if (left + x - ox > 0) and (left + width - ox + x < tform(self.owner).width - 5) then
        left := left + x - ox;
    end;
end;
 
procedure visu_entree.Panel1Mousedown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ox := x;
  oy := y;
end;
 
procedure TForm2.FormCreate(Sender: TObject);
begin
  form2.DoubleBuffered := true;
  init;
end;
 
function ennemi.gettouch(tutu: visu_entree): boolean;
begin
result := (((top + Height >= tutu.Top) and (top < tutu.top)) or ((top <= tutu.Top + tutu.Height) and (top > tutu.Top)))
            and
            (((left + width >= tutu.left) and (left < tutu.left)) or ((left <= tutu.left + tutu.width) and (left > tutu.left)));
 
end;
 
procedure TForm2.Timer1Timer(Sender: TObject);
begin
  begin
  inc(temps, 1);
 
  e1.bouge(self, decc);  e2.bouge(self, decc);  e3.bouge(self, decc);
 
  caption := format('Score : %d',[temps]);
  if (e1.gettouch(r)) or (e2.gettouch(r)) or (e3.gettouch(r)) then begin
      timer1.Enabled := false;
      showmessage(format('Score : %d',[temps]));
      if application.messagebox('Voulez vous recommencer ?', 'Dodge', MB_OKCANCEL) = 1 then begin
          init;
          timer1.Enabled := true;
      end;
  end;
 
  if temps = 500 then inc(decc, 1);
  if temps = 1050 then begin
      inc(e1.decx, 1); dec(e1.decy, 1);
      inc(e2.decx, 1); dec(e3.decy, 1);
  end;
  if (temps = 2500) or (temps = 1500) then begin
      inc(decc, 1);
      e1.directiony := e1.directiony * -1;     e2.directionx := e2.directionx * -1;
      e3.directiony := e3.directiony * -1;     e3.directionx := e3.directionx * -1;
  end;
  if temps = 2000 then begin
      dec(e1.decx, 1);  inc(e1.decy, 1);
      inc(e2.decy, 1);  inc(e3.decy, 1);
  end;
         end;
end;
 
procedure TForm2.init;
begin
 if not assigned(r) then begin
     r := visu_entree.create(self);
     r.parent := self;
  end;
 
  if not assigned(e1) then begin
     e1 := ennemi.create(self);
     e1.parent := self;
  end;
 
  if not assigned(e2) then begin
     e2 := ennemi.create(self);
     e2.parent := self;
  end;
 
  if not assigned(e3) then begin
     e3 := ennemi.create(self);
     e3.parent := self;
     end;
  temps := 0; decc := 1;
  e1.top := 10; e1.left := 10;
  e1.decx := 2; e1.decy := 2;
  e2.Top := 300; e2.left := 15;
  e2.Height := 90; e2.width := 50;
  e2.directiony := 1; e2.directionx := -1;
  e2.decx := 2; e2.decy := 2;
  e3.Top := 250; e3.left := 450;
  e3.directiony := 1; e3.directionx := 1;
  e3.decx := 2; e3.decy := 2;
  r.left := form2.width div 2; r.top := form2.Height div 2;
end;
end.
 Комментарий модератора 
Код следует обрамлять соответствующими тегами. - Это требование правил форума. Для оформления кода Delphi следует выделить код и на панели редактирования сообщения нажать кнопку "DELPHI".
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2011, 15:36
Ответы с готовыми решениями:

Задали работу, не могу разобраться. Используется делфи 10, не могу разобраться, как это сделать
В одномерном массиве, состоящем из n вещественных элементов, вычислить: минимальный элемент массива...

Не могу разобраться с графиком в Делфи
Года два назад писал прогу для моделирования колебаний, но не дописал в силу обстоятельств. Теперь...

Не могу разобраться с Combobox в Делфи, курсач горит!
Вот такая проблема: Мне дали курсовую, на тему «Разработка автоматизированной подсистемы учета и...

Не могу разобраться в программе
помогите пожалуйста разобраться во всем этом. точнее в процедуре Sort. как она работает

7
4 / 4 / 0
Регистрация: 29.12.2008
Сообщений: 35
16.03.2011, 16:08 2
как программа называется на какую тему???? тяжело было написать?
0
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 4
16.03.2011, 16:16  [ТС] 3
я её скинула с интернета. там на форме один синий квадратик и три красных. синий берётся мышкой и надо его уводить от красных которые движутся вроде как хаотично. Вот.
0
4 / 4 / 0
Регистрация: 29.12.2008
Сообщений: 35
16.03.2011, 16:18 4
Цитата Сообщение от Юлия)) Посмотреть сообщение
я её скинула с интернета. там на форме один синий квадратик и три красных. синий берётся мышкой и надо его уводить от красных которые движутся вроде как хаотично. Вот.
если даже и опишут что все делает, всеравно не поймешь!!!! в такой работе нужно самой делать!
0
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 4
16.03.2011, 16:20  [ТС] 5
да мне бы чисто процедуры функции...операторы там какие нибудь что обозначают.((( у меня делфи месяц было всего.((((
0
5705 / 2296 / 466
Регистрация: 20.11.2009
Сообщений: 7,720
Записей в блоге: 1
16.03.2011, 16:41 6
Цитата Сообщение от Юлия)) Посмотреть сообщение
а разобраться как оно там всё работает никак не могу.))) Можете мне написать что там что означает? Пожалуйста.

Ну короче работает все так вот, компилятор переводит все на достурный процессору язык, и процессор уже обрабатывает все это и возвращает нам результаты своей работы!!!

З.Ы. Если ты не разбираешься в дельфи вообше, сейчас на таких примерах объяснять - ничего не даст, нужно хотябы основы какие-то знать чтоли !!!
1
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 4
16.03.2011, 17:31  [ТС] 7
да я знаю основы...вот я не знаю что такое конструктор там и ещё много чего...
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
17.03.2011, 10:19 8
Юлия)), ну запусти отладчик в программе и все сразу станет ясно что там и как
0
17.03.2011, 10:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.03.2011, 10:19
Помогаю со студенческими работами здесь

Не могу разобраться в программе
Задача прог-мы заключается в следующем: пользователь вводит фио студента, выбирает группу(или...

Не могу разобраться в программе
var xn,xk,dx,b,c:real; k:integer; function f(x:real):real; begin f:=sin(x); end; ...

не могу разобраться в программе
Здравствуйте! Программа сортирует методом пузырька числа с плавающей точкой,которые находятся в...

Не могу разобраться с ошибкой в программе
Задача: Секретное агентство «Super-Secret-no» решило для шифрования переписки своих сотрудников...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru