| |
|
|
p.specht
| *** Scrollbalken, z.B. für Lautstärkeregler *** Die Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung von Dietmar Horn(+) in die Programm-Babyklappe auf XProfan.com abgelegt und von M.Wodrich am 30.04.2016 auf XProfan.net aufgefrischt; dort 2017-01 von P.Specht für XProfan 11 ab Win7-64 adaptiert.
Def GetSysColor(1) !"USER32","GetSysColor":Set("TrueColor",1)
DECLARE ENDE%,PROGBAR&,plus&,minus&,fertig&,show&,volume&,target&,\
progstep!,TarStep!,handicap!,test$,BarBreite&
WINDOWSTYLE 528'bei anderem Windowstyle Doppelklick abfangen
WINDOWTITLE "Stärke":WINDOW (%MAXX\2-135\2),(%MAXY\2-251\2) - 135,251
CLS GETSYSCOLOR(15):USEFONT "MS Sans Serif",13,0,0,0,0:SETDIALOGFONT 1:Set("Decimals",2)
BarBreite&=18'25 '10
ProgBar& = control(\
"msctls_progress32","",$50800005,55-Barbreite&/3, 48,Barbreite&,60,%Hwnd,1,%HInstance)
' ^^^^ =vertikal, $50000001 = horizontal
minus& = Create("Button",%HWND,"-",48,124,20,20)
plus& = Create("Button",%HWND,"+",48,13,20,20)
show& = Create("Edit",%Hwnd,"",40,160,40,20)
enablewindow show&,0
fertig& = Create("Button",%HWND,"&Ende",1,194,40,25)
target& = 255'=100% Ziellautstärke
Progstep! = 5'=5% auf oder ab bei jedem Klick
TarStep! = target& / 100 * Progstep!'Progressbar und Lautstärke angleichen
'Vorgabe, z.B. wenn man bisherige Lautstärke aus ini liest:
volume& = 125'Wert muss natürlich zu dem Prozentwert passen
IFnot (volume& > target&) or (volume& < 0)'Falls Ini von Hand geändert wurde
handicap! = 100 / target& * volume&'Vorgabe in Anzeige umrechnen
else
handicap! = 100:volume& = target&
endif
sendmessage(ProgBar&,$402,handicap!,0)'auf Vorgabe setzen
settext show&,str$(volume&)
WHILENOT ENDE%
WAITINPUT
If %KEY = 2:ENDE% = 1
ELSEIF GETFOCUS(plus&)
sendmessage(ProgBar&,$403,progstep!,0)
volume& = volume& + TarStep!
case (volume& = target&) or (volume& > target&) : volume& = target&
settext show&,str$(volume&)
ELSEIF GETFOCUS(minus&)
test$ = str$(Tarstep!)
test$ = right$(Instr(".",test$),2)
sendmessage(ProgBar&, $403, -ProgStep!, 0)
volume& = volume& - TarStep!
Case (val(test$) > 0) : volume& = Volume& + 1'Korrektur bei Werten hinter dem Komma
case (volume& <= 0) : volume& = 0
settext show&,str$(volume&)
ELSEIF GETFOCUS(fertig&):Ende% = 1
ENDIF
EndWhile
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 24.05.2021 ▲ |
|
|
|