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

Вниз

TImage   Найти похожие ветки 

 
Builder   (2004-02-26 13:21) [0]

Здравствуйте,
у меня такая проблемма, нужно чтобы при наведении указателя мыши менялась image1 я пробовал событие OnMouseMove (ну что-то вроде того) но шел постоянный refresh формы, а это не особенно приятно, может есть другие возможности?


 
Gero ©   (2004-02-26 19:56) [1]

Обрабатывай CM_MOUSEENTER и CM_MOUSELEAVE.


 
Mihey ©   (2004-02-26 20:16) [2]

2 Gero:

Точно также кратенько напиши, как это делать. Придётся прописывать обработку в ядре или менять класс или писать потомка.


 
Gero ©   (2004-02-26 20:54) [3]

> Mihey ©   (26.02.04 20:16) [2]

Проблема написать потомка?


 
Mihey ©   (2004-02-26 22:54) [4]

2 Gero:

А оно надо?

Видать чувак делает кнопочку.


 
Gero ©   (2004-02-26 23:02) [5]

> Mihey ©   (26.02.04 22:54) [4]

Вы хотите предложить что-то лучше?


 
Gero ©   (2004-02-26 23:06) [6]

P.S. Если он "делает кнопочку" то написать потомка ему будет очень полезно.


 
Mihey ©   (2004-02-27 01:15) [7]

2 Gero:

В общем, от TImage надо отказываться, так как качества из него не выжмешь.


 
Gero ©   (2004-02-27 07:16) [8]

> Mihey ©   (27.02.04 01:15) [7]

Судя по вопросу, отказываться от TImage еще рано. Для него будет легче написать кнопку-потомка.


 
Nekto   (2004-02-28 00:30) [9]

Да Myhey бы вообще убрал TImage из дельфы!


 
Mihey ©   (2004-02-28 12:25) [10]

2 Nekto:

Да, убрал бы и заменил на нормальный компонент.


 
Nekto   (2004-02-28 17:29) [11]

Не нравится - не ешь. И почисть клаву, у тебя кнапка "2" залипает.


 
Гы   (2004-02-28 17:51) [12]

> Nekto  (28.02.04 17:29) [11]
> И почисть клаву, у тебя кнапка "2" залипает.

гыы.

"2" = "to" = "к"
"2 Nekto" = "к Nekto"


 
Gero ©   (2004-02-28 18:01) [13]

> Mihey ©   (28.02.04 12:25) [10]

Ага.


 
Nekto   (2004-02-28 22:51) [14]

Sorry, не знал!!!


 
M@D   (2004-02-29 11:53) [15]


> Gero ©   (26.02.04 19:56) [1]

