Nach Maximieren Gadgets weg?!
Verfasst: 08.08.2005 00:00
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