Помощь - Поиск - Пользователи - Календарь
Полная версия: Работа с графикой,putimage и т.д
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Andrewshkovskii
Задание такое,надо фигуру сдублировать n раз..но проблема в другом.
Есле у тебя на мониторе в одно строку помешается макс. 6 изображений,то надо перейти на следующую,какраз это у меня не выходит,помогите,в чем проблема?
Вот листинг :
Program Figyri2;
uses crt,graph;
var
i,x,y,size,n,gd,gm:integer;
c:string;
pr:pointer;
begin
gd:=0;
initgraph(gd,gm,'D:\pascal\tp7\bgi');
cleardevice;
arc(50,80,210,150,40);
line(50,80,17,60);
line(50,80,17,100);
setfillstyle(1,yellow);
floodfill(53,80,white);
setcolor(blue);
circle(50,55,10);
setfillstyle(1,blue);
floodfill(50,55,blue);
outtextxy(5,5,'Skolko figyr sdyblirovat ot 1 do 9?');
writeln;
readln(n);
if n>9 then
n:=9;
str(n,c);
outtextxy(350,5,c);
size:=imagesize(10,20,120,120);
Getmem(pr,size);
GetImage(10,20,120,120,pr^);
x:=110;
y:=20;
for i:=1 to n-1 do
begin
putimage(x,y,pr^,NormalPut);
x:=x+110;
if i=6 then
y:=150;
x:=0;
end;
readkey;
end.
volvo
Поменяй свой фрагмент вот на этот:

...
x:=110; y:=20;
for i:=1 to n-1 do begin
if x + 110 > getmaxx then begin { <--- Вот тут проверяешь, поместится ли ... }
{ Если НЕ поместится, то переходим ниже }
inc(y, 150);
x := 0;
end;

putimage(x,y,pr^,NormalPut);
x:=x+110;
end;
...
Andrewshkovskii
спасибо!теперь новая проблема,ешё 1 пунк программы,анимация.
Не могу нормально реализовать следующее :
1.Необходимо что бы анмация началалась с нажатия клавищи и заканчивалась ею же (тут видимо что-то с repeat и keypressed?)
2. Необходимо что бы анимация,достигнув конца окна,возвратилась в начальное положение и опять выполнила цикл и т.д,до нажатия клавищи.
вот мой код :

Проблема решена полностью!=)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.