Krzysztof Naworyta: Opis programu MouseOver2k.zip.

Aplikacja opracowana na podstawie oryginalnego projektu pobranego z http://www.it-berater.org/ strona: http://www.it-berater.org/ThueDownloads/index.shtml Dr. Thümmler-DLL Pack Pakiet zawiera 17 interesujących bibliotek dll, między innymi dsflash.dll - kluczową dla interesującego nas płynnego efektu MouseOver. Bibliotekę dsflash.dll po rozpakowaniu należy umieścić - albo w systemowym katalogu Windows (windows\system albo winnt\system32) - albo w katalogu gdzie umieszczono msaccess.exe (domyślnie C:\Program Files\Microsoft Office\Office) Każdemu szczerze polecam, aby ze stron autora ściągnął oryginalny zip i przestudiował wszystkie tam zawarte uwagi. W moim opracowaniu starałem się tamte idee przenieść do bazy mdb, wraz z efektem MouseOver, także dla formularza nieaktywnego. Wymagało to paru specyficznych dla accessa przeróbek, choć mam wrażenie, że nie wszystko zostało już uwzględnione. Dlatego przedstawioną aplikację należy traktować jako pierwszą przymiarkę do tematu - liczę na pomoc każdego, który rozwinie owo dostosowanie. Główny problem to niemożność ponownego aktywowania biblioteki, po zamknięciu formularza startowego StartHidden. Dlatego w jego procedurze Unload umieściłem linię CloseCurrentDatabase. Plusy: Aplikacja wymaga jednego uniwersalnego modułu modFlash. Zaś w module każdego formularza, dla którego pragniemy zastosować przedstawiony mechanizm, wystarczy w procedurze otwarcia odpowiednio podpiąć kontrolki pod kontrolę (czy to poprzez ich typ, czy też sprawdzanie zawartości ich metek) Zgodnie z opisem w oryginalnym projekcie - dodatkowo moduł formularza powinien zawierać: FlashEvent() - główna procedura, do której bez przerwy będzie się odwoływać dll ProcessControls() ProcessZones() - w naszym, Accessowców, przypadku pewnie zawsze pusta, ale musi pozostać! Kusi aby te procedury - poza ProcessControls(), specyficzną dla każdego formularza z osobna, przenieść w miejsce bardziej uniwersalne - ale tego nie sprawdziłem, więc tym bardziej nie wiem czy jest to możliwe ... Dodatkowy komentarz: Biblioteka dll rozwiązując jedne problemy generuje inne Te ostatnie być może z mojej niewiedzy ... A co rozwiązuje ? Rozwiązanie przy pomocy Timer, podane przez Krzyśka Pozorka wydaje się, że można ująć w odpowiednią - uniwersalną - klasę i w ten sposób zrobić wszystko bez uciekania się do dodatkowych bibliotek, których źródła nie udostępniono. Tyle, że mnie osobiście ten Timer mało się podoba: - raz, bo w uniwersalnej sytuacji chciałbym go być może użyć w innych celach niż podświetlanie czy gaszenie czegoś tam - dwa, bo Timer też ma swoje pułapki (jak choćby nieadekwatność Screen.ActiveForm czy bug objawiający się podczas naciskania klawisza myszy) ((może ja ma jakiegoś nieszkodliwego (?) bzika, ale implementując rozwiązanie w zamyśle uniwersalne, pragnę aby nie wchodziło ono w konflikt z rozwiązaniami lokalnymi - czyli w konkretnym przypadku nie chcę aby Timer uniwersalnej klasy gryzł się z Timerem lokalnyjm formularza ....)) - trzy, bo ciężko reagować na zdarzenia myszy kontrolek formularza nieaktywnego (potrzebne to komu ? nie wiem, ale miłe ;-))) W końcu na takiej zasadzie działają toolbary ... Jako że aplikacja zawiera jeszcze wiele pytajników - z dalszymi opisami na razie koniec. Oddaję pałeczkę innym, bardziej dociekliwym Kolegom Krzysztof Naworyta