Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.24;
Скачать: CL | DM;

Вниз

Текст на лабеле   Найти похожие ветки 

 
clampo ©   (2004-10-06 10:31) [0]

Привет всем!!! подскажите, пожалуйста как сделать так, чтобы
при наведении указателя на Button1 на Лабеле появлялся текст
(н\р) "кнопка". Но на лабел постоянно посылается другой текст.
И поэтому у меня на лабеле текст "кнопка" появляется только
тогда когда я двигая курсор по Button1.


 
Sandman25 ©   (2004-10-06 10:32) [1]

Но на лабел постоянно посылается другой текст.

По таймеру, что ли? Не надо так делать.


 
kukuikar ©   (2004-10-06 10:49) [2]

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
Label1.Caption := "кнопка";
end;


 
clampo ©   (2004-10-07 20:22) [3]

kukuikar, я же сказал так не работает. А другой текст посылаетя как я не знаю. Но дело не в этом: тут функцию не MouseMove надо, а когда кусорнаходится над кнопкой(двигается или стоит нет разницы)


 
Vlad ©   (2004-10-07 20:37) [4]


> clampo ©   (07.10.04 20:22) [3]

Речь о курсоре мыши надо понимать? Тогда kukuikar ©   (06.10.04 10:49) [2]  привел рабочий пример, не знаю что там у тебя и куда посылается. Или объясни по нормальному чего надо?


 
Okcid   (2004-10-07 21:01) [5]

> clampo ©   (07.10.04 20:22)
А как можно навести курсор на Button1, не двигая мышь? полюбому будет вызываться событие MouseMove для Button1


 
XProger ©   (2004-10-08 02:00) [6]


SetCursorPos


 
Defunct ©   (2004-10-08 03:09) [7]

Function MouseOnLabel(Lab:TLabel; Pt:TPoint):Boolean;
Begin
 MouseOnLabel :=  (PT.X>0) And (PT.Y>0) And
                  (PT.X<Lab.Width) And (PT.Y<Lab.Height);
End;

procedure TAboutForm.Timer2Timer(Sender: TObject);
Var P1:TPoint;
begin
 P1:=Label1.ScreenToClient( Mouse.CursorPos );
 If MouseOnLabel(Label1, P1) Then
 Begin
   Label1.Font.Color := clRed;
   Label1.Caption := "Активен";
 End Else
 Begin
   Label1.Font.Color := clBlue;
   Label1.Caption := "Пассивен";
 End;
end;


 
Fedia ©   (2004-10-08 04:22) [8]

Похоже человек имеет в виду, что помимо срабатывания процедуры Button1MouseMove, текст Label-а меняет еще какая-то процедура:
> Но на лабел постоянно посылается другой текст
Ведь иначе вариант kukuikar ©   (06.10.04 10:49) [2] был бы и в его случае, абсолютно рабочим.
Определи, что еще меняет текст Label-а, и прекрати это безобразие :)


 
Defunct ©   (2004-10-08 18:54) [9]

Fedia ©   (08.10.04 04:22) [8]

Запустите пример [7] и пример [2] сравните в чем разница.


 
Fedia ©   (2004-10-09 01:51) [10]

Удалено модератором
Примечание: ... из-за невнимательности отправителя.


 
Fedia ©   (2004-10-09 05:04) [11]

Предыдущий post считать не действительным, из-за невнимательности отправителя.
To Defunct.
Если говорить о Вашем примере, то, судя по вопросу clampo, он должен быть таким:

Function MouseOnButton(SB: TButton; Pt: TPoint):Boolean;
Begin
Result :=(PT.X>0) And (PT.Y>0) And
(PT.X<SB.Width) And (PT.Y<SB.Height);
End;
procedure TForm1.Timer1Timer(Sender: TObject);
Var P1:TPoint;
begin
P1:=Button1.ScreenToClient( Mouse.CursorPos );
If MouseOnButton(Button1, P1) Then
Begin
  Label1.Font.Color := clRed;
  Label1.Caption := "Активен";
End Else
Begin
  Label1.Font.Color := clBlue;
  Label1.Caption := "Пассивен";
End;
end;

Но, как и пример [2], он скорее всего не поможет, если заголовок Label-а меняет еще какая-то процедура. Конечно, можно установить очень меленький интервал работы таймера, и игнорировать все остальные изменения заголовка Label-а, но, по-моему, это пахнет плохим стилем программирования.
P.S.  Вы когда-нибудь спите? Я имею в виду, что у нас большая разница в часовых поясах, но если я посещаю форум, то постоянно вижу Ваши свежие сообщения. Так и измотать себя можно :)


 
Defunct ©   (2004-10-09 13:02) [12]

> Но, как и пример [2], он скорее всего не поможет

Зависит от автора вопроса.

> Конечно, можно установить очень меленький интервал работы таймера, и игнорировать все остальные изменения заголовка Label-а

40-100 мс, и менять заголовок Label только в обработчике таймера.

> Вы когда-нибудь спите?

да, по выходным ;)



Страницы: 1 вся ветка

Текущий архив: 2004.10.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
1-1097070360
Wish
2004-10-06 17:46
2004.10.24
RichEdit


4-1095448825
cerber1
2004-09-17 23:20
2004.10.24
Каретка в Ворде


14-1096568677
Роман
2004-09-30 22:24
2004.10.24
Easu GPRS


14-1097065783
Zeqfreed
2004-10-06 16:29
2004.10.24
Photoshop!


3-1096028563
Hro
2004-09-24 16:22
2004.10.24
Стандартный пароль или логин