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?