Помощь - Поиск - Пользователи - Календарь
Полная версия: Работа с графикой,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. Необходимо что бы анимация,достигнув конца окна,возвратилась в начальное положение и опять выполнила цикл и т.д,до нажатия клавищи.
вот мой код :

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