Ĺadny brzuch
Da się sprawdzić, czy mysz nie znajduje się na buttonie bez pisania własnego komponentu. Do sprawdzania czy sie znajduje służy:
Button1MouseMove
a czy już nie ma kursora na buttonie - nie znalazłem.
Da się sprawdzić, czy mysz nie znajduje się na buttonie bez pisania własnego komponentu. Do sprawdzania czy sie znajduje służy:
Button1MouseMove
a czy już nie ma kursora na buttonie - nie znalazłem.
MouseMove na formie :) lub czym kolwiek innym.
inaczej się nie da??
a ja tam bym dopisal w istniejacym komponencie zdazenia OnLeave i OnEnter razem 4 linijki kodu - zreszta widzialem na tym forum posta o dodawaniu zdazen do komponentow lub 4programers poszukaj
inaczej się nie da??
Masz w inspektorze obiektów zdarzenie onmousemove dla formy. Tam wpisz: showmessage('kursor opuscił button'); To najprostrzy sposób.
Na fomie mam jeszcze kilka paneli (8), więc dla nich też musiałbym oprogramować zdarzenie. Chyba pozostanę przy tworzeniu własnego komponentu.
Na fomie mam jeszcze kilka paneli (8), więc dla nich też musiałbym oprogramować zdarzenie. Chyba pozostanę przy tworzeniu własnego komponentu.
Nie ma takiej potrzeby. Wystarczy, żę dasz onmousemove dla formy. Wowczas gdy zjedziesz myszka z buttona i obojetnie czy kursor zatrzyma sie na jakims panelu czy na pustym kawlaku formy lub czymkolwiek innym to zadziała :D
@statjacek chyba się mylisz. Dałem na formie btn. Obłożyłem go panelami i dopiero, jeżeli kursor jest na formie działa. Panele trzeba osobno oprogramować.
@statjacek chyba się mylisz. Dałem na formie btn. Obłożyłem go panelami i dopiero, jeżeli kursor jest na formie działa. Panele trzeba osobno oprogramować.
W przypadku paneli nie jestem pewien. W/w sposób w programie Ager Web Edytor robiłem podpowiedzi. Najeżdzam na jeden element w labelu wyświetala mi sie tekst z informacją, najeżdrzam na inny element jest inna informacja w labelu, jeśli najeżdrzam na formę dalem coś takiego: label.caption:=''; i podpowiedzi są automatycznie usuwane z labelu. Może to wykorzystasz w swoim programie.
ale panele - sa inne - takie ze to nie dziala-
Dodam chyba do każdego panelu zdarzenie.
a nie lepiej stworzyc nowy komponent - odziedziczyc wszystko po componencie panel i dodac pare linijek obslugujacych zdazenia (razem bedzie z 6 linijek) i masz juz na zawszy komponent taki jaki chcesz.
albo Otwierasz kod komponentu Tpanel i dopisujesz :
w sekcji private
Fonmouseleave: TNotifyEvent;
Fonmouseenter: TNotifyEvent;
...
...
...
procedure CMMouseEnter(var msg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;
protected
procedure DoMouseEnter; dynamic;
procedure DoMouseLeave; dynamic;
published
property onmouseenter: TNotifyEvent read Fonmouseenter write Fonmouseenter;
property onmouseleave: TNotifyEvent read Fonmouseleave write Fonmouseleave;
i to juz wzystarczy - po skompilowaniu jak wzucisz panel na forma to w eventach bedziesz mial ONener i ONleave i po klopocie
Ewentualnie oprucz tych wyzej linijek mozesz dodac :
{------------------------------------------------------------------------------} procedure TMXPanel.CMMouseEnter(var msg: TMessage); begin DoMouseEnter; end; {------------------------------------------------------------------------------} procedure TMXPanel.CMMouseLeave(var msg: TMessage); begin DoMouseLeave; end; {------------------------------------------------------------------------------} procedure TMXPanel.DoMouseEnter; begin if Assigned(Fonmouseenter) then Fonmouseenter(Self); end; {------------------------------------------------------------------------------} procedure TMXPanel.DoMouseLeave; begin if Assigned(Fonmouseleave) then Fonmouseleave(Self); end;
aha - moglem gdzies palnac literowke - i bezposrednie skopiowanie tego to delphi moze nie zadzialac ale ideea jest dobra - reszte doczytasz
Użytkownik helios128 edytował ten post 17 sierpień 2007, 07:35
Też można. W delphi7 da się??
a co ma sie nie dać.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Button1MouseMove
a czy już nie ma kursora na buttonie - nie znalazłem.
Da się sprawdzić, czy mysz nie znajduje się na buttonie bez pisania własnego komponentu. Do sprawdzania czy sie znajduje służy:
Button1MouseMove
a czy już nie ma kursora na buttonie - nie znalazłem.
MouseMove na formie :) lub czym kolwiek innym.
inaczej się nie da??
a ja tam bym dopisal w istniejacym komponencie zdazenia OnLeave i OnEnter razem 4 linijki kodu - zreszta widzialem na tym forum posta o dodawaniu zdazen do komponentow lub 4programers poszukaj
inaczej się nie da??
Masz w inspektorze obiektów zdarzenie onmousemove dla formy. Tam wpisz: showmessage('kursor opuscił button'); To najprostrzy sposób.
Na fomie mam jeszcze kilka paneli (8), więc dla nich też musiałbym oprogramować zdarzenie. Chyba pozostanę przy tworzeniu własnego komponentu.
Na fomie mam jeszcze kilka paneli (8), więc dla nich też musiałbym oprogramować zdarzenie. Chyba pozostanę przy tworzeniu własnego komponentu.
Nie ma takiej potrzeby. Wystarczy, żę dasz onmousemove dla formy. Wowczas gdy zjedziesz myszka z buttona i obojetnie czy kursor zatrzyma sie na jakims panelu czy na pustym kawlaku formy lub czymkolwiek innym to zadziała :D
@statjacek chyba się mylisz. Dałem na formie btn. Obłożyłem go panelami i dopiero, jeżeli kursor jest na formie działa. Panele trzeba osobno oprogramować.
@statjacek chyba się mylisz. Dałem na formie btn. Obłożyłem go panelami i dopiero, jeżeli kursor jest na formie działa. Panele trzeba osobno oprogramować.
W przypadku paneli nie jestem pewien. W/w sposób w programie Ager Web Edytor robiłem podpowiedzi. Najeżdzam na jeden element w labelu wyświetala mi sie tekst z informacją, najeżdrzam na inny element jest inna informacja w labelu, jeśli najeżdrzam na formę dalem coś takiego: label.caption:=''; i podpowiedzi są automatycznie usuwane z labelu. Może to wykorzystasz w swoim programie.
ale panele - sa inne - takie ze to nie dziala-
Dodam chyba do każdego panelu zdarzenie.
a nie lepiej stworzyc nowy komponent - odziedziczyc wszystko po componencie panel i dodac pare linijek obslugujacych zdazenia (razem bedzie z 6 linijek) i masz juz na zawszy komponent taki jaki chcesz.
albo Otwierasz kod komponentu Tpanel i dopisujesz :
w sekcji private
Fonmouseleave: TNotifyEvent;
Fonmouseenter: TNotifyEvent;
...
...
...
procedure CMMouseEnter(var msg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;
protected
procedure DoMouseEnter; dynamic;
procedure DoMouseLeave; dynamic;
published
property onmouseenter: TNotifyEvent read Fonmouseenter write Fonmouseenter;
property onmouseleave: TNotifyEvent read Fonmouseleave write Fonmouseleave;
i to juz wzystarczy - po skompilowaniu jak wzucisz panel na forma to w eventach bedziesz mial ONener i ONleave i po klopocie
Ewentualnie oprucz tych wyzej linijek mozesz dodac :
{------------------------------------------------------------------------------} procedure TMXPanel.CMMouseEnter(var msg: TMessage); begin DoMouseEnter; end; {------------------------------------------------------------------------------} procedure TMXPanel.CMMouseLeave(var msg: TMessage); begin DoMouseLeave; end; {------------------------------------------------------------------------------} procedure TMXPanel.DoMouseEnter; begin if Assigned(Fonmouseenter) then Fonmouseenter(Self); end; {------------------------------------------------------------------------------} procedure TMXPanel.DoMouseLeave; begin if Assigned(Fonmouseleave) then Fonmouseleave(Self); end;
aha - moglem gdzies palnac literowke - i bezposrednie skopiowanie tego to delphi moze nie zadzialac ale ideea jest dobra - reszte doczytasz
Użytkownik helios128 edytował ten post 17 sierpień 2007, 07:35
Też można. W delphi7 da się??
a co ma sie nie dać.