Warsztat: Własny ProgressBar (pasek zaawansowania)

Bragressbar.zip
Autor: Zbigniew Bratko (brazby@poczta.onet.pl)
Baza w formacie MsAccess 97
127kB, 7 października 2001

Opis problemu:

Jako opis problemu zamieszczę fragment postu Zbigniewa:

Bragressbar powstał w oparciu o wskaźnik w BraDefrag, a bezpośrednim powodem był brak możliwości prostego wyświetlenia systemowego wskaźnika zaawansowania dla dowolnych wartości (ujemnych lub przechodzących przez zero).

Rozwiązanie:

Bragressbar autorstwa Zbigniewa Bratko wyświetla wskaźnik zaawansowania dla pętli o dowolnym zakresie i kroku. A ponadto zgodnie z tym, co pisze Zbyszek:

Bragressbar pokazuje zaawansowanie procesu dla poruszania się po rekordsecie - dowolny kierunek i skok. Dla poruszania się po pętli mierzony jest czas wykonywania operacji, w zależności od sposobu wywołania wskaźnika. 1. Poprzez Public UpdateBrameter, która wywołuje UpdateWskaznik w frmWskaznik. 2. Poprzez wywołanie funkcji UpdateWskaznik bezpośrednio z frmWskaznik. 3. Poprzez wywołanie UruchomZfrmWskaznik w frmWskaznik, która wywołuje UpdateWskaznik bezpośrednio w module klasy. Funkcja UpdateWskaznik jest wywoływana w każdym kroku pętli i stąd biorą się różnice w szybkości dla dużej ilości kroków (dla bardzo małej również). Szybkości wykonywania pętli nie można porównywać z szybkością wykonywania przechodzenia po rekordsecie, gdyż tam specjalnie wydłużyłem czas, aby było widać pasek postępu. W miarę możliwości postarałem się przechwycić błędy wynikające ze złych parametrów pętli, jak również niewłaściwego wywoływania wskaźnika.

Uzupełnienie:

Alternatywne rozwiązanie powyższego problemu wyszukał Adam Liberacki na stronach MSDN:

http://msdn.microsoft.com/library/en-us/dnacbk02/html/ODC_CookbookChapter9.asp?