wysuwanie i chowanie się panelu

Odpowiedz Nowy wątek
2006-11-10 22:31
elo1234
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)

Pozostało 580 znaków

2006-11-10 22:34
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

Pozostało 580 znaków

2006-11-10 23:17
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.

Pozostało 580 znaków

2006-11-11 00:33
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ąć ??


"Nie po to piszę programy żeby korzystać z cudzych"

Pozostało 580 znaków

2006-11-11 02:08
0
  1. poszukaj sobie jak dodać do panla zdarzenia OnMouseEnter i OnMouseLeave
  2. animację oprzyj na timerze a nie na sleep

- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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