Pasek postępu

dział ogólny

Pasek postępu

Nowy postprzez wargo » czwartek, 17 lipca 2008, 14:20

Jak zrobić aby pasek postępu poruszał się tak szybko aą nie zakończy sie proces.
Jak zrobić aby się poruszał to wiem.
Ostatnio edytowano czwartek, 26 lutego 2009, 22:31 przez wargo, łącznie edytowano 1 raz
Avatar użytkownika
wargo
Mądrosław
Mądrosław
 
Posty: 389
Dołączył(a): niedziela, 13 lipca 2008, 16:44
Podziękował : 12
Otrzymał podziękowań: 3
System operacyjny: Windows 7
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 6259515
    NieznanyNieznana

Re: postęp

Nowy postprzez Laik » czwartek, 17 lipca 2008, 14:33

Avatar użytkownika
Laik
 
    NieznanyNieznana

Re: postęp

Nowy postprzez wargo » niedziela, 3 sierpnia 2008, 13:57

To chyba nie to.
Avatar użytkownika
wargo
Mądrosław
Mądrosław
 
Posty: 389
Dołączył(a): niedziela, 13 lipca 2008, 16:44
Podziękował : 12
Otrzymał podziękowań: 3
System operacyjny: Windows 7
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 6259515
    NieznanyNieznana

Re: postęp

Nowy postprzez Cyfrowy Baron » niedziela, 3 sierpnia 2008, 14:35

... a co?!?
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4731
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 445
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Pasek postępu

Nowy postprzez wargo » niedziela, 3 sierpnia 2008, 15:08

O to żeby pasek postępu wiedział jak długo potrwa wykonywanie i jakby co przyspieszał albo zwalniał.
Avatar użytkownika
wargo
Mądrosław
Mądrosław
 
Posty: 389
Dołączył(a): niedziela, 13 lipca 2008, 16:44
Podziękował : 12
Otrzymał podziękowań: 3
System operacyjny: Windows 7
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 6259515
    NieznanyNieznana

Re: Pasek postępu

Nowy postprzez Cyfrowy Baron » niedziela, 3 sierpnia 2008, 15:41

A takiego paska postępu to jeszcze nie wymyślono. Wszystko zależy od tego co ma reprezentować pasek postępu. Sam pasek ni posiada żadnego mechanizmu który umożliwiałby mu sprawdzanie ile potrwa jeszcze operacja i kiedy się zakończy. Do takich celów należy stworzyć własny kod i to ten kod ma sprawdzać ile potrwa operacja i kiedy się zakończy, a potem steruje odpowiednio paskiem postępu. Do złożonych operacji jak np. kopiowanie plików potrzebne są zaawansowane algorytmy, ale i tutaj nie ma gotowych rozwiązań, gdyż zasada działania takiego algorytmu musi być uzależniona od sposobu kopiowania pliku, poza tym nigdy nie jest to dokładne, wystarczy popatrzeć na kopiowanie plików przez Exploratora Windows, tam też ten czas kńca operacji skacze i zmienia się dynamicznie, gdyż składa się na to wiele czynników...
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4731
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 445
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Pasek postępu

Nowy postprzez wargo » niedziela, 3 sierpnia 2008, 15:50

Aha, ale mysle że sleep może zwolnic, jednak jak przyspieszyć?
Avatar użytkownika
wargo
Mądrosław
Mądrosław
 
Posty: 389
Dołączył(a): niedziela, 13 lipca 2008, 16:44
Podziękował : 12
Otrzymał podziękowań: 3
System operacyjny: Windows 7
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 6259515
    NieznanyNieznana

Re: Pasek postępu

Nowy postprzez riddyk » niedziela, 3 sierpnia 2008, 16:28

sleep powoduje że aplikacja na ten czas zamiera, jeżeli jest to aplikacja wielowątkowa to stosowanie sleep jest w niektórych wypadkach dopuszczalne.
google to twój przyjaciel, pielęgnuj tą przyjaźń, rozmawiajcie, zadawaj mu pytania, na pewno Cię nie zawiedzie.
Avatar użytkownika
riddyk
Bladawiec
Bladawiec
 
Posty: 20
Dołączył(a): niedziela, 20 lipca 2008, 17:27
Lokalizacja: Gliwice
Podziękował : 0
Otrzymał podziękowań: 0
    NieznanyNieznana

Re: Pasek postępu

Nowy postprzez Ho88it » poniedziałek, 11 sierpnia 2008, 13:46

Chłopie, jak nie znasz orientacyjnej końcowej wartości, przy której program zakończy pracę to poco ci taki wskaźnik postępu który się jąka.. To tak jak ty byś siedział przed monitorem i mówił sobie w różnych odstępach czasu TERAZ.. TERAZ... TERAZ,TERAZ.. aż trafisz przez przypadek. Tym się zajmuje statystyka :D tak poza tym.

Spróbuj rozwiązać to proste dodawanie:

Kod: Zaznacz cały
  0+x=y

  0 - to twoja wartość początkowa w pasku
  x - liczba o ile zwiększy się postęp paska
  y - to co chcesz uzyskać

Nie da się tego zrobić tak jak to sobie założyłeś z doskonałą dokładnością.

Rozwiązanie A (matematyczne):
1.Ustal wartość końcową,
2.Ustal co ile kroków ma być widoczny postęp paska (jak ustawisz 100, a proces zakończy się przy 99 to pasek dalej będzie wyzerowany),
3.Uzależnij wartość postępu paska, od danych jakie monitorujesz (np. obecna waga pliku,krok pętli)

Rozwiązanie B (statystyczne):

1.0 Wprowadź 2 zmienne tymczasowe najlepiej typu float, ja je nazwę TEMP1 = 0 i temp2 = 0,

[i1]<-- to są kolejne kroki pętli.
1.1 Pobierz do zmiennej TEMP1 o ile nastąpił przyrost danych,
2.1 Dodaj tyle do paska,

[i2]
1.2 Pobierz do zmiennej temp2 o ile nastąpił przyrost danych
2.2 Wyciągnij średnią z TEMP1 i temp2,
3.2 Zapisz wynik do TEMP1
4.2 Dodaj aktualną wartość TEMP1 do paska.
5.2 Jeżeli pasek osiągnie maksymalny rozmiar to dodaj do wartości maksymalnej np.1/6 dotychczas otrzymanych danych (bo ciągle jeszcze napływają, a gdzieś trzeba to pokazać).
[ixx]<-- tak jak [i2]

Tylko takie sposoby są możliwe w rozwiązaniu twojego dylematu. Rozwiązanie B jest dobre dla dużych ilości danych, bo wartość przyrostu się uśredni i postęp będzie prawie liniowy, a że nie znasz nigdy wielkości całego pakietu danych to nie można oczekiwać cudów w wierności obrazowania postępu procesu.
Internet Explorer to program, który służy do przeglądania internetu z twojego komputera i na odwrót.
Avatar użytkownika
Ho88it
Homos antropiczny
Homos antropiczny
 
Posty: 63
Dołączył(a): niedziela, 10 sierpnia 2008, 20:53
Podziękował : 2
Otrzymał podziękowań: 0
System operacyjny: brak systemu
Kompilator: Visual Studio 2008
Visual Studio 2010
Gadu Gadu: 0
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 2 gości

cron