Access

  MS Access 2010+  |  Aplication Programming Interface API  |   VBA 7.0

Spis przykładów o API

01.

09.11.2017

• Windows API. podstawowe informacje o Interfejsie Programowania Aplikacji •

Windows API (WinAPI) to nazwa podstawowego zestawu Interfejsu Programowania Aplikacji dostępnych w systemach operacyjnych Microsoft Windows. Za pomocą interfejsu API, można tworzyć aplikacje, które działają z powodzeniem na wszystkich wersjach systemu Windows ....

02.

11.11.2017

• Instrukcja Declare. Deklarowanie funkcji API •

Instrukcja Declare wykorzystywana jest na poziomie modułu do deklarowania odwołań do procedur zewnętrznych zawartych w bibliotekach dołączanych dynamicznie (w pliku DLL).
W programie Microsoft Access można użyć instrukcji Declare na poziomie modułu w module standardowym, aby zadeklarować odwołanie do zewnętrznej procedury w bibliotece dołączanej dynamicznie (DLL). Domyślnie instrukcja Declare jest publiczna ....

03.

14.11.2017

• Instrukcja Type. Deklarowanie Typu użytkownika •

Typ użytkownika to złożony typ danych, mogący przechowywać wiele wartości w jednej zmiennej. Cechą odróżniającą typ użytkownika od tablic jest możliwość przechowywania wartości różnych typów. Zazwyczaj grupuje logicznie powiązane ze sobą dane różnego typu w jednym obszarze pamięci. Poszczególne elementy typu użytkownika mają swoje unikatowe nazwy i podanie nazwy, pozwala na uzyskanie dostępu do danego elementu ....

04.

18.11.2017

• Wyszukiwanie plików i folderów. Funkcja API FindFirstFile (...) •

Funkcja FindFirstFile wyszukuje pliki i foldery po nazwie pliku, lub wzorcu z użyciem symboli wieloznacznych "?" oraz "*". W wyszukiwaniu nie można określić żadnych atrybutów, takich jak data lub typ pliku. Wyszukiwanie obejmuje długie i krótkie nazwy plików.
Próba otwarcia wyszukiwania, gdy podana nazwa pliku zawiera na końcu znak backslash (\), zawsze kończy się niepowodzeniem ....

05.

20.11.2017

• Wyszukiwanie plików i folderów. Funkcja API FindNextFile (...) •

Funkcja FindNextFile kontynuuje wyszukiwanie plików i folderów, z tymi samymi kryteriami z jakimi wywołano funkcję wyszukującą FindFirstFile. Przy powodzeniu (znalezieniu pliku lub folderu), zwraca wartość różną od Zera, a w strukturze WIN32_FIND_DATA informacje o znalezionym pliku lub folderze. By zakończyć wyszukiwanie należy uchwyt wyszukiwania zamknąć za pomocą funkcji FindClose ....

06.

20.11.2017

• Wyszukiwanie plików i folderów. Funkcja API FindClose (...) •

Funkcja FindClose kontynuuje wyszukiwanie plików i folderów, z tymi samymi kryteriami z jakimi wywołano funkcję wyszukującą FindFirstFile. Przy powodzeniu (znalezieniu pliku lub folderu), zwraca wartość różną od Zera, a w strukturze WIN32_FIND_DATA informacje o znalezionym pliku lub folderze. By zakończyć wyszukiwanie należy uchwyt wyszukiwania zamknąć za pomocą funkcji FindClose ....

07.

28.11.2017

• Informacje o pliku lub folderze. Struktura WIN32_FIND_DATA •

Struktura WIN32_FIND_DATA zwracana jest przez m.in. funkcje FindFirstFileFindFirstFile gdy zostanie znaleziony plik lub folder pasujący do nazwy lub wzorca wyszukiwania z użyciem symboli wieloznacznych "?" oraz "*". Zawiera informacje o znalezionym pliku lub folderze, dotyczących nazwy, atrybutów, wielkości, czasu utworzenia, modyfikacji i ....

08.

30.11.2017

• Informacje o datach dot. plików lub folderów. Struktura FILETIME •

Struktura FILETIME jest to 64 bitowa struktura przechowująca informację o dokładnej dacie utworzenia, dostępu, modyfikacji pliku lub folderu. Określa liczbę 100 nanosekundowych odstępów jakie upłynęły od dnia 1 stycznia 1601 roku według czasu UTC. Element dwLowDateTime struktury FILETIME to młodsze 32 bity daty pliku, a element dwHighDateTime struktury FILETIME to starsze 32 bity daty pliku ....

09.

01.12.2017

• Czy tekst jest w formacie Unicode. Funkcja API IsTextUnicode (...) •

Gdy przy wywoływaniu funkcji API zachodzi konieczność przekazania argumentu typu String w formacie Unicode. powinniśmy przed przekazaniem go do takiej funkcji, sprawdzić czy format tekstu jest zgodny z wymaganym formatem Unicode.
Windows API, w bibliotece "advapi32", zawiera funkcję IsTextUnicode służącą do testowania tekstu roboczego ....

10.

20.01.2018

• MultiByteToWideChar (...). Konwersja stron kodowych ASCII lub UTF8 na Unicode. •

Jeżeli tekst jest w innym formacie (innej stronie kodowej) niż  aktualna strona kodowa systemu Windows to aby go poprawnie wyświetlić powinniśmy tekst ten przekonwertować za pomocą funkcji API MultiByteToWideChar(...) na format Unicode (ciąg znaków UTF-16). System zapewni jego prawidłowe wyświetlenie, zgodnie z domyślną stroną kodową systemu Windows ....

11.

20.01.2018

• WideCharToMultiByte(...). Konwersja Unicode na stroną kodową ASCII lub UTF8. •

Funkcja WideCharToMultiByte(...) konwertuje ciąg znaków z formatu Unicode na jednobajtowy ciąg znaków zgodny z zadeklarowaną stroną kodową ASCII, lub na ciąg znaków w formacie wielobajtowym np. UTF8. W typowych „Accessowych” operacjach konwersja zazwyczaj nie stwarza problemów. Należy się jednak liczyć z pewnym kłopotami przy konwersji bardziej złożonych tekstów. Ciąg znaków w formacie Unicode może zawierać kilkadziesiąt tysięcy znaków, a ciąg znaków ASCII tylko 256 znaków ....

12.

09.01.2019

• Styl okna i inne dodatkowe informacje o oknie. Funkcja API GetWindowLong(...).  •

Funkcja GetWindowsLong(...) zwraca informacje o określonym oknie o uchwycie hwnd, jak również wartość z określonego przesunięcia do dodatkowej pamięci okna. Bardzo często używana jest z argumentem GWL_STYLE w celu uzyskania informacji o stylu okna (czy okno jest nieaktywne, jakie posiada obramowanie, czy ma pasek tytułowy, czy posiada pionowy i poziomy pasek przewijania (scrollbar), czy widoczny jest przycisk maksymalizacji i minimalizacji) ....

13.

10.01.2019

• Opisowy styl okien MS Access. Funkcja accGetWindowStyle(...) •

Podczas projektowania interfejsu bazy danych potrzebujemy niektórych danych o oknie głównym MS Access, bądź jego okna potomnych (dzieciach). Potrzebna nam może być informacja jakie okno posiada obramowanie, czy ma pasek tytułowy, i posiada pionowy i poziomy pasek przewijania (scrollbar), czy widoczny jest przycisk maksymalizacji i minimalizacji oraz jeszcze kilkanaście innych elementów stylu. Potrzebny nam może być także uchwyt okna rodzica, bądź uchwyt do instancji programu ....

14.

11.01.2019

• Szukanie okien potomnych w oknie nadrzędnym. Funkcja API FindWindowEx(...). •

Czasami potrzebujemy przeszukać okno nadrzędne (rodzica), by dowiedzieć się jakie okna potomne (dzieci) zawiera przeszukiwane okno (rodzica), a raczej jakie uchwyty mają szukane okna potomne. Mając uchwyt okna możemy pobrać za pomocą innych funkcji API interesujące nas właściwości okna. Funkcja FindWindowEx(...) umożliwia nam takie wyszukiwanie okien potomnych ....

15.

15.01.2018

• Paski przewijania okna roboczego MS Access. Funkcja accScrollBars(...) •

Chcąc programowo zmienić położenie formularza, a zwłaszcza jeżeli chcemy go dosunąć do prawej lub dolnej krawędzi okna roboczego musimy wiedzieć, czy paski przewijania są widoczne. Gdy formularz znajdzie się kilka pikseli pod np. pionowym paskiem wtedy  pojawi się poziomy pasek przewijania, który przesłoni elementy formularza np. Przyciski nawigacyjne ....

16.

29.01.2019

• Funkcje zarządzania kontekstem urządzenia HDC. Funkcja GetDeviceCaps(...) •

Kontekst urządzenia zawiera informację opisującą urządzenie wyjściowe (ekran, drukarka itp.). Przed wykonaniem operacji graficznych w kontekście urządzenia (DC) często musimy pobrać niektóre atrybuty (właściwości) kontekstu urządzenia. Atrybuty te możemy pobrać za pomocą funkcji GetDeviceCaps(...), która dla określonego kontekstu urządzenia o uchwycie hdc zwraca atrybut (właściwość) odnoszącą się do wartości określanej przez argument nIndex ....

17.

29.01.2019

• Funkcje zarządzania kontekstem urządzenia HDC. Funkcja CreateCompatibleDC(...) •

Jeżeli chcemy wykonać jakąkolwiek operację graficzną na bitmapie, musimy wcześniej utworzyć pamięciowy kontekst urządzenia (DC) zgodny z wzorcowym kontekstem urządzenia o uchwycie hdc. Pamięciowy kontekst urządzenia możemy utworzyć za pomocą funkcji CreateCompatibleDC(...), która ....

• Usuwanie pamięciowego kontekstu urządzenia. Funkcja DeleteDC(...) •

Po zakończeniu wykonywania operacji graficznych w pamięciowym kontekście urządzenia, musimy zwolnić ten kontekst (DC) za pomocą funkcji DeleteDC, która usuwa pamięciowy kontekst urządzenia (DC) o określonym uchwycie hdc ....

18.

29.01.2019

• Plik graficzny z zasobów dyskowych do pamięci. Funkcja LoadImage(...) •

Jeżeli chcemy załadować do pamięci bitmapę, ikonę lub kursor z zasobów systemowych (instancji modułu, biblioteki DLL, pliku wykonywalnego) lub skorzystać z zasobów dyskowych zawierających tego typu obrazy, powinniśmy skorzystać z funkcji LoadImage(...), która ....

19.

29.01.2019

• Wybór obiektu kontekstu urządzenia (DC). Funkcja SelectObject(...) •

Jeżeli chcemy wykonywać operacje na obiekcie w kontekście urządzenia (DC) musimy uaktywnić dany obiekt za pomocą funkcji SelectObject(...), która wybiera obiekt w określonym kontekście urządzenia, zwracając uchwyt aktywnego obiektu tego samego typu, który przestaje być wyróżnionym obiektem kontekstu urządzenia ....

• Usuwanie z pamięci nieużywanych obiektów. Funkcja DeleteObject(...) •

Po zakończeniu wykonywania operacji graficznych na roboczym obiekcie w pamięciowym kontekście urządzenia, musimy usunąć używany obiekt (logiczne pióro, pędzel, czcionkę, bitmapę, region lub paletę) aby zwolnić wszystkie zasoby systemowe związane z usuwanym obiektem. W tym celu powinniśmy skorzystać z funkcji DeleteObject(...), która ....

20.

29.01.2019

• Bitmapa kompatybilna z kontekstem urządzenia. Funkcja CreateCompatibleBitmap(...) •

Jeżeli chcemy wykonać jakąkolwiek operację graficzną na bitmapie, w utworzonym wcześniej pamięciowym kontekście urządzenia (DC) musimy bitmapę załadować z zasobów (najczęściej dyskowych) lub ją samemu utworzyć. Bitmapę możemy utworzyć za pomocą funkcji CreateCompatibleBitmap(...), która: ....

21.

29.01.2019

• Uchwyt kontekstu urządzenia roboczego obszaru okna. Funkcja GetDC(...) •

Jeżeli chcemy wykonać operację graficzną na roboczym obszarze okna Windows, musimy znać uchwyt kontekstu urządzenia (hdc) odnoszący się do obszaru roboczego okna. Uchwyt ten możemy pobrać za pomocą funkcji GetDC(...), która: ....

• Uchwyt kontekstu urządzenia całego obszaru okna. Funkcja GetWindowDC(...) •

Jeżeli chcemy wykonać jakąkolwiek operację graficzną na dowolnym obszarze okna Windows, łącznie z paskiem tytułowym, menu i paskami przewijania, musimy znać uchwyt kontekstu urządzenia (hdc) odnoszący się do całego obszaru okna. Uchwyt ten możemy pobrać za pomocą funkcji GetWindowDC(...) ....

• Zwalnianie kontekstu urządzenia (DC). Funkcja ReleaseDC(...) •

Po zakończeniu wykonywania operacji graficznych na dowolnym obszarze okna Windows, musimy zwolnić utworzony kontekst urządzenia (DC) za pomocą funkcji ReleaseDC(...), która: ....

22.

31.01.2019

• Niektóre właściwości obiektu graficznego. Funkcja GetObject(...) •

Operując na obiektach graficznych, musimy znać przynajmniej niektóre, istotne właściwości obiektu, by prawidłowo zrealizować zaplanowane operacje graficzne. Właściwości obiektu graficznego możemy pobrać za pomocą funkcji GetObject(), zwracającej w buforze lpObject informacje o obiekcie graficznym ....

23.

31.01.2019

• Informacje o pliku graficznym. Struktura. BITMAP •

Struktura BITMAP zawiera informacje o typie pliku graficznego, jego szerokości i wysokości, o liczbie warstw kolorów, liczbie bitów koloru na pojedynczy piksel oraz wskaźnik do tablicy bajtów obrazu bitmapy ....

24.

05.02.2019

• Kopiowanie jednego bloku pamięci do drugiego. Funkcja CopyMemory(...) •

Jeżeli chcemy szybko przenosić dane z jednego obszaru pamięci do drugiego obszaru pamięci, powinniśmy użyć funkcji CopyMemory(...), która kopiuje ciąg bajtów z jednego obszaru pamięci do drugiego obszaru tej pamięci. Źródłowy i docelowy obszar pamięci muszą być oddzielnymi obszarami (nie mogą nakładać się na siebie) ....

25.

12.02.2019

• Długość tytułu okna lub tekstu okna. Funkcja GetWindowText(...) •

Aby pobrać tytuł okna, powinniśmy znać długość tekstu, by przygotować wielkość bufora na tekst. Co prawda, możemy utworzyć nadmiarowy bufor, ale metoda taka może zakończyć się błędnym odczytem tekstu (jego ucięciem), jeżeli wielkość buforu okaże się jednak zbyt mała. Długość tekstu w oknie możemy pobrać za pomocą funkcji GetWindowTextLength ....

• Tytuł okna (tekst na pasku tytułowym okna. Funkcja GetWindowText(...) •

Jeżeli potrzebujemy np. w celach identyfikacyjnych znać tytuł okna (tekst na pasku tytułowym okna) lub w celach informacyjnych tekst, jaki znajduje się w okno edycyjnym lub kontrolce, to możemy go pobrać za pomocą funkcji GetWindowText(...), która: ....

26.

14.02.2019

• Szukaj okna z tekstem w tytule. Funkcja accFindWindowByTitle(...) •

Gdy zachodzi konieczność sprawdzenia, czy otwarte jest okno którego tytuł (tekst na pasku tytułowym okna) zawiera wzorcowy ciąg znaków, powinniśmy przeszukać wszystkie okna potomne (dzieci) okna nadrzędnego (rodzica) i pobrać ich tytuły celem porównania z wzorcem. ....