IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Работа с графикой,putimage и т.д, проблема со вставкой по координатам.
Andrewshkovskii
сообщение 6.03.2007 16:40
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Задание такое,надо фигуру сдублировать 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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
volvo
сообщение 6.03.2007 17:04
Сообщение #2


Гость






Поменяй свой фрагмент вот на этот:

...
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
сообщение 6.03.2007 20:20
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


спасибо!теперь новая проблема,ешё 1 пунк программы,анимация.
Не могу нормально реализовать следующее :
1.Необходимо что бы анмация началалась с нажатия клавищи и заканчивалась ею же (тут видимо что-то с repeat и keypressed?)
2. Необходимо что бы анимация,достигнув конца окна,возвратилась в начальное положение и опять выполнила цикл и т.д,до нажатия клавищи.
вот мой код :

Проблема решена полностью!=)

Сообщение отредактировано: Andrewshkovskii - 6.03.2007 20:44
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 17:32
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"