TrackbarGadget einen Farbe geben ?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

TrackbarGadget einen Farbe geben ?

Beitrag von X360 Andy »

Mit welchen befehl kann ich einer TrackbarGadget eine Farbe geben ?
MIt SetGadgetItemColor , SetGadgetColor gehts nicht, den dort wird mir nichts angezeigt....

Hätte jemand einen Tipp ? / Befehl / Beispiel .. ?

Mfg
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Re: TrackbarGadget einen Farbe geben ?

Beitrag von Fluid Byte »

X360 Andy hat geschrieben:Hätte jemand einen Tipp ?
Ja, freunde dich mit der Boardsuche an.

http://www.purebasic.fr/german/viewtopic.php?t=15542
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Danke.....
Aber wie mache ich es mit 3 Trackbar´s ?
Hab schon verschiedene Sachen versucht = entweder bekomme ich Fehlermeldungen oder eben NICHTS xD
Weil wenn ich z.b 2mal Case drin habe bekommt nur die 2te Trackbar "Farbe"
Wäre nett wenn mir jemand kurz "helfen" könnte

Code: Alles auswählen

Global  purple
purple=CreateSolidBrush_(RGB(200,0,0))

Enumeration
#Window_0
EndEnumeration

Enumeration
#trackbar
EndEnumeration

Procedure Callback(WindowID,Message,wParam,lParam)
  Result = #PB_ProcessPureBasicEvents
  Select Message
  Case #WM_CTLCOLORSTATIC
    Select lParam
    Case GadgetID(#trackbar)
      SetBkMode_(wParam,#TRANSPARENT)
      Result = purple
    EndSelect
  EndSelect
  ProcedureReturn Result
EndProcedure

hWnd = OpenWindow(1,0,0,150,50,"Beispiel", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)

If hWnd
  SetForegroundWindow_(hWnd)
  SetWindowCallback(@Callback())
 
If CreateGadgetList(WindowID(1))
  TrackBarGadget(#trackbar,10,10,100,25,0,100)
  ResizeGadget(#trackbar,#PB_Ignore,#PB_Ignore,130,19)
   
    Repeat
      Event = WaitWindowEvent()
      If Event = #PB_Event_Gadget
        GadgetID = EventGadget()
      EndIf
    Until Event = #PB_Event_CloseWindow
EndIf
EndIf
End 
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

bevor Du weiter probierst:

Code: Alles auswählen

[...]
purple=CreateSolidBrush_(RGB(200,0,0))
[...]
Das ist WinAPI-Aufruf (erkennbar an dem Unterstrich hinter dem Befehl)
und den kann Deine Demo-Version nicht ausführen.

Grüße ... Kiffi
a²+b²=mc²
CNESM
Beiträge: 311
Registriert: 29.08.2004 15:16
Kontaktdaten:

Beitrag von CNESM »

Code: Alles auswählen

Global  purple 
purple=CreateSolidBrush_(RGB(200,0,0)) 

Enumeration 
#Window_0 
EndEnumeration 

Enumeration 
#trackbar 
#trackbar1
#trackbar2
EndEnumeration 

Procedure Callback(WindowID,Message,wParam,lParam) 
  Result = #PB_ProcessPureBasicEvents 
  Select Message 
  Case #WM_CTLCOLORSTATIC 
    If lParam 
      SetBkMode_(wParam,#TRANSPARENT) 
      Result = purple 
    EndIf 
  EndSelect 
  ProcedureReturn Result 
EndProcedure 

hWnd = OpenWindow(1,0,0,150,150,"Beispiel", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered) 

If hWnd 
  SetForegroundWindow_(hWnd) 
  SetWindowCallback(@Callback()) 
  
If CreateGadgetList(WindowID(1)) 
  TrackBarGadget(#trackbar,10,10,100,25,0,100) 
  ResizeGadget(#trackbar,#PB_Ignore,#PB_Ignore,130,19) 
  
  TrackBarGadget(#trackbar1,10,50,100,25,0,100) 
  ResizeGadget(#trackbar1,#PB_Ignore,#PB_Ignore,130,19) 
  
  TrackBarGadget(#trackbar2,10,90,100,25,0,100) 
  ResizeGadget(#trackbar2,#PB_Ignore,#PB_Ignore,130,19) 
    
    Repeat 
      Event = WaitWindowEvent() 
      If Event = #PB_Event_Gadget 
        GadgetID = EventGadget() 
      EndIf 
    Until Event = #PB_Event_CloseWindow 
EndIf 
EndIf 
End  
Zuletzt geändert von CNESM am 20.08.2008 15:41, insgesamt 1-mal geändert.
CNESM
Beiträge: 311
Registriert: 29.08.2004 15:16
Kontaktdaten:

Beitrag von CNESM »

Oder verschiedene Farben:

Code: Alles auswählen

Global  purple,color1,color2
purple=CreateSolidBrush_(RGB(200,0,0)) 
color1=CreateSolidBrush_(RGB(0,200,0)) 
Color2=CreateSolidBrush_(RGB(100,150,20)) 

Enumeration 
#Window_0 
EndEnumeration 

Enumeration 
#trackbar 
#trackbar1
#trackbar2
EndEnumeration 

Procedure Callback(WindowID,Message,wParam,lParam) 
  Result = #PB_ProcessPureBasicEvents 
  Select Message 
  Case #WM_CTLCOLORSTATIC 
    Select lParam 
      Case GadgetID(#trackbar) 
        SetBkMode_(wParam,#TRANSPARENT) 
        Result = purple 
      Case GadgetID(#trackbar1) 
        SetBkMode_(wParam,#TRANSPARENT) 
        Result = color1 
      Case GadgetID(#trackbar2) 
        SetBkMode_(wParam,#TRANSPARENT) 
        Result = color2
      EndSelect 
  EndSelect 
  ProcedureReturn Result 
EndProcedure 

hWnd = OpenWindow(1,0,0,150,150,"Beispiel", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered) 

If hWnd 
  SetForegroundWindow_(hWnd) 
  SetWindowCallback(@Callback()) 
  
If CreateGadgetList(WindowID(1)) 
  TrackBarGadget(#trackbar,10,10,100,25,0,100) 
  ResizeGadget(#trackbar,#PB_Ignore,#PB_Ignore,130,19) 
  
  TrackBarGadget(#trackbar1,10,50,100,25,0,100) 
  ResizeGadget(#trackbar1,#PB_Ignore,#PB_Ignore,130,19) 
  
  TrackBarGadget(#trackbar2,10,90,100,25,0,100) 
  ResizeGadget(#trackbar2,#PB_Ignore,#PB_Ignore,130,19) 
    
    Repeat 
      Event = WaitWindowEvent() 
      If Event = #PB_Event_Gadget 
        GadgetID = EventGadget() 
      EndIf 
    Until Event = #PB_Event_CloseWindow 
EndIf 
EndIf 
End 
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@CNESM:
X360 Andy's Signatur hat geschrieben:_________________
PB Demo....
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Kaeru Gaman hat geschrieben:@CNESM:
X360 Andy's Signatur hat geschrieben:_________________
PB Demo....
Geht alles (dürfte daran liegen da ich die "Vollversion" habe...)
Ich ändere mal lieber meine Sig :lol:

Ich bastel grad noch buttons dann "zeige" ich kurz...

Danke aber schonmal
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Hier mein kleiner Code .....
Das is en Mp3Player:lol: :lol:

Code: Alles auswählen

Enumeration 0 
  #MP3_Unknown 
  #MP3_Stopped 
  #MP3_Playing 
  #MP3_Paused 
EndEnumeration 
Procedure MP3_GetStatus(Nb) 
  Result=#MP3_Unknown 
  a$=Space(#MAX_PATH) 
  i=mciSendString_("status MP3_"+Str(Nb)+" mode",@a$,#MAX_PATH,0) 
  If i=0 
    Debug a$ 
    Select a$ 
      Case "stopped":Result=#MP3_Stopped 
      Case "playing":Result=#MP3_Playing 
      Case "paused":Result=#MP3_Paused 
    EndSelect 
  EndIf 
  ProcedureReturn Result 
EndProcedure 
Procedure MP3_Load(Nb,file.s) 
  i=mciSendString_("OPEN "+Chr(34)+file+Chr(34)+" Type MPEGVIDEO ALIAS MP3_"+Str(Nb),0,0,0) 
  If i=0 
    ProcedureReturn #True 
  Else 
    ProcedureReturn #False 
  EndIf 
EndProcedure 
Procedure MP3_Play(Nb) 
  i=mciSendString_("play MP3_"+Str(Nb),0,0,0) 
  ProcedureReturn i 
EndProcedure 
Procedure MP3_PlayStart(Nb) 
  i=mciSendString_("play MP3_"+Str(Nb)+" from "+Str(0),0,0,0) 
  ProcedureReturn i 
EndProcedure 
Procedure MP3_PlayPart(Nb,Start,endPos) 
  i=mciSendString_("play MP3_"+Str(Nb)+" from "+Str(Start)+" to "+Str(endPos),0,0,0) 
  ProcedureReturn i 
EndProcedure 
Procedure MP3_Pause(Nb) 
  i=mciSendString_("pause MP3_"+Str(Nb),0,0,0) 
  ProcedureReturn i 
EndProcedure 
Procedure MP3_Resume(Nb) 
  i=mciSendString_("resume MP3_"+Str(Nb),0,0,0) 
  ProcedureReturn i 
EndProcedure 
Procedure MP3_Stop(Nb) 
  i=mciSendString_("stop MP3_"+Str(Nb),0,0,0) 
  ProcedureReturn i 
EndProcedure 
Procedure MP3_Free(Nb) 
  i=mciSendString_("close MP3_"+Str(Nb),0,0,0) 
  ProcedureReturn i 
EndProcedure 
Procedure MP3_SetVolume(Nb,volume) 
  i=mciSendString_("SetAudio MP3_"+Str(Nb)+" volume to "+Str(volume),0,0,0) 
  ProcedureReturn i 
EndProcedure 
Procedure MP3_GetVolume(Nb) 
  a$=Space(#MAX_PATH) 
  i=mciSendString_("status MP3_"+Str(Nb)+" volume",@a$,#MAX_PATH,0) 
  ProcedureReturn Val(a$) 
EndProcedure 
Procedure MP3_SetSpeed(Nb,Tempo) 
  i=mciSendString_("set MP3_"+Str(Nb)+" Speed "+Str(Tempo),0,0,0) 
  ProcedureReturn i 
EndProcedure 
Procedure MP3_GetSpeed(Nb) 
  a$=Space(#MAX_PATH) 
  i=mciSendString_("status MP3_"+Str(Nb)+" Speed",@a$,#MAX_PATH,0) 
  ProcedureReturn Val(a$) 
EndProcedure 
Procedure MP3_GetLength(Nb) 
  a$=Space(#MAX_PATH) 
  i=mciSendString_("status MP3_"+Str(Nb)+" length",@a$,#MAX_PATH,0) 
  ProcedureReturn Val(a$) 
EndProcedure 
Procedure MP3_GetPosition(Nb) 
  a$=Space(#MAX_PATH) 
  i=mciSendString_("status MP3_"+Str(Nb)+" position",@a$,#MAX_PATH,0) 
  ProcedureReturn Val(a$) 
EndProcedure 
Procedure MP3_Seek(Nb,pos) 
  i=mciSendString_("Seek MP3_"+Str(Nb)+" to "+Str(pos),0,0,0) 
  ProcedureReturn i 
EndProcedure 
Procedure.s MP3_TimeString(Time) 
  Time/1000 
  sek=Time%60:Time/60 
  min=Time%60:Time/60 
  ProcedureReturn RSet(Str(Time),2,"0")+":"+RSet(Str(min),2,"0")+":"+RSet(Str(sek),2,"0") 
EndProcedure 
Enumeration 1 
  #gadget_File 
  #Gadget_VolumeTxt 
  #Gadget_Volume 
  #Gadget_SpeedTxt 
  #Gadget_Speed 
  #Gadget_PositionTxt 
  #Gadget_Position 
  #Gadget_Load 
  #Gadget_Play 
  #Gadget_Stop 
  #Gadget_Pause 
  #Gadget_Resume 
  #Gadget_Exit 
  #Hyperlink
EndEnumeration 



Global purple,color1,color2
purple=CreateSolidBrush_(RGB(0,0,0))
color1=CreateSolidBrush_(RGB(0,0,0))
Color2=CreateSolidBrush_(RGB(0,0,0))




Procedure Callback(WindowID,Message,wParam,lParam)
  Result = #PB_ProcessPureBasicEvents
  Select Message
  Case #WM_CTLCOLORSTATIC
    Select lParam
      Case GadgetID(#Gadget_Volume)
        SetBkMode_(wParam,#TRANSPARENT)
        Result = purple
      Case GadgetID(#Gadget_Speed)
        SetBkMode_(wParam,#TRANSPARENT)
        Result = color1
      Case GadgetID(#Gadget_Position)
        SetBkMode_(wParam,#TRANSPARENT)
        Result = color2
      EndSelect
  EndSelect
  ProcedureReturn Result
EndProcedure 


Procedure COLOR_BUTTON(id.l,x.l,y.l,w.l,h.l,color.l,textcolor.l,text.s) 
jezaber: 
box.l = CreateImage(id, w,h) 
StartDrawing(ImageOutput(id)) 
    
        If TextWidth(text) <= w 
            posx.l = w/2 -TextWidth(text) / 2 
        Else 
            w = TextWidth(text) + 20 
            StopDrawing() 
            Goto jezaber 
        EndIf 
        
        posy.l=h/2-TextWidth("Xii")/2 
    
    Box(0, 0,w, h,color) 
    DrawingMode(1) 
    FrontColor(RGB(Red(textcolor),Green(textcolor),Blue(textcolor))) 
    DrawText(posx, posy,text) 
    StopDrawing() 
    ButtonImageGadget(id, x, y, w, h,box) 
EndProcedure 



Procedure SetVol(x) 
  SetGadgetText(#Gadget_VolumeTxt,"Volume:"+Str(x)) 
  SetGadgetState(#Gadget_Volume,x) 
EndProcedure 
Procedure SetSpeed(x) 
  SetGadgetText(#Gadget_SpeedTxt,"Speed:"+Str(x)) 
  SetGadgetState(#Gadget_Speed,x) 
EndProcedure 
Procedure SetPosition(x,max) 
  SetGadgetText(#Gadget_PositionTxt,"Position:"+MP3_TimeString(x)+" : "+MP3_TimeString(max)) 
  If max>0 
    SetGadgetState(#Gadget_Position,x*1000/max) 
  Else 
    SetGadgetState(#Gadget_Position,0) 
  EndIf 
EndProcedure 



Macro TransparentesFenster(Window, Sichtbarkeit=255)
   SetWindowLong_(WindowID(Window), #GWL_EXSTYLE, GetWindowLong_(WindowID(Window),#GWL_EXSTYLE)|#WS_EX_LAYERED)
   SetLayeredWindowAttributes_(WindowID(Window), 0, Sichtbarkeit, #LWA_ALPHA)
EndMacro
Procedure TransparenzAnimation(WindowID)
   Protected n, opacity=255
   If OSVersion() < #PB_OS_Windows_2000
      ProcedureReturn
   EndIf
   While IsWindow(WindowID)
      If WindowMouseX(WindowID) <> -1 And WindowMouseY(WindowID) <> -1 And GetForegroundWindow_() = WindowID(WindowID)
         If opacity < 255
            opacity+16
            If opacity > 255
               opacity=255
            EndIf
            TransparentesFenster(WindowID, opacity)
            Delay(35)
         EndIf
         Continue
      Else
         If opacity > 118
            opacity-16
            If opacity < 1
               opacity=1
            EndIf
            TransparentesFenster(WindowID, opacity)
            Delay(35)
         EndIf
         Continue
      EndIf
      Delay(1)
   Wend
EndProcedure


If OpenWindow(0, 100, 200, 310,310, "Mp3Player", #PB_Window_MinimizeGadget) 

CreateThread(@TransparenzAnimation(), 0)
SetWindowCallback(@Callback())

  If CreateGadgetList(WindowID(0)) 
    top=5 
    
    TextGadget    (#gadget_File       ,5,top,300,20,"",#PB_Text_Center):top+25 
    SetGadgetColor(#gadget_File       ,#PB_Gadget_BackColor, RGB(0,0,0))  
    SetGadgetColor(#gadget_File       ,#PB_Gadget_FrontColor, RGB(0,255,0)) 
      
    
    TextGadget    (#Gadget_VolumeTxt   ,5,top,300,20,"Lautstärke"):top+20 
    TrackBarGadget(#Gadget_Volume      ,5,top,300,25,0,100):top+30 
    GadgetToolTip(#Gadget_Volume       , "Hiermit kannst du die Lautstärke ändern der Standart Wert ist 100")
    
    TextGadget    (#Gadget_SpeedTxt       ,5,top,300,20,"Geschwindigkeit"):top+20 
    TrackBarGadget(#Gadget_Speed          ,5,top,300,25,0,200,#PB_TrackBar_Ticks):top+30 
    GadgetToolTip(#Gadget_Speed           , "Hiermit kannst du die Geschwindigkeit ändern der Standart Wert ist 100")
    
    TextGadget    (#Gadget_PositionTxt   ,5,top,300,20,"Position"):top+20 
    TrackBarGadget(#Gadget_Position      ,5,top,300,25,0,1000):top+38 

    SetGadgetColor(#Gadget_VolumeTxt    , #PB_Gadget_FrontColor, RGB(0,255,0)) 
    SetGadgetColor(#Gadget_SpeedTxt     , #PB_Gadget_FrontColor, RGB(0,255,0)) 
    SetGadgetColor(#Gadget_PositionTxt  , #PB_Gadget_FrontColor, RGB(0,255,0)) 
    SetGadgetColor(#Gadget_VolumeTxt    , #PB_Gadget_BackColor, RGB(0,0,0))  
    SetGadgetColor(#Gadget_SpeedTxt     , #PB_Gadget_BackColor, RGB(0,0,0)) 
    SetGadgetColor(#Gadget_PositionTxt  , #PB_Gadget_BackColor, RGB(0,0,0)) 
    SetGadgetColor(#gadget_File         , #PB_Gadget_BackColor, RGB(0,0,0))  
    SetGadgetColor(#gadget_File         , #PB_Gadget_FrontColor, RGB(0,255,0)) 
    
    COLOR_BUTTON  (#Gadget_Load       ,5,Top,300,25,$000000,RGB(0,255,0),"Musik Laden..."):top+30
    COLOR_BUTTON  (#Gadget_Play       ,5,top,300,25,$000000,RGB(0,255,0),"Abspielen"):top+30
    COLOR_BUTTON  (#Gadget_Pause      ,5,top,300,25,$000000,RGB(0,255,0),"Pause"):top+30    
    COLOR_BUTTON  (#Gadget_Stop       ,5,5000,300,20,$000000,RGB(0,255,0),"Stop") 
    COLOR_BUTTON  (#Gadget_Exit       ,5,top,300,25,$000000,RGB(0,255,0),"Exit"):top+30
    
    SetWindowColor(0,RGB(0,0,0))
    
    
    loaded=#False 
    Quit=#False
    Repeat 
      EventID.l = WindowEvent() 
      Select EventID 
        Case 0 
          If loaded And max>0 
            x=MP3_GetPosition(1) 
            If GetGadgetState(#Gadget_Position)<>x*1000/max 
              SetPosition(x,max) 
            EndIf 

          EndIf 
          
          
         
          
          Delay(100) 
        Case #PB_Event_CloseWindow
          Quit=#True 
        Case #PB_Event_Gadget 
        
  
        
          Select EventGadget() 
            Case #Gadget_Load 
              File$=OpenFileRequester("Hier bitte die Musik auswählen","","Media (Wave,MP3,OGG)|*.wav;*.ogg;*.mp3|Wave|*.wav|mp3|*.mp3|OGG|*.OGG|ALL|*.*",0) 
              If File$<>"" 
                If loaded 
                  MP3_Free(1)

                  loaded=#False
                
                 
                EndIf 
                If MP3_Load(1,File$) 
                  max=MP3_GetLength(1) 
                  SetVol(MP3_GetVolume(1)/10) 
                  SetSpeed(MP3_GetSpeed(1)/10) 
                  SetPosition(0,max) 
                  loaded=#True 
                  mp3_play(1)
                  SetGadgetText(#gadget_File,"") 
                Else 
                  SetGadgetText(#gadget_File,"") 
                EndIf 
              EndIf 
            Case #Gadget_Resume 
              If loaded 
                MP3_Resume(1) 
              EndIf   
              Case #Gadget_Exit 
              If loaded=#False
                Quit = 1 
              EndIf 
            Case #Gadget_Pause 
              If loaded 
                MP3_Pause(1) 
              EndIf 
            Case #Gadget_Play 
              If loaded 
                MP3_Play(1) 
              EndIf 
            Case #Gadget_Stop 
              If loaded 
                MP3_Stop(1) 
              EndIf 
              Case #Gadget_Exit 
              If loaded 
                Quit = 1 
              EndIf 
            Case #Gadget_Position 
              If loaded And max>0 
                x=GetGadgetState(#Gadget_Position)*max/1000 
                SetPosition(x,max) 
                MP3_Seek(1,x) 
                MP3_Resume(1) 
                Mp3_stop(1)
              EndIf 
            Case #Gadget_Volume 
              If loaded 
                x=GetGadgetState(#Gadget_Volume) 
                SetVol(x) 
                MP3_SetVolume(1,x*10) 
              EndIf 
            Case #Gadget_Speed 
              If loaded 
                x=GetGadgetState(#Gadget_Speed) 
                SetSpeed(x) 
                MP3_SetSpeed(1,x*10) 
              EndIf 
          EndSelect 
      EndSelect 
    Until Quit 
    If loaded 
      MP3_Stop(1) 
      MP3_Free(1) 
    EndIf 
  EndIf 
EndIf 
End
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

X360 Andy hat geschrieben:Hier mein kleiner Code .....
Das is en Mp3Player:lol: :lol:
wieso die Dinger immer so hässlich sein müssen... ;-)

Am besten SetWindowCallback() nach Erstellen der Gadgets aufrufen. Dann
gibts auch keinen Debugger-Fehler ;-)

Grüße ... Kiffi
a²+b²=mc²
Antworten