Помощь - Поиск - Пользователи - Календарь
Полная версия: Программа про окна
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
--==KliM==--
Составить программу, получающую информацию о двух окнах (координаты верхнего левого угла, ширину и высоту. nea.gif

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

Если же речь об окнах графических (созданных с помощью процедур/функций модуля Graph), то там все зависит от реализации окон.
--==KliM==--
Цитата(volvo @ 24.05.2006 18:21) *

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

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


Я в этом ничо не понимаю! blink.gif Забыд дописать что надо еще ответить на вопрос пересекаются ли они!
volvo
Вот сначала выясни, потом будешь спрашивать... А то устроили тут "принеси то, не знаю что"...
APAL
"получающую информацию" - видимо от пользователя задаются координаты, а в результате нужно выдать пересекаются они или нет.

Так?
--==KliM==--
Цитата(APAL @ 24.05.2006 17:43) *

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

Так?


Скорее всего ДА. Если знаешь напиши хоть чонить, а то экзамены скора!
APAL
Вот тебе функция:

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;


А дальше попробуй додумать как ее использовать.
--==KliM==--
А полностью написать не можешь, а? Хотя и за это большое спасибо good.gif может как нибудь додумаюсь. nea.gif
APAL
Код
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));
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.