М
Внимательно выбирай раздел в котором создаешь тему.
Перенесено из "Общие вопросы разработки программ"


..помогите кто обращался с этим..плиз
..тут такое дело...при наведении указателя мыши графический обьект должен поменять цвет
НО..всё работает с элипсом..а с кругом нет..ТОЧНЕЕ..работает..но почему то есть невидимая окружность...при наведении на которую тоже выделяется заданная область...
С прямой всё нормально!

Вот собственно код


uses Graph,Crt,Mouse;
Const R1=60;
var
grDriver:integer;
grMode:integer;
R,L:real;
Xmax,Ymax:integer;
loc:locrec;
CurColor:integer;
ReDraw:boolean;
w:char;
BEGIN
grDriver:=Detect;
InitGraph(grDriver,grMode,'C:\Bp7\BGI');
if (ioresult<>grok) then begin
writeln('Nevozmogno pereiti v graficheskii regim',grapherrormsg(ioresult));
halt(1);end;
outtext('For Exit press Q');
MShow;
Xmax:=GetMaxX;Ymax:=GetMaxY;
MRowRange(0,Ymax);
MColRange(0,Xmax);

CurColor:=5;setcolor(CurColor);

Circle(Xmax div 2,Ymax div 2,R1);Line(268,272,360,195); {прорисовывает то что надо}
ReDraw:=false;
While (Keypressed<>true) Do
Begin
MPos(loc);

R:=sqr(loc.column-Xmax div 2) + sqr(loc.row-Ymax div 2);
L:=(77/98)*loc.column+loc.row;
if (abs® <= sqr(R1))and(L <= (272+268*77/98)) then {условие выделения}
begin
if (CurColor=5) then Redraw:=true;
CurColor:=1;
end
else begin
if (CurColor=1) then Redraw:=true;
CurColor:=5;
end;
if (ReDraw) then
begin
setcolor(CurColor);
MHide;
Line(268,272,360,195);Arc(Xmax div 2,Ymax div 2,46,212,R1);
MShow;
ReDraw:=false;
end;
End;
if keypressed then w:=readkey;
if ord(w)=ord('q') then Halt;
CloseGraph;
Readln;
END.