Составить программу, получающую информацию о двух окнах (координаты верхнего левого угла, ширину и высоту.
Заранее спасибо
volvo
24.05.2006 20:21
--==KliM==--, о каких окнах речь? Если о текстовых (созданных с помощью модуля CRT), то WindMin содержит координаты верхнего левого, а WindMax - координаты нижнего правого угла... НО... В каждый момент времени только одно окно может быть активным, следовательно, работать с двумя окнами сразу, используя ЭТИ переменные, нельзя...
Если же речь об окнах графических (созданных с помощью процедур/функций модуля Graph), то там все зависит от реализации окон.
--==KliM==--
24.05.2006 20:27
Цитата(volvo @ 24.05.2006 18:21)
--==KliM==--, о каких окнах речь? Если о текстовых (созданных с помощью модуля CRT), то WindMin содержит координаты верхнего левого, а WindMax - координаты нижнего правого угла... НО... В каждый момент времени только одно окно может быть активным, следовательно, работать с двумя окнами сразу, используя ЭТИ переменные, нельзя...
Если же речь об окнах графических (созданных с помощью процедур/функций модуля Graph), то там все зависит от реализации окон.
Я в этом ничо не понимаю! Забыд дописать что надо еще ответить на вопрос пересекаются ли они!
volvo
24.05.2006 20:42
Вот сначала выясни, потом будешь спрашивать... А то устроили тут "принеси то, не знаю что"...
APAL
24.05.2006 20:43
"получающую информацию" - видимо от пользователя задаются координаты, а в результате нужно выдать пересекаются они или нет.
Так?
--==KliM==--
24.05.2006 21:32
Цитата(APAL @ 24.05.2006 17:43)
"получающую информацию" - видимо от пользователя задаются координаты, а в результате нужно выдать пересекаются они или нет.
Так?
Скорее всего ДА. Если знаешь напиши хоть чонить, а то экзамены скора!
APAL
24.05.2006 21:52
Вот тебе функция:
Function InWin(x0,y0,xW,yH,xi,yi : byte) : Boolean;
BeginIf ((xi>=x0) and (xi<=(x0+xW-1))) and ((yi>=y0) and (yi<=(y0+yH-1))) then InWin:=True else InWin:=False;
End;
А дальше попробуй додумать как ее использовать.
--==KliM==--
25.05.2006 0:12
А полностью написать не можешь, а? Хотя и за это большое спасибо может как нибудь додумаюсь.
APAL
26.05.2006 0:14
Код
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));
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.