Focus i zdarzenie OnMouseWheel

0

Błąd z którym mam problem tkwi w samym Dlephi. Kiedy umieszcze na formie TButton, a następnie ustawie zdarzenie np. Form1.OnMouseWheelDown; to zdarzenie to wywołuje się dwukrotnie przy jednym przesunięciu rolki.
Teraz drugi przypadek: zamiast TButton umieszczam TPanel i zdarzenie OnMouseWheelDown wywołuje się prawidłowo tylko jeden raz. Ale kiedy dodam kolejne zdarzenie Form1.OnShow i wpisze w nim Panel1.SetFocus; zdarzenie znowu wywołuje się dwukrotnie.

Doszedłem do wniosku że ma to ścisły związek z focusem, gdyż TButton psuje zdarzenia z rolką a TSpeedButton już nie. Ma ktoś pomysł jak to naprawić ?

W moim programie korzystam ze zdarzeń MouseWheel, oraz z TTrackBar, który wygląda fatalnie z focusem. Dlatego ustawiłem w TrackBar1.OnChange żeby focus przechodził na inny komponent(schowany TPanel). Ale takie właśnie rozwiązanie psuje mi zdarzenia mousewheel. Może jest jakiś inny sposób żeby się pozbyć focusa ?
Posiadam Delphi 6 Personal.

0

A probowales ze zdarzeniem OnMouseWheel? Jest tam parametr, ktory mowi, czy kolko kreci sie w przod czy w tyl.

0

Tak jak pisałem wszystkie zdarzenia z rolką wykonują się dwukrotnie jak tylko umieszcze na formie komponent, który posiada focus. Jako focus mam namyśli oczywiście to obramowanie z kresek.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.