Quelltexte/ Codesnippets | | | | | KompilierenMarkierenSeparierenSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Scrollbalken (z.B. für Lautstärkeregler)
Bei windows XP prof. funktioniert die Einstellung Balken ohne Kästchen seltsamerweise nicht
die Breite muss mindestens 10 sein, sonst wird bei xp garnichts angezeigt.
Def GetSysColor(1) !USER32,GetSysColor
SETTRUECOLOR 1
DECLARE ENDE%,PROGBAR&,plus&,minus&,fertig&,show&,volume&,target&,progstep!,TarStep!,handicap!
WINDOWSTYLE 528 bei anderem Windowstyle Doppelklick abfangen
WINDOWTITLE Lautstärke
WINDOW SUB(DIV(%MAXX,2),DIV(135,2)),SUB(DIV(%MAXY,2),DIV(251,2))-135,251
CLS GETSYSCOLOR(15)
USEFONT MS Sans Serif,13,0,0,0,0
SETDIALOGFONT 1
decimals 2
LET plus&=@CREATEBUTTON(%HWND,+,48,13,20,20)
let ProgBar&=@control(msctls_progress32,,$50800005,55,48,10,60,%Hwnd,1,%HInstance) =vertikal, $50000001=horizontal
LET minus&=@CREATEBUTTON(%HWND,-,48,124,20,20)
let show&=@CreateEdit(%Hwnd,,40,160,40,20)
enablewindow show&,0
LET fertig&=@CREATEBUTTON(%HWND,&Ende,3,190,120,25)
let target&=255 =100% Ziellautstärke
let Progstep!=5 =5% auf oder ab bei jedem Klick
let TarStep!=mul(div(target&,100),Progstep!) Progressbar und Lautstärke angleichen
Vorgabe, z.B. wenn man bisherige Lautstärke aus ini liest
let volume&=125 Wert muss natürlich zu dem Prozentwert passen
IFnot gt(volume&,target&) or lt(volume&,0) Falls Ini von Hand geändert wurde
let handicap!=mul(div(100,target&),volume&) Vorgabe in Anzeige umrechnen
else
handicap!=100
let volume&=target&
endif
sendmessage(ProgBar&,$402,handicap!,0) auf Vorgabe setzten
settext show&,@str$(volume&)
WHILENOT ENDE%
WAITINPUT
If @EQU(%KEY,2)
LET ENDE%= 1
ELSEIF @GETFOCUS(plus&)
sendmessage(ProgBar&,$403,progstep!,0)
let volume&=volume&+TarStep!
case equ(volume&,target&) or gt(volume&,target&):let volume&=target&
settext show&,@str$(volume&)
ELSEIF @GETFOCUS(minus&)
Declare test$
Let test$=@str$(Tarstep!)
Let test$=right$(@Instr(.,test$),2)
sendmessage(ProgBar&,$403,-ProgStep!,0)
let volume&=volume&-TarStep!
Case gt(val(test$),0):let volume&=Volume&+1 Korrektur bei Werten hinter dem Komma
case equ(volume&,0) or lt(volume&,0):let volume&=0
settext show&,@str$(volume&)
ELSEIF @GETFOCUS(fertig&)
let Ende%=1
ENDIF
WEND
|
| | | | |
| | Michael W. | Aufgefrischt, aber da fehlt noch einiges. Window hat z.B. nur 3 Werte...
'Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
'Scrollbalken (z.B. für Lautstärkeregler)
'Bei windows XP prof. funktioniert die Einstellung Balken ohne Kästchen seltsamerweise nicht
'die Breite muss mindestens 10 sein, sonst wird bei xp garnichts angezeigt.
Def GetSysColor(1) !USER32,GetSysColor
Set("TrueColor",1)
DECLARE ENDE%, PROGBAR&, plus&, minus&, fertig&, show&, volume&, target&, progstep!, TarStep!, handicap!
WINDOWSTYLE 528'bei anderem Windowstyle Doppelklick abfangen
WINDOWTITLE Lautstärke
WINDOW SUB(DIV(%MAXX,2),DIV(135,2)),SUB(DIV(%MAXY,2),DIV(251,2))-135,251
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
Set("Decimals",2)
plus& = Create("Button",%HWND,"+",48,13,20,20)
ProgBar& = control("msctls_progress32",,$50800005,55,48,10,60,%Hwnd,1,%HInstance)'=vertikal, $50000001=horizontal
minus& = Create("Button",%HWND,"-",48,124,20,20)
show& = Create("Edit",%Hwnd,,40,160,40,20)
enablewindow show&,0
fertig& = Create("Button",%HWND,&Ende,3,190,120,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&)
Declare test$
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
|
| | | System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 30.04.2016 ▲ |
| |
| | p.specht
| Nochmal aufgefrischt. Da beim Ablegen hier alle Anführungszeichen verschwinden, habe ich sie zu § konvertiert. Also Rückkonvertierung nicht vergessen! Gruss
'*** 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 aufgefrischt; '2017-01 von P.Specht für XProfan 11.2a (32bit) unter Win7-64 home SP1 lauffähig gemacht. 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
|
| | | Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 03.01.2017 ▲ |
| |
|
Zum QuelltextThemenoptionen | 5.387 Betrachtungen |
ThemeninformationenDieses Thema hat 3 Teilnehmer: |