Progress bar

Alles over het toepassen van API en DLL's in Liberty BASIC

Moderator: anthonio

Progress bar

Berichtdoor anthonio » wo aug 13, 2008 11:53 am

Een simpele progress bar berust op een API-call.
Oogt mooi en kan altijd van pas komen.
Gevonden tussen men oude notities, geloof dat het van het LB forum komt maar ben niet zeker.

Code: Selecteer alles
Global PBM.SETSTUP : PBM.SETSTEP = 1028
Global PBM.STEPIT : PBM.STEPIT = 1029
Global PBM.SETPOS : PBM.SETPOS = (_WM_USER)+2

BackgroundColor$ = "Black"

WindowWidth = 250
WindowHeight = 150

open "window" for window as #1

#1, "trapclose [quitR]"
hWnd = hWnd(#1)
hProg = CreateProgressBar(hWnd, 20, 60, 200, 25)

[Repeat]
timer 0
For i = 0 to 100
    timer 100, [Next]
    wait
    [Next]
    timer 0
    call SetPos hProg, i 'Deze lijn zorgt ervoor dat de progress balk vooruitloopt
    print i
next i
wait

[quitR]
close #1
end

'Progressbar function
Function CreateProgressBar(hWnd, x, y, w, h)
extStyle = _WS_EX_CLIENTEDGE
progStyle = _WS_CHILD or _WS_VISIBLE

CallDLL #user32, "CreateWindowExA", _
extStyle as long,_
"msctls_progress32" as ptr,_
"" as ptr,_
progStyle as long,_
x as long,_
y as long,_
w as long,_
h as long,_
hWnd as long,_
0 as long,_
hInst as long,_
CreateProgressBar as long
End Function

Sub SetPos hProg, num
CallDLL #user32, "SendMessageA",_
hProg as long,_
PBM.SETPOS as long,_
num as long,_
0 as long,_
ret as long
End Sub
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Keer terug naar API/DLL

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron