Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
12 / 12 / 5
Регистрация: 08.04.2009
Сообщений: 879
1

ABCobjects

22.02.2013, 16:23. Показов 2975. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всегда когда пишу программу с использованием модуля abcobjects о паскаль выдаёт кучу ошибок, таких как: "параметр задан не верно", "неверный номер рисунка при выполнении SetDraw Surface", "выход за границы диапазона в objectdynarray.get", и иногда даже "Ошибка в функции таймера: для объекта ещё не был вызван конструктор" хотя запуск всех таймеров идёт после всех конструкторов, после долгих попыток запусков (примерно 5-20) программу запускается и всё ок. Пример программы:
Pascal
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
uses graphabc,abcobjects,events,timers;
var t,a,b,c,i,xx,yy,v1s,v2s,v3s,v4s,v5s,v6s,v7s,v8s,v9s,v10s:integer;d,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10:rectangleabc;
procedure onm(x,y,q:integer);
begin
xx:=x;
end;
procedure f;
begin
if d.left<xx then d.left:=d.left+round((xx-d.left)/10);
if d.left>xx then d.left:=d.left-round((d.left-xx)/10);
v1.top:=v1.top+v1s;
v2.top:=v2.top+v2s;
v3.top:=v3.top+v3s;
v4.top:=v4.top+v4s;
v5.top:=v5.top+v5s;
v6.top:=v6.top+v6s;
v7.top:=v7.top+v7s;
v8.top:=v8.top+v8s;
v9.top:=v9.top+v9s;
v10.top:=v10.top+v10s;
if v1.top>windowheight+10 then begin v1.top:=random(460)*(-1)-40;v1.left:=random(380);v1s:=5+random(3);end;
if v2.top>windowheight+10 then begin v2.top:=random(460)*(-1)-40;v2.left:=random(380);v2s:=5+random(3);end;
if v3.top>windowheight+10 then begin v3.top:=random(460)*(-1)-40;v3.left:=random(380);v3s:=5+random(3);end;
if v4.top>windowheight+10 then begin v4.top:=random(460)*(-1)-40;v4.left:=random(380);v4s:=5+random(3);end;
if v5.top>windowheight+10 then begin v5.top:=random(460)*(-1)-40;v5.left:=random(380);v5s:=5+random(3);end;
if v6.top>windowheight+10 then begin v6.top:=random(460)*(-1)-40;v6.left:=random(380);v6s:=5+random(3);end;
if v7.top>windowheight+10 then begin v7.top:=random(460)*(-1)-40;v7.left:=random(380);v7s:=5+random(3);end;
if v8.top>windowheight+10 then begin v8.top:=random(460)*(-1)-40;v8.left:=random(380);v8s:=5+random(3);end;
if v9.top>windowheight+10 then begin v9.top:=random(460)*(-1)-40;v9.left:=random(380);v9s:=5+random(3);end;
if v10.top>windowheight+10 then begin v10.top:=random(460)*(-1)-40;v10.left:=random(380);v10s:=5+random(3);end;
end;
begin
setwindowsize(400,500);
setwindowpos(200,20);
d:=createrectangleabc(190,450,20,30,clblack);
xx:=190;
v1s:=5+random(3);v2s:=5+random(3);v3s:=5+random(3);v4s:=5+random(3);v5s:=5+random(3);v6s:=5+random(3);v7s:=5+random(3);v8s:=5+random(3);v9s:=5+random(3);v10s:=5+random(3);
v1:=createrectangleabc(random(380),random(460)*(-1)-30,20,30,rgb(156,83,50+random(30)));
v2:=createrectangleabc(random(380),random(460)*(-1)-30,20,30,rgb(156,83,50+random(30)));
v3:=createrectangleabc(random(380),random(460)*(-1)-30,20,30,rgb(156,83,50+random(30)));
v4:=createrectangleabc(random(380),random(460)*(-1)-30,20,30,rgb(156,83,50+random(30)));
v5:=createrectangleabc(random(380),random(460)*(-1)-30,20,30,rgb(156,83,50+random(30)));
v6:=createrectangleabc(random(380),random(460)*(-1)-30,20,30,rgb(156,83,50+random(30)));
v7:=createrectangleabc(random(380),random(460)*(-1)-30,20,30,rgb(156,83,50+random(30)));
v8:=createrectangleabc(random(380),random(460)*(-1)-30,20,30,rgb(156,83,50+random(30)));
v9:=createrectangleabc(random(380),random(460)*(-1)-30,20,30,rgb(156,83,50+random(30)));
v10:=createrectangleabc(random(380),random(460)*(-1)-30,20,30,rgb(156,83,50+random(30)));
 
t:=createtimer(30,f);
onmousemove:=onm;
end.
А на днях написал программу и никаких ошибок не выдаёт:
Pascal
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
uses graphabc,abcobjects,events,timers;
var a,b,c,i,t,t1,t2,s,p,xx,yy,sp,b2,t3,ku,vi1,vi2,vi3,vi4,vi5,vi6,vi7,vi8,vi9,vi10,bua:integer;r,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,b1:RectangleABC;te,te1,te2,te3,te4:textabc;p2:PictureABC;
procedure ond(x,y,q:integer);
begin
if (b=0) and (ku>0) then begin
ku:=ku-1;
b2:=0;
b1.left:=r.left;
if b1.intersect(v1) then v1.top:=windowheight+5;
if b1.intersect(v2) then v2.top:=windowheight+5;
if b1.intersect(v3) then v3.top:=windowheight+5;
if b1.intersect(v4) then v4.top:=windowheight+5;
if b1.intersect(v5) then v5.top:=windowheight+5;
if b1.intersect(v6) then v6.top:=windowheight+5;
if b1.intersect(v7) then v7.top:=windowheight+5;
if b1.intersect(v8) then v8.top:=windowheight+5;
if b1.intersect(v9) then v9.top:=windowheight+5;
if b1.intersect(v10) then v10.top:=windowheight+5;
end;
if (b=1) and (te1.top=215) then bua:=1;
end;
procedure f;
begin
if b1.left>0 then b1.left:=r.left;
if (b=1) and (bua=0) then begin te1.text:='Ваш счёт:'+inttostr(s);te1.top:=te1.top+round((220-te1.top)/10);te3.top:=te3.top+round((260-te3.top)/10);end;
if b=0 then
s:=s+1;
if xx>r.left then
r.left:=(r.left+round(((xx-r.left)/10)));
if xx<r.left then
r.left:=(r.left-round(((r.left-xx)/10)));
te.text:='Счёт:'+inttostr(s);
te2.text:='Готовых кибер зарядов:'+inttostr(ku);
if v1.top+5>windowheight then begin vi1:=0;v1.left:=random(450);v1.top:=-60-random(400);v1.color:=RGB(random(255),random(255),random(255));end;
if v2.top+5>windowheight then begin vi2:=0;v2.left:=random(450);v2.top:=-60-random(400);v2.color:=RGB(random(255),random(255),random(255));end;
if v3.top+5>windowheight then begin vi3:=0;v3.left:=random(450);v3.top:=-60-random(400);v3.color:=RGB(random(255),random(255),random(255));end;
if v4.top+5>windowheight then begin vi4:=0;v4.left:=random(450);v4.top:=-60-random(400);v4.color:=RGB(random(255),random(255),random(255));end;
if v5.top+5>windowheight then begin vi5:=0;v5.left:=random(450);v5.top:=-60-random(400);v5.color:=RGB(random(255),random(255),random(255));end;
if v6.top+5>windowheight then begin vi6:=0;v6.left:=random(450);v6.top:=-60-random(400);v6.color:=RGB(random(255),random(255),random(255));end;
if v7.top+5>windowheight then begin vi7:=0;v7.left:=random(450);v7.top:=-60-random(400);v7.color:=RGB(random(255),random(255),random(255));end;
if v8.top+5>windowheight then begin vi8:=0;v8.left:=random(450);v8.top:=-60-random(400);v8.color:=RGB(random(255),random(255),random(255));end;
if v9.top+5>windowheight then begin vi9:=0;v9.left:=random(450);v9.top:=-60-random(400);v9.color:=RGB(random(255),random(255),random(255));end;
if v10.top+5>windowheight then begin vi10:=0;v10.left:=random(450);v10.top:=-60-random(400);v10.color:=RGB(random(255),random(255),random(255));end;
if (s mod 200 = 0) and (b=0) then sp:=sp+1;
if r.Intersect(v1) or r.Intersect(v2) or r.Intersect(v3) or r.Intersect(v4) or r.Intersect(v5) or r.Intersect(v6) or r.Intersect(v7) or r.Intersect(v8) or r.Intersect(v9) or r.Intersect(v10) then b:=1;
if b1.left>0 then b2:=b2+1;
if b2=3 then b1.left:=-25;
if (bua=1) and (s>0) then begin s:=s-50;if s<50 then s:=0;end;
if (bua=1) and (ku>0) then ku:=ku-1;
if p=10 then
te4.left:=-50 else p:=p+1;
if (v1.top>400) and (abs(r.left-v1.left)<=30) and (vi1=0) and (b=0) then begin vi1:=1;s:=s+50;p:=1;te4.left:=r.left;te4.top:=r.top-30;end;
if (v2.top>400) and (abs(r.left-v2.left)<=30) and (vi2=0) and (b=0) then begin vi2:=1;s:=s+50;p:=1;te4.left:=r.left;te4.top:=r.top-30;end;
if (v3.top>400) and (abs(r.left-v3.left)<=30) and (vi3=0) and (b=0) then begin vi3:=1;s:=s+50;p:=1;te4.left:=r.left;te4.top:=r.top-30;end;
if (v4.top>400) and (abs(r.left-v4.left)<=30) and (vi4=0) and (b=0) then begin vi4:=1;s:=s+50;p:=1;te4.left:=r.left;te4.top:=r.top-30;end;
if (v5.top>400) and (abs(r.left-v5.left)<=30) and (vi5=0) and (b=0) then begin vi5:=1;s:=s+50;p:=1;te4.left:=r.left;te4.top:=r.top-30;end;
if (v6.top>400) and (abs(r.left-v6.left)<=30) and (vi6=0) and (b=0) then begin vi6:=1;s:=s+50;p:=1;te4.left:=r.left;te4.top:=r.top-30;end;
if (v7.top>400) and (abs(r.left-v7.left)<=30) and (vi7=0) and (b=0) then begin vi7:=1;s:=s+50;p:=1;te4.left:=r.left;te4.top:=r.top-30;end;
if (v8.top>400) and (abs(r.left-v8.left)<=30) and (vi8=0) and (b=0) then begin vi8:=1;s:=s+50;p:=1;te4.left:=r.left;te4.top:=r.top-30;end;
if (v9.top>400) and (abs(r.left-v9.left)<=30) and (vi9=0) and (b=0) then begin vi9:=1;s:=s+50;p:=1;te4.left:=r.left;te4.top:=r.top-30;end;
if (v10.top>400) and (abs(r.left-v10.left)<=30) and (vi10=0) and (b=0) then begin vi10:=1;s:=s+50;p:=1;te4.left:=r.left;te4.top:=r.top-30;end;
end;
procedure onm(x,y,q:integer);
begin
if (b=0) or (b=1) and (bua=1) then
xx:=x else xx:=r.left;
end;
procedure f2;
begin
if bua=0 then begin
v1.top:=v1.top+10+sp;
v2.top:=v2.top+10+sp;
v3.top:=v3.top+10+sp;
v4.top:=v4.top+10+sp;
v5.top:=v5.top+10+sp;
v6.top:=v6.top+10+sp;
v7.top:=v7.top+10+sp;
v8.top:=v8.top+10+sp;
v9.top:=v9.top+10+sp;
v10.top:=v10.top+10+sp;
end else begin
if v1.top+25>0 then v1.top:=v1.top+10+sp;
if v2.top+25>0 then v2.top:=v2.top+10+sp;
if v3.top+25>0 then v3.top:=v3.top+10+sp;
if v4.top+25>0 then v4.top:=v4.top+10+sp;
if v5.top+25>0 then v5.top:=v5.top+10+sp;
if v6.top+25>0 then v6.top:=v6.top+10+sp;
if v7.top+25>0 then v7.top:=v7.top+10+sp;
if v8.top+25>0 then v8.top:=v8.top+10+sp;
if v9.top+25>0 then v9.top:=v9.top+10+sp;
if v10.top+25>0 then v10.top:=v10.top+10+sp;
end;
if (bua=1) and (v1.top+25<0) and (v2.top+25<0) and (v3.top+25<0) and (v4.top+25<0) and (v5.top+25<0) and (v6.top+25<0) and (v7.top+25<0) and (v8.top+25<0) and (v9.top+25<0) and (v10.top+25<0) then begin te1.top:=te1.top-round((te1.top-(-100))/10);te3.top:=te3.top-round((te3.top-(-60))/10);r.top:=r.top-round((r.top-(windowheight-75))/10);end;
if (bua=1) and (v1.top+25<0) and (v2.top+25<0) and (v3.top+25<0) and (v4.top+25<0) and (v5.top+25<0) and (v6.top+25<0) and (v7.top+25<0) and (v8.top+25<0) and (v9.top+25<0) and (v10.top+25<0) and (te1.top=-95) and (r.top=405) then begin bua:=0;b:=0;sp:=0;ku:=0;s:=0;end;
if (b=1) and (r.top-20<windowheight) and (bua=0) then r.top:=r.top+10+sp;
end;
procedure k;
begin
if b=0 then
ku:=ku+1;
end;
begin
setwindowsize(450,475);
xx:=220;
te:=CreatetextABC(1,1,10,clblack,'Ваш счёт: 0');
te2:=CreatetextABC(1,15,10,clblack,'Готовых кибер зарядов: 0');
r:=CreateRectangleABC(220,405,20,35,RGB(random(255),random(255),random(255)));
v1:=CreateRectangleABC(random(450),-30-random(400),20,35,RGB(random(255),random(255),random(255)));
v2:=CreateRectangleABC(random(450),-30-random(400),20,35,RGB(random(255),random(255),random(255)));
v3:=CreateRectangleABC(random(450),-30-random(400),20,35,RGB(random(255),random(255),random(255)));
v4:=CreateRectangleABC(random(450),-30-random(400),20,35,RGB(random(255),random(255),random(255)));
v5:=CreateRectangleABC(random(450),-30-random(400),20,35,RGB(random(255),random(255),random(255)));
v6:=CreateRectangleABC(random(450),-30-random(400),20,35,RGB(random(255),random(255),random(255)));
v7:=CreateRectangleABC(random(450),-30-random(400),20,35,RGB(random(255),random(255),random(255)));
v8:=CreateRectangleABC(random(450),-30-random(400),20,35,RGB(random(255),random(255),random(255)));
v9:=CreateRectangleABC(random(450),-30-random(400),20,35,RGB(random(255),random(255),random(255)));
v10:=CreateRectangleABC(random(450),-30-random(400),20,35,RGB(random(255),random(255),random(255)));
b1:=CreateRectangleABC(-25,-400,20,805,clyellow);
te4:=CreatetextABC(-50,0,12,clgreen,'+50');
te3:=CreatetextABC(110,-55,15,clred,'Кликните для продолжения.');
te1:=CreatetextABC(110,-95,30,clred,'Ваш счёт:');
 
t:=CreateTimer(10,f);
t2:=CreateTimer(20,f2);
t3:=CreateTimer(3000,k);
onmousemove:=onm;
onmousedown:=ond;
end.
Почему?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2013, 16:23
Ответы с готовыми решениями:

Из за подключения ABCObjects не стираются буквы
Помогите пожалуста отредактировать задачу!! из за подключения ABCObjects, не могу стирать буквы,...

Как написать хорошее приложение на ABCObjects?
Хочу написать крутой редактор на ABCObjects. Это возможно?

Независимое движение объектов. Модули ABCObjects, Events, Timers
Здравствуйте форумчане, пишу игрушку на курсовую и возникла проблемка. Суть вот в чем: лягушка...

ABCobjects
Есть программа,её нужно сделать с использованием типа данных ''объект''. Я кое-что...

0
22.02.2013, 16:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2013, 16:23
Помогаю со студенческими работами здесь

и ABCObjects: графическое окно
как сделать так,что бы нельзя было увеличить графическое окно? заранее спасибо)

и ABCObjects: Движение объекта
Написал игру, {$apptype windows} {$resource Missile.png} {$resource метеорит.png} {$resource...

WPFObjects - аналог ABCObjects?
Почему пишут, что WPFObjects - аналог ABCObjects? Куда делся Container? Может кто-нибудь ответить?

Пересечение объектов в ABCObjects
Есть какие-нибудь процедуры, которые в ABCObjects проверяют пересекаются ли объекты друг с другом?


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

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