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

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

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

 
 Ответить  Открыть новую тему 
> Программа про окна, Плизз ХЕЛП!!
--==KliM==--
сообщение 24.05.2006 16:11
Сообщение #1





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

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


Составить программу, получающую информацию о двух окнах (координаты верхнего левого угла, ширину и высоту. nea.gif

Заранее спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.05.2006 16:21
Сообщение #2


Гость






--==KliM==--,
о каких окнах речь? Если о текстовых (созданных с помощью модуля CRT), то WindMin содержит координаты верхнего левого, а WindMax - координаты нижнего правого угла...
НО... В каждый момент времени только одно окно может быть активным, следовательно, работать с двумя окнами сразу, используя ЭТИ переменные, нельзя...

Если же речь об окнах графических (созданных с помощью процедур/функций модуля Graph), то там все зависит от реализации окон.
 К началу страницы 
+ Ответить 
--==KliM==--
сообщение 24.05.2006 16:27
Сообщение #3





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

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


Цитата(volvo @ 24.05.2006 18:21) *

--==KliM==--,
о каких окнах речь? Если о текстовых (созданных с помощью модуля CRT), то WindMin содержит координаты верхнего левого, а WindMax - координаты нижнего правого угла...
НО... В каждый момент времени только одно окно может быть активным, следовательно, работать с двумя окнами сразу, используя ЭТИ переменные, нельзя...

Если же речь об окнах графических (созданных с помощью процедур/функций модуля Graph), то там все зависит от реализации окон.


Я в этом ничо не понимаю! blink.gif Забыд дописать что надо еще ответить на вопрос пересекаются ли они!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.05.2006 16:42
Сообщение #4


Гость






Вот сначала выясни, потом будешь спрашивать... А то устроили тут "принеси то, не знаю что"...
 К началу страницы 
+ Ответить 
APAL
сообщение 24.05.2006 16:43
Сообщение #5


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


"получающую информацию" - видимо от пользователя задаются координаты, а в результате нужно выдать пересекаются они или нет.

Так?


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
--==KliM==--
сообщение 24.05.2006 17:32
Сообщение #6





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

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


Цитата(APAL @ 24.05.2006 17:43) *

"получающую информацию" - видимо от пользователя задаются координаты, а в результате нужно выдать пересекаются они или нет.

Так?


Скорее всего ДА. Если знаешь напиши хоть чонить, а то экзамены скора!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
APAL
сообщение 24.05.2006 17:52
Сообщение #7


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


Вот тебе функция:

Function InWin(x0,y0,xW,yH,xi,yi : byte) : Boolean;
Begin
If ((xi>=x0) and (xi<=(x0+xW-1))) and ((yi>=y0) and (yi<=(y0+yH-1))) then InWin:=True else InWin:=False;
End;


А дальше попробуй додумать как ее использовать.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
--==KliM==--
сообщение 24.05.2006 20:12
Сообщение #8





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

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


А полностью написать не можешь, а? Хотя и за это большое спасибо good.gif может как нибудь додумаюсь. nea.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
APAL
сообщение 25.05.2006 20:14
Сообщение #9


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


Код
Flag:=False;
For i:=x1 to x1+xW1-1 do Flag:=Flag or (InWin(x2,y2,xW2,yH2,i,y1) or InWin(x2,y2,xW2,yH2,i,y1+yH1-1));
For i:=y1 to y1+xW1-1 do Flag:=Flag or (InWin(x2,y2,xW2,yH2,x1,i) or InWin(x2,y2,xW2,yH2,x1+xW1-1,i));


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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