Folyamat kijelzés (tprogressbar) Delphi, Delphi, Delphi komponensek Delphi forrás

eljárás TFormi.ButtonlClick (Sender: TObj ECT); var

i: integer; kezdődnek a i: = 0-tól 20 do kezdeni

// akkor kell számításokat

Kiszámítása után // az aktuális állapot ProgressBarl.Position: = ProgressBarl.Position + 5; Sleep (100); // Do késés 100 milliszekundum végén;

Ebben az esetben a ciklus kezdődik 0-tól 20. minden szakaszában a ciklus Folyamatsáv pozíció nőtt 5, és a huszadik lépésben, a hurok egyenlő a maximális znacheniyu- 100. A ciklust is be van állítva, hogy 100 ms késleltetéssel a mi szalag nem csúszott túl gyorsan, és akkor még látni az illúziót számítás. nem fogja késleltetni szükséges valós példákat, mert ha a kiszámítását végzik olyan gyorsan, hogy a felhasználó nem is látja a mozgását a csúszka, akkor nincs értelme létrehozni az előrehaladás.

A fenti példa nem elég univerzális, mert ahhoz, hogy tudtuk előre növekményének öt egység minden lépésre. Ellenkező esetben két megoldás van.

  • Változás ingatlan Folyamatsáv alkatrész max 20, és minden egyes lépésnél megnöveljük az egyetlen. Ez egy nagyon kényelmes módja, mert a Folyamatsáv helyzetben változik 0-tól 20 A ciklus is érvényes ebben a tartományban, úgy, hogy a minta lehet egyszerűsíteni, és mutatni: lista:

eljárás TFormi.ButtonlClick (Sender: TObj ECT); var

i: integer; kezdődnek a i: = 0-tól 20 do kezdeni

// akkor kell számításokat

// Miután a számítás azt mutatja, a jelenlegi állapot

Sleep (100); // Do késés 100 milliszekundum végén;

Ebben az esetben nem kell, hogy a növekmény a Folyamatsáv, hanem azonnal rendeljen értéket az ingatlan helyzetét i, mert az értéke a pozíció és az i értéke megváltozik egy sor 0-20.

A második lehetőség, hogy kiszámítja a relatív pozíciója állapot Folyamatsáv. Ebben az esetben Folyamatsáv helyzetét meg kell változtatni 0-100, és ezeket az értékeket kell tekinteni, mint egy százalék. Ezt követően, a százalékos aránya a szám minden egyes iteráció a hurok. Ne aggódj, ez a számítás nagyon egyszerű, és nem nehéz megmunkálni. Néha ez a módszer sokkal kényelmesebb:

eljárás TFormi.ButtonlClick (Sender: TObj ECT); var

i: = 0-tól 20 do

// akkor kell számításokat

Kiszámítása után // aktuális állapotát ProgressBarl.Position: = round (I / 20 * 100); Sleep (100); // Do késés 100 milliszekundum végén;

Ebben a példában, a pozíciót képlettel számítjuk ki átalakítani számokat százalékban, azaz. E. Aktuális érték osztva a maximális és szorozva 100 (ebben az esetben 20 És, és szorozzuk 100-zal). Az E számítás eredménye kell kerekíteni, mert nem volt részlege, akkor a végeredmény mindenképpen venni, mint egy tört szám között kiszámítási folyamat, akkor is, ha az eredmény egyértelműen egész szám lehet.

Az utóbbi esetben, van némi hiba miatt az elválasztó és kerekítési műveleteket, de a valóságban észre ezt a hibát nem lehet, mert kevesebb, mint fél százalék. Mindegy, ha a visszavonás menetrend mindig hibák miatt méretezés.

Segítség a projekt! Küld erről az oldalról: