auf dem Trichter die skinwin's bei Bedarf neru zu erzeugen war ich auch zuerst .. das ging aber aus dem geschilderten Grund nicht ..
Ich hab einfach (einfach??) n Sack voll Fenster generiert die ich nacheinander per Hidewindow() anknipse und ausknipse.
Kostet zwar Speicher und dauert beim Initialisieren ne Ewigkeit (je nach Größe und Anzahl der zu erzeugenden Fenster) aber es geht.
Dein Chamäleon frisst zuviel Speicher. und es verschwindet tlw. nach einer gewissen Zeit.
Ich hab mir mal erlaubt Deine Echsen zu missbrauchen.
rechter Mausklick auf der Echse läss die laufen. (nur nach Rechts aber immerhin)
ESC oder F10 oder Alt-F4 wenn auf die Echse getippt wurde beendet das Programm (undokumentierte evenWParam() Funktion)
Code: Alles auswählen
Global maxx,maxy,hwnd,x,y
maxx = GetSystemMetrics_(#SM_CXSCREEN)
maxy = GetSystemMetrics_(#SM_CXSCREEN)
LengSound=120
LengSound1=224
LengSound2=446
AnimPause=0
AnimPause1=0
AnimPause2=0
UsePNGImageDecoder()
Image0=CatchImage(0,?SkinPicture0)
Image1=CatchImage(1,?SkinPicture1)
Image2=CatchImage(2,?SkinPicture2)
Image3=CatchImage(3,?SkinPicture3)
Image4=CatchImage(4,?SkinPicture4)
Image5=CatchImage(5,?SkinPicture5)
Image6=CatchImage(6,?SkinPicture6)
Procedure updateallwins()
For I=0 To 6
UseWindow(i)
MoveWindow(x,y)
Next i
EndProcedure
Procedure MoveIt(S)
x=x+S
Updateallwins()
EndProcedure
b=ImageWidth()
h=ImageHeight()
OpenWindow(6,maxx-b,0,b,h,#PB_Window_BorderLess|#PB_Window_Invisible,"PB - SkinWin Example 4")
CreateGadgetList(WindowID(6))
SkinWin(WindowID(6),Image6)
OpenWindow(5,maxx-b,0,b,h,#PB_Window_BorderLess|#PB_Window_Invisible,"PB - SkinWin Example 4")
CreateGadgetList(WindowID(5))
SkinWin(WindowID(5),Image5)
OpenWindow(4,maxx-b,0,b,h,#PB_Window_BorderLess|#PB_Window_Invisible,"PB - SkinWin Example 4")
CreateGadgetList(WindowID(4))
SkinWin(WindowID(4),Image4)
OpenWindow(3,maxx-b,0,b,h,#PB_Window_BorderLess|#PB_Window_Invisible,"PB - SkinWin Example 4")
CreateGadgetList(WindowID(3))
SkinWin(WindowID(3),Image3)
OpenWindow(2,maxx-b,0,b,h,#PB_Window_BorderLess|#PB_Window_Invisible,"PB - SkinWin Example 4")
CreateGadgetList(WindowID(2))
SkinWin(WindowID(2),Image2)
OpenWindow(1,maxx-b,0,b,h,#PB_Window_BorderLess|#PB_Window_Invisible,"PB - SkinWin Example 4")
CreateGadgetList(WindowID(1))
SkinWin(WindowID(1),Image1)
OpenWindow(0,maxx-b,0,b,h,#PB_Window_BorderLess|#PB_Window_Invisible,"PB - SkinWin Example 4")
CreateGadgetList(WindowID())
SkinWin(WindowID(),Image0)
HideWindow(0,0)
SetWindowPos_(WindowID(0),#HWND_TOPMOST,0,0,0,0,#swp_nosize)
; CreateThread(@moveit(),0)
Repeat
evnt=WaitWindowEvent()
If evnt<>512
Debug evnt
Debug EventwParam()
Debug EventlParam()
EndIf
Select EventwParam()
Case 27
End
Case 121
End
EndSelect
Select evnt
; IF LeftMouseButton pressed...
Case #WM_LBUTTONDOWN
SendMessage_(WindowID(),#WM_NCLBUTTONDOWN, #HTCAPTION,0)
Case #WM_RBUTTONDOWN
For lauf=1 To 20
For i= 0 To 5
Moveit(2)
HideWindow(i+1,0)
HideWindow(i,1)
Delay(150)
Next i
HideWindow(0,0)
HideWindow(6,1)
Next Lauf
Case #PB_EventGadget
Select EventGadgetID()
Case 1 ; EXIT
End
EndSelect
; pressed ALT+F4 ??
Case #PB_EventCloseWindow
End
EndSelect
x=WindowX()
y=WindowY()
If x<0
x=0
EndIf
If y<0
y=0
EndIf
If x>(maxx-WindowWidth())
x=maxx-WindowWidth()
EndIf
If y >(maxy-WindowHeight()*2)
y=maxy-WindowHeight()*2
EndIf
Updateallwins()
ForEver
End
DataSection
SkinPicture0:IncludeBinary "Cham1-0.PNG"
SkinPicture1:IncludeBinary "Cham1-1.PNG"
SkinPicture2:IncludeBinary "Cham1-2.PNG"
SkinPicture3:IncludeBinary "Cham1-3.PNG"
SkinPicture4:IncludeBinary "Cham1-4.PNG"
SkinPicture5:IncludeBinary "Cham1-5.PNG"
SkinPicture6:IncludeBinary "Cham1-6.PNG"
EndDataSection