Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

процедура реагирующая на положение указателя мыши [D6, WinME]


novi ©   (2004-03-13 22:30:00) 

Уважаемые мастера! Помогите пожалуйста.
Условие задачи следующее: на форме расположено три круга разного цвета. Сначала они прозрачные, но по наведению мыши в круг они должны заливаться своим цветом, после увода мыши должны стать опять прозрачными.
Написал функцию определения мыши, а процедуру закраски ...
function Svet(var s:TBrushStyle):TBrushStyle;
var r, cx, cy, d:real; shp: TShape;
x, y: integer;
begin
 r:= shp.Width/2;
 cx:= shp.Width/2;
 cy:= shp.Height/2;
 d:= sqrt(sqr(x-cx)+sqr(y-cy));
 if d<r then s:= bsSolid else s:= bsClear;
end;


Думкин   (2004-03-14 15:56:00) [1]

Телепатироване подсказывает какие события при находеи исходе?
Так есть такие в дельфях - onMouseLeave, onMouseEnter - только осталось их работать заставить.


default   (2004-03-14 01:38:00) [2]

можешь кстати TShape использовать, тогда вообще ничего считать не нужно...


Mihey   (2004-03-14 00:41:00) [3]

Есть:

var r, cx, cy, d:real; shp: TShape;
x, y: integer;
begin
r:= shp.Width/2;
cx:= shp.Width/2;
cy:= shp.Height/2;
d:= sqrt(sqr(x-cx)+sqr(y-cy));
if d<r then s:= bsSolid else s:= bsClear;
end;

Надо:

var r, cx, cy, d:real; shp: TShape;
x, y: integer;
begin
r:= shp.Width/2;
cx:= shp.Width/2;
cy:= shp.Height/2;
d:= sqrt(sqr(x-cx)+sqr(y-cy));
if d<r then Result := bsSolid else Result := bsClear;
end;


novi   (2004-03-13 23:01:00) [4]

Не получается закрасить.


Mihey   (2004-03-13 22:53:00) [5]

И какой вопрос то???


Наверх

Титульная страница Поиск, карта сайта Написать письмо