Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Вниз

как узнать что мышка ушла с объекта - Panel1?   Найти похожие ветки 

 
starlit   (2005-03-02 23:23) [0]

чтобы скрыть эту панель.
необходимо сделать что то походее на выпадающие меню.


 
default ©   (2005-03-03 00:34) [1]

можно через OnMouseMove панели и её родителя


 
Ozone ©   (2005-03-03 06:44) [2]

WM_MOUSELEAVE + WM_MOUSEENTER


 
Gero ©   (2005-03-03 08:29) [3]

Нет, WM_MOUSEENTER здесь ни при чем.


 
Ozone ©   (2005-03-03 08:47) [4]


>  [3] Gero ©   (03.03.05 08:29)


Да, я ошибся. Нужно CM_MOUSEENTER, CM_MOUSELEAVE


 
StarLit   (2005-03-03 12:06) [5]

А пример можно?


 
Gero ©   (2005-03-03 12:39) [6]


> StarLit   (03.03.05 12:06)

Наследника компонента написать сумеешь?


 
stakan ©   (2005-03-03 12:43) [7]


 TMyPanel = class(TPanel)
 private
   FOnMouseLeave: TNotifyEvent;
   FOnMouseEnter: TNotifyEvent;
   procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
   procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
 published
   property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
   property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;  
 end;
...

procedure TLeoPanel.CMMouseEnter(var Message: TMessage);
begin
 inherited;
 if Assigned(FOnMouseEnter) then
   FOnMouseEnter(Self);
end;

procedure TLeoPanel.CMMouseLeave(var Message: TMessage);
begin
 inherited;
 if Assigned(FOnMouseLeave) then
   FOnMouseLeave(Self);
end;

Что - то вроде этого


 
StarLit   (2005-03-03 20:03) [8]

stakan, sorry но что то я не понял....

CMMouseEnter - это откуда?

что нибудь есть более менее рабочее? (если не сложно конечно)


 
Gero ©   (2005-03-03 20:36) [9]


> StarLit   (03.03.05 20:03)
> что нибудь есть более менее рабочее?

А, что [7] не работает?


 
StarLit   (2005-03-03 22:20) [10]

CMMouseEnter - это компилятор не признает...
нет не работает


 
Sun bittern ©   (2005-03-03 22:29) [11]

А ты все-все сделал как в stakan ©   (03.03.05 12:43) [7] ?
Нас терзают смутные сомненья :)


 
Gero ©   (2005-03-03 22:34) [12]

В [7] посте ошибка —
TMyPanel = class(TPanel)

procedure TLeoPanel.CMMouseEnter(var Message: TMessage);

Естественно, это один класс.


 
StarLit   (2005-03-04 00:09) [13]

procedure TForm1.FormCreate(Sender: TObject);
begin
TMyPanel(Panel1).OnMouseEnter:=Panel1Click;
end;

сделал так, но ни какой реакции....


 
Ozone ©   (2005-03-04 07:55) [14]


> [13] StarLit   (04.03.05 00:09)


Скажи мне, пожалуйста, что ты хотел этим получить.


 
РшЕус   (2005-03-04 15:50) [15]

Можно использовать системный обьект Mouse:
If Mouse.CursorPos.X >Panel1.Width...


 
StarLit   (2005-03-05 23:40) [16]

Ozone, при ЗАЕЗДЕ мышки на поле панели отраб. процедура клика по этой панели


 
Knight ©   (2005-03-06 00:07) [17]

А можно так... при перемещении мыши над панелью, проверять её на начальный размер, если так, то разворачивать и запускать таймер проверки положения курсора. Если он вышел за область панели, останавливать таймер и схлопывать панель...


procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
 if Panel1.Width=10 then begin
   Panel1.Width:=300;
   Timer1.Enabled:=True;
 end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if not PtInRect(Panel1.BoundsRect,Panel1.ScreenToClient(Mouse.CursorPos)) then begin
   Timer1.Enabled:=False;
   Panel1.Width:=10;
 end;
end;



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

Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.04 c
6-1105909007
Sphinx
2005-01-16 23:56
2005.03.20
Примеры для Indy 10


1-1109918516
leonidus
2005-03-04 09:41
2005.03.20
Access violation at addres - случаи возникновения


9-1103731874
Макс
2004-12-22 19:11
2005.03.20
Текстуры


9-1096955091
Malefic
2004-10-05 09:44
2005.03.20
PowerDraw


10-1086765103
Tormoz
2004-06-09 11:11
2005.03.20
Excel ей становится много однако...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский