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

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

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

 
 Ответить  Открыть новую тему 
> Выделение графических областей, готовая прога..но немного тупит!
ecstasy
сообщение 13.05.2007 13:19
Сообщение #1





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

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


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


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

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


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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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