А как обработать CM_MOUSEENTER и CM_MOUSELEAVE ?
Что-то я тоже разобраться не могу :(


 
Mihey ©   (2004-02-29 12:52) [16]

2 Gero:

Вот видишь, что наделал твой ответ (про M@D (29.02.04 11:53) [15]).

2 M@D:

Создаёшь потомка TImage. В protected пишешь, например:

procedure WMMouseEnter( var Msg : TWMMouse );   message CM_MOUSEENTER;
procedure WMMouseLeave( var Msg : TWMMouse );   message CM_MOUSELEAVE;

В private пишешь:

FOnMouseEnter : TOnMouseEvent;
FOnMouseLeave : TOnMouseEvent;

В published пишешь:

property OnMouseEnter : TOnMouseEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave : TOnMouseEvent read FOnMouseLeave write FOnMouseLeave;

Ну а в implementation уже пишешь:

procedure TMyNewImage.WMMouseEnter(var Msg: TWMMouse);
begin
 inherited;
 if Assigned(FOnMouseEnter) then FOnMouseEnter(Msg);
end;

procedure TMyNewImage.WMMouseLeave(var Msg: TWMMouse);
begin
 inherited;
 if Assigned(FOnMouseLeave) then FOnMouseLeave(Msg);
end;

Как обычно по-дурацки. Ты лучше расскажи, что ты хочешь сделать, так мы тебе другим советом поможем.


 
M@D   (2004-02-29 14:18) [17]


> Mihey ©   (29.02.04 12:52) [16]


Изменяющуюся кнопку для Autorun"а.
Чтоб откликалась на наведение (сигнал там)...
Этот вариант попробую, спасибо.


 
Mihey ©   (2004-02-29 14:56) [18]

2 M@D:

Если кнопку, то советую посмотреть компонент EzRgnBtn (легко найдёт через поиск на torry.net).


 
M@D   (2004-02-29 15:00) [19]


Mihey ©   (29.02.04 12:52) [


Не вопринимает:
private
 FOnMouseEnter : TOnMouseEvent;
 FOnMouseLeave : TOnMouseEvent;


Ошибка:
Undeclared identifier: "TOnMouseEvent"

Может что-то забыл добаыть в Uses?


 
M@D   (2004-02-29 15:00) [20]


Mihey ©   (29.02.04 12:52) [


Не вопринимает:
private
 FOnMouseEnter : TOnMouseEvent;
 FOnMouseLeave : TOnMouseEvent;


Ошибка:
Undeclared identifier: "TOnMouseEvent"

Может что-то забыл добаыть в Uses?


 
Mihey ©   (2004-02-29 15:48) [21]

Да, точно. До объявления дочернего класс надо поставить:

type
 TOnMouseEvent = procedure(Msg: TWMMouse) of object;


 
Gero ©   (2004-02-29 19:21) [22]

> TOnMouseEvent

Я всегда TNotifyEvent лепил.


 
M@D   (2004-02-29 23:08) [23]


> Mihey ©   (29.02.04 15:48)


Теперь MouseEnter и MouseLeave работают нормально.
Но MouseUp и MouseDown не реагируют... %(


 
Gero ©   (2004-02-29 23:10) [24]

> M@D   (29.02.04 23:08) [23]

Давай свой код.


 
M@D   (2004-02-29 23:13) [25]

procedure TForm1.img_CloseMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 img_Close.Picture.Bitmap := b_Exit_down;
end;

procedure TForm1.img_CloseMouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 img_Close.Picture.Bitmap := b_Exit_up;
 Close;
end;

procedure TForm1.img_CloseMouseEnter(Msg: TWMMouse);
begin
 img_Close.Picture.Bitmap := b_Exit_l;
end;

procedure TForm1.img_CloseMouseLeave(Msg: TWMMouse);
begin
 img_Close.Picture.Bitmap := b_Exit_up;
end;CODE>

b_ Bitmap.
А потомок - всё по инструкции...


 
Gero ©   (2004-02-29 23:24) [26]

Не происохдят события MouseUp и MouseDown? Проверь, поставь туда ShowMessage.


 
Mihey ©   (2004-02-29 23:25) [27]

Аналогично, в protected:

   procedure WMLButtonUp( var Msg : TWMLButtonUp );            message WM_LBUTTONUP;
   procedure WMLButtonDown( var Msg : TWMLButtonUp );          message WM_LBUTTONDOWN;
   procedure WMLButtonDblClk( var Message: TWMLButtonDblClk ); message WM_LBUTTONDBLCLK;

В private:

FOnMouseDown: TOnMouseEvent;
FOnMouseUp: TOnMouseEvent;

В published:

property OnMouseDown  : TOnMouseEvent read FOnMouseDown  write FOnMouseDown;
property OnMouseUp    : TOnMouseEvent read FOnMouseUp    write FOnMouseUp;

И в implementation:

procedure TMyNewImage.WMLButtonDown(var Msg: TWMMouse);
begin
 inherited;
 if Assigned(FOnMouseDown) then FOnMouseDown(Msg);
end;

procedure TMyNewImage.WMLButtonUp(var Msg: TWMMouse);
begin
 inherited;
 if Assigned(FOnMouseUp) then FOnMouseUp(Msg);
end;

procedure TMyNewImage.WMLButtonDblClk(var Message: TWMLButtonDblClk);
begin
 // Чёрт его знает, что тут...
end;


 
Gero ©   (2004-02-29 23:55) [28]

> Mihey ©   (29.02.04 23:25) [27]
Зачем все это, OnMouseUp и OnMouseDown в TImage и так есть.


 
Mihey ©   (2004-02-29 23:57) [29]

А чё то не пашет ведь...


 
Gero ©   (2004-03-01 00:05) [30]

> Mihey ©   (29.02.04 23:57) [29]

Ну если "чё то не пашет", то не стоит не задумываясь переписывать заново методы.


 
MBo ©   (2004-03-01 07:12) [31]

http://www.swissdelphicenter.ch/en/showcode.php?id=1068



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

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

Наверх




Память: 0.51 MB
Время: 0.06 c
14-1082606788
asdqwer
2004-04-22 08:06
2004.05.16
Обман зрения


14-1083025226
Yttrium
2004-04-27 04:20
2004.05.16
IL. Нафига он нужен?


1-1083158142
Николай
2004-04-28 17:15
2004.05.16
Как сделать форму невидимой?


3-1082345098
Orange
2004-04-19 07:24
2004.05.16
Сохранение базы данных


1-1083225929
Игорь
2004-04-29 12:05
2004.05.16
Когда я пишу в RichEdit текст вот такой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский