wysuwanie i chowanie się panelu

0

Witam
Chcę zrobić ze jeśli pojade myszką całkiem na prawą stronę i najade na wystający cieniutki kawałek panelu on wysunie się ("animacyjnie")i schowa się jeśli wyjade myszką poza panel...

wysuwanie się zrobilem
w funkcji panelu mause move

procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
 if panel1.Left >= 1090 then
 begin
 sleep(50);
panel1.Left:= panel1.Left -5;
 end;
end;

..ale jak zrobić żeby się chował...(można by było zrobić timer i cały czas sprawdzał myszy..ale czy jest sposób taki jak zrobiłem wysuwanie)... czy jest tez jakaś taka funkcja jak mause move tylko odwrotna (jeśli myszka jest poza panelem)

0

A może po prostu dać to zdarzenie do MouseMove głównej części formy? Wtedy po zjechaniu kursorem z panelu na główną formę wywoła się jej zdarzenie MouseMove

0

Nie siedzę w Delphi, ale sądzę, że forma nie odświeża się przy każdej zmianie jakiegoś atrybutu. Bo jeśli jest jak mówię, to po prostu zrób coś takiego, by przy każdej pętli przesuwał panel w prawo o 5, a jeśli najedziesz tam myszką to niech w tym czasie przesunie w lewo o 10, czyli że gdy myszka będzie poza panelem, to on będzie się przesuwał o 5 (pikseli?) w prawo, a jak najedziesz myszą to o 10-5=5 pikseli w lewo.

0

To udało mi się to zrobić...pomogło zastosowanie funkcji mause move w formie i imagu który jest prawie na cała formę...ale napotkałem pewien bug..mianowicie w czasie wysuwania panel jest pusty dopiero jak się zatrzyma wszystko się pokazuje (wygląda to tak jakby panel zamazywał wszystko)..natomiast gdy chowa się to ucina obrazek który jest pod spodem (tam gdzie był panel jest tylko goła forma)..gdy już się schowa obrazek znowu się pojawia i wszystko jest ok
po prostu bug ten występuje tylko podczas przesuwania gdy się zatrzyma wszystko wraca do normy i jest ok
Jak to usunąć ??

0
  1. poszukaj sobie jak dodać do panla zdarzenia OnMouseEnter i OnMouseLeave
  2. animację oprzyj na timerze a nie na sleep

1 użytkowników online, w tym zalogowanych: 0, gości: 1