Deutsch
Quelltexte/ Codesnippets

Lautstärkeregler Scrollbalken

 

KompilierenMarkierenSeparieren
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
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

 
16.07.2007  
 




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 Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

5.346 Betrachtungen

Unbenanntvor 0 min.
Gast.081503.10.2024
Member 862464112.05.2024
H.Brill20.05.2023
p.specht18.11.2021
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

p.specht (1x)
Michael W. (1x)
unbekannt (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie