Nach Maximieren Gadgets weg?!

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Nach Maximieren Gadgets weg?!

Beitrag von Blackskyliner »

Warum sind nachdem ich Minimiert und wieder Maximiere die ganzen Gadgets weg? liegt das am Delay(1)?? hier mal der ganze source.... einige kennen den sicher schon ich nerve ja ziemlich damit....

Code: Alles auswählen

; PureBasic Visual Designer v3.90 build 1361


;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Playlist
  #LOAD
  #PLAY
  #PAUSE
  #RESUME
  #STOP
  #QUIT
  #TIME_Total
  #Slash
  #TIME_Current
EndEnumeration

;- Audio Constants
;
Enumeration
  #AUDIO_ID
EndEnumeration
; BalloonTip Constants
#TOOLTIP_NO_ICON      = 0
#TOOLTIP_INFO_ICON    = 1
#TOOLTIP_WARNING_ICON = 2
#TOOLTIP_ERROR_ICON   = 3

Procedure BalloonTip(WindowID, Gadget, Text$ , Title$, Icon)
  
  ToolTip=CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON,0,0,0,0,WindowID,0,GetModuleHandle_(0),0)
  SendMessage_(ToolTip,#TTM_SETTIPTEXTCOLOR,GetSysColor_(#COLOR_INFOTEXT),0)
  SendMessage_(ToolTip,#TTM_SETTIPBKCOLOR,GetSysColor_(#COLOR_INFOBK),0)
  SendMessage_(ToolTip,#TTM_SETMAXTIPWIDTH,0,180)
  Balloon.TOOLINFO\cbSize=SizeOf(TOOLINFO)
  Balloon\uFlags=#TTF_IDISHWND | #TTF_SUBCLASS
  Balloon\hWnd=GadgetID(Gadget)
  Balloon\uId=GadgetID(Gadget)
  Balloon\lpszText=@Text$
  SendMessage_(ToolTip, #TTM_ADDTOOL, 0, Balloon)
  If Title$ > ""
    SendMessage_(ToolTip, #TTM_SETTITLE, Icon, @Title$)
  EndIf
  
EndProcedure

If OpenWindow(#Window_0, 270, 233, 359, 204, #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_WindowCentered | #PB_Window_MaximizeGadget, "MP3-Player")
  ;AdvancedGadgetEvents(#True) 
  If CreateGadgetList(WindowID())
    ButtonGadget(#LOAD, 0, 180, 60, 25, "Laden")
    BalloonTip(WindowID(), #LOAD, "Musikstück laden", "", #TOOLTIP_NO_ICON)
    ListViewGadget(#Playlist, 0, 0, 360, 165)
    BalloonTip(WindowID(), #Playlist, "PlayList", "", #TOOLTIP_NO_ICON)
    ButtonGadget(#PLAY, 60, 180, 60, 25, "Abspielen")
    BalloonTip(WindowID(), #PLAY, "Musikstück abspielen", "", #TOOLTIP_NO_ICON)
    ButtonGadget(#PAUSE, 120, 180, 60, 25, "Anhalten")
    BalloonTip(WindowID(), #PAUSE, "Musikstück anhalten", "", #TOOLTIP_NO_ICON)
    ButtonGadget(#RESUME, 180, 180, 60, 25, "Fortsetzen")
    BalloonTip(WindowID(), #RESUME, "Musikstück fortsetzen", "", #TOOLTIP_NO_ICON)
    ButtonGadget(#STOP, 240, 180, 60, 25, "Stop")
    BalloonTip(WindowID(), #STOP, "Musikstück stoppen", "", #TOOLTIP_NO_ICON)
    ButtonGadget(#QUIT, 300, 180, 60, 25, "Beenden")
    BalloonTip(WindowID(), #QUIT, "Player Beenden", "", #TOOLTIP_NO_ICON)
    TextGadget(#TIME_Total, 55, 165, 45, 15, "00:00:00")
    BalloonTip(WindowID(), #TIME_Total, "Zeit Total", "", #TOOLTIP_NO_ICON)
    TextGadget(#Slash, 45, 165, 10, 15, "/")
    BalloonTip(WindowID(), #Slash, "Slash ? O.o  :D ;)", "", #TOOLTIP_NO_ICON)
    TextGadget(#TIME_Current, 0, 165, 45, 15, "00:00:00")
    BalloonTip(WindowID(), #TIME_Current, "Verstrichene Zeit", "", #TOOLTIP_NO_ICON)
  EndIf
  
  w = WindowWidth ()
  h = WindowHeight() 
  
  Repeat
    EventID.l = WindowEvent()
    
    If EventID = #PB_Event_SizeWindow
      fx.f = WindowWidth()  / w
      fy.f = WindowHeight() / h
      ResizeGadget(#Playlist, GadgetX(#Playlist)*fx , GadgetY(#Playlist)*fy, GadgetWidth(#Playlist)*fx, GadgetHeight(#Playlist)*fy)
      For i=#LOAD To #TIME_Current 
      ResizeGadget(i, -1 , GadgetY(i)*fy, -1, -1)
      Next
      w = WindowWidth ()
      h = WindowHeight()
    EndIf 
    
    If EventID = #PB_Event_CloseWindow
      Quit.l = 1
    EndIf
    If EventID = #WM_KEYDOWN
      If EventwParam() = #VK_Escape
        Quit.l = 1
      EndIf 
    EndIf
    
    If IsAudioZPlaying(#AUDIO_ID) = #False
      Delay(1)
    EndIf 
    
    If IsAudioZPlaying(#AUDIO_ID)
      SetGadgetText(#TIME_Current, PositionAudioZTime(Current))
      Delay(1)
    EndIf 
    Current.l = GetAudioZState(#AUDIO_ID)
    If Current=Total And Play = 1
      StopAudioZ(#AUDIO_ID)
      FreeAudioZ(#AUDIO_ID)
      If CountGadgetItems(#Playlist)=GetGadgetState(#Playlist)+1
        SetGadgetState(#Playlist,0)
      Else
        SetGadgetState(#Playlist,GetGadgetState(#Playlist)+1)
      EndIf
      OpenAudioZ(#AUDIO_ID,GetGadgetItemText(#Playlist,GetGadgetState(#Playlist),0))
      PlayAudioZ(#AUDIO_ID)
      Total.l = GetAudioZLength(#AUDIO_ID)
      SetGadgetText(#TIME_Total, PositionAudioZTime(Total))
      Play.l = 1
    EndIf
    
    If GetGadgetState(#Playlist) = -1
      SetGadgetState(#Playlist,0)
    EndIf
    
    If EventID = #PB_Event_Gadget
      Select EventGadgetID()
        Case #LOAD
          File$ = OpenFileRequester("Lied auswählen", "c:\","MpegLayer3 (*.mp3)|*.mp3",0,#PB_Requester_MultiSelection)
          While File$
            ListID.l = CountGadgetItems(#Playlist)
            If File$ <> ""
              AddGadgetItem(#Playlist,ListID,File$,0)  
            EndIf 
            File$ = NextSelectedFileName()
          Wend 
        Case #QUIT
          Quit.l = 1
        Case #PLAY
          If IsAudioZPlaying(#AUDIO_ID)
            MessageRequester("Fehler","Es wird zuzeit noch ein Lied gespielt.")
          Else 
            OpenAudioZ(#AUDIO_ID,GetGadgetItemText(#Playlist,GetGadgetState(#Playlist),0))
            PlayAudioZ(#AUDIO_ID)
            Total.l = GetAudioZLength(#AUDIO_ID)
            SetGadgetText(#TIME_Total, PositionAudioZTime(Total))
          EndIf 
          Play.l = 1
        Case #STOP
          Play.l = 0
          StopAudioZ(#AUDIO_ID)
          FreeAudioZ(#AUDIO_ID)
        Case #RESUME
          Play.l = 1
          ResumeAudioZ(#AUDIO_ID)
        Case #PAUSE
          Play.l = 0
          PauseAudioZ(#AUDIO_ID)
        Case #Playlist
          If #PB_EventType_LeftDoubleClick=EventType()
            RemoveGadgetItem(#Playlist,GetGadgetState(#Playlist))
          EndIf
      EndSelect
    EndIf
  Until Quit=1
  
EndIf

Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

ich glaube das hatte ich auch mal mit der ftp lib
und zwar werden die gadgets nicht mehr angezeigt, wenn das programm arbeitet (es gefriert ein)
das betrift natürlich delay() auch
Christi
Beiträge: 154
Registriert: 31.08.2004 14:17
Kontaktdaten:

Beitrag von Christi »

hat hiermit garnix zu tun

ersetz mal deinen resizeteil durch diesen:

Code: Alles auswählen

    If EventID = #PB_Event_SizeWindow 
      ResizeGadget(#Playlist, 0, 0, WindowWidth(), WindowHeight() - 39) 
      For i=#LOAD To #QUIT
        ResizeGadget(i, -1, WindowHeight() - 24, -1, -1) 
      Next 
      For i=#TIME_Total To #TIME_Current
        ResizeGadget(i, -1, WindowHeight() - 39, -1, -1) 
      Next 
    EndIf 
edit: wenn du die fenstergroesse mit der maus verändern willst beim fenster erstellen #PB_Window_SizeGadget mit verwenden.
edit2: die gadgets wurden durch große negative werte die gadgetx() und gadgety() ausgegeben haben sonstwohin verschoben.
Zuletzt geändert von Christi am 08.08.2005 00:28, insgesamt 1-mal geändert.
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Beitrag von Blackskyliner »

@sen-me: und was kann man dagegen tun? :D
@Christi: Danke ich hatte wegen dem Resizen schonmal gefragt gehabt und da hatte ich den alten schnippel bekommen danke der neue funkt einwandfrei sogar wenn ich das Frei Resize. Wenn du jetzt auchnoch weisst wie ich das mit dem Freezen der Gadgets regele, also das die nach nem Maximieren wieder angezeigt werden bin ich happy :D

EDIT:
Dank Christis Resize dinge geht auch das mit dem Maximieren wieder! Wegen der Negativve wurde alles in einen MINUS bereich geschoben.... danke Christi
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

kein delay :lol:
aber selber ka, in der arbeitszeit minimieren deaktivieren? :roll:
Antworten