Danke für die Mitarbeit, aber ich hab's gefunden. ist aber schon seltsam.
Wohl irgend eine Kompilermacke, die sich nur auf manchen Systemen auswirkt.
Probiert mal
Code: Alles auswählen
;Windows
Enumeration
#Window_0
EndEnumeration
;Gadgets
Enumeration
#ImgGad_Diagr
#Panel_0
#Img_Diagr
#Spin_0
EndEnumeration
;Konstanten
#Xoffset = 50
#Yoffset = 250
Procedure Diagramm()
x.l
xx.f
y.f
Xalt.l = #Xoffset
Xneu.l
Yalt.l = #Yoffset
Yneu.l
dy.f
If CreateImage(#Img_Diagr,720,500)
If StartDrawing(ImageOutput(#Img_Diagr))
Box(0,0,720,550,$FFFFFF)
For z = 0 To 4
For x = 0 To 628
y = Sin(x/100)* (Val(GetGadgetText(#Spin_0))-150)
xx = x/3*z
Yneu=#Yoffset - y
Xneu=#Xoffset + xx
LineXY(Xalt,Yalt,Xneu,Yneu,$FF)
Xalt=Xneu
Yalt=Yneu
Next
Next z
EndIf
StopDrawing()
EndIf
ImageGadget(#ImgGad_Diagr, 0, 0, 0, 0, ImageID(#Img_Diagr),#PB_Image_Border)
EndProcedure
If OpenWindow(#Window_0, 250, 10, 720, 600,"Zackentest", #PB_Window_SystemMenu |#PB_Window_MinimizeGadget| #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(0))
SpinGadget(#Spin_0,360,550,50,25,0,300,#PB_Spin_ReadOnly|#PB_Spin_Numeric)
SetGadgetState(#Spin_0,150)
EndIf
Diagramm()
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #Spin_0
Diagramm()
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
EndIf
Das zeigt die Macken manchmal, am besten den Spin mit der Auf/Ab-Taste durchrollen ==> vertikale Zacken
Wenn ich aber den Kode wie folgt schreibe, ist alles ok
Code: Alles auswählen
If StartDrawing(ImageOutput(#Img_Diagr))
Box(0,0,720,550,$FFFFFF)
dy = (GetGadgetState(#Spin_0)-150)
For z = 0 To 4
For x = 0 To 628
y = Sin(x/100)* dy
xx = x/3*z
Yneu=#Yoffset - y
Wie kommt's ???