> Привет All. > > Есть компонент на форме TLabel. > Ставлю событие OnMouseMove : > Lebel1->Font->Text=clLime; > //меняю цвет текста > > Т.е когда курсор двигается на компонентом, цвет изменяется. > > Но как сделать так, чтоб только как курсор изменит своё > положение - выдет за рамки компонента, он изменил обратно > цвет. > > Есть идея каждый раз сравнивать координаты курсора с коорд. > компонента, но кажеться это не мобильно. я с билдером не знаком, но попробуй обрабатывать это же событие, только в том, что находится вокруг лейбла(форма, наверное), и изменять цвет назад
> Привет All. > > Есть компонент на форме TLabel. > Ставлю событие OnMouseMove : > Lebel1->Font->Text=clLime; > //меняю цвет текста > > Т.е когда курсор двигается на компонентом, цвет изменяется. > > Но как сделать так, чтоб только как курсор изменит своё > положение - выдет за рамки компонента, он изменил обратно > цвет. > > Есть идея каждый раз сравнивать координаты курсора с коорд. > компонента, но кажеться это не мобильно.
В обработчике onMouseMove пишешь следующий код
// Захватываем события от мыши компонентом Button1
SetCapture(Button1.Handle);
Button1.Caption := 'In';
// Если координаты мыши за пределами компонента
// то меняем название и освобождаем мышь
if not PtInRect(Button1.ClientRect, POINT(X,Y)) then begin
Button1.Caption := 'Out';
ReleaseCapture;
end;
Я пишу на Пасе, но думаю перевести это на С не составит труда
> Привет All. > > Есть компонент на форме TLabel. > Ставлю событие OnMouseMove : > Lebel1->Font->Text=clLime; > //меняю цвет текста > > Т.е когда курсор двигается на компонентом, цвет изменяется. > > Но как сделать так, чтоб только как курсор изменит своё > положение - выдет за рамки компонента, он изменил обратно > цвет. > > Есть идея каждый раз сравнивать координаты курсора с коорд. > компонента, но кажеться это не мобильно. я с билдером не знаком, но попробуй обрабатывать это же событие, только в том, что находится вокруг лейбла(форма, наверное), и изменять цвет назад