Warsztat 3: Nowe zdarzenia formularza w widoku "Arkusz danych".

DatasheetEvents2k.zip
Autorzy: Krzysztof Naworyta i Zbigniew Bratko
Baza w formacie MsAccess 2000
96kB, 25-05-2006

WhichColumn.zip
Autorzy: Krzysztof Naworyta
Baza w formacie MsAccess 2000
49kB, 25-05-2006

Opis:

Czy można rozpoznać czy kliknąłem w selektor rekordów ? A w kolumnę ? Którą ? A może tylko kliknąłem w przestrzeń między kolumnami ?
Niestety access wszystkie te zdarzenia obsługuje tylko jednym: Form_Click
Czy jednak nie podpowiada nam w jakiś sposób co za chwilę będzie kliknięte ?

Tak ! Podpowiedzi takiej udzielają nam access'owe kursory, kiedy poruszamy sie nad elementami formularza.

Niestety nie mają one nic wspólnego z kursorami systemowymi Windows. Nie odpowiadają im żadne stałe.

Rozwiązanie:

Mając za pomocnika BraZby można wszystko !

Możemy każdy kursor zapisać jako bitmapę, następnie dla każdego z nich wyliczyć jakąś unikalną "sumę kontrolną"

Potem po każdym otwarciu aplikacji możemy pojawiające się kursory porównać z wzorcem, przechwycić ich "uchwyty", stablicować i ... rozpoznawać zdarzenia !

Załączona baza być może nie będzie zbyt łatwa do analizy.
Zawiera ona kilka modułów standardowych służących właśnie do "stablicowania" kursorów oraz moduły klasy, w których zdefniowałem podstawowe, analityczne zdarzenia, z pomocą których można zdefiniować zdarzenia bardziej konkretne.

Przykładowo: jeśli nastąpiło zdarzenie Form_MouseDown nad kolumną a potem nad tą samą kolumną nastąpiło zdarzenie Form_MouseUp, to można wyzwolić zdarzenie ColumnClick(NazwaKolumny), pod które podepniemy kod sortujący właśnie tę kolumnę !

(sposób rozpoznania nad którą kolumną się znajdujemy przedstawia druga załączona baza: WhichColumn.mdb)

Jeśli nastąpiło MouseDown między kolumnami, to można natychmiast wysłać zdarzenie MouseUp i w ten sposób zablokować możliwość zmiany szerokości kolumny !

Takie "syntetyczne" zdarzenia i właściwości czekają na stworzenie. Mam nadzieję, że ktoś podejmie ze mną trud ich zdefinowania.
Te przedstawione w przykładzie stanowią mam nadzieję dobry punkt wyjścia.

Krzysztof Naworyta