Ich arbeite an einem Programm das Daten von einem Messgerät empfängt und auf einen XY-Schreiber darstellen soll. Brauch das für meine Hypnose - Sitzungen um die Trancetiefe optisch darzustellen.
Aber ich scheitere bereits im Ansatz !
Jedesmal wenn der Schreiber ans Ende gelangt und das Image gescrollt wird beginnt alles zu flimmern.
Die Aufzeichnungsdauer ist jetzt durch die Imagegrosse begrenzt !
Aber das Ding sollte zumindest 2-3 Stunden aufzeichnen können und man muss zu jedem Punkt scrollen können.
Vielleicht hat ja jemand einen Tipp für mich ?
Danke !
Legion
Mein Denkansatz bis jetzt ....
Code: Alles auswählen
Global Window_0, TrackBar_0, ScrollArea_0, Image_0
Global GrundImage
Global X = 0
Global Y = 240
Procedure Open_Window_0()
Window_0 = OpenWindow(#PB_Any, 101, 10, 745, 537, "Window 0", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
If Window_0
If CreateGadgetList(WindowID(Window_0))
ScrollArea_0 = ScrollAreaGadget(#PB_Any, 30, 10, 680, 430,659,426,0)
SetGadgetColor(ScrollArea_0, #PB_Gadget_BackColor, $DEDEDE)
Image_0 = ImageGadget(#PB_Any, 0,0,680,430,0)
CloseGadgetList()
TrackBar_0 = TrackBarGadget(#PB_Any, 150, 480, 480, 30, 0, 480)
SetGadgetState(TrackBar_0,240)
EndIf
EndIf
EndProcedure
Procedure Schreibe()
StartDrawing(ImageOutput(GrundImage))
LineXY(X,Y,X,GetGadgetState(TrackBar_0),$67FDB0)
DrawText(5, 5, "X = "+Str(X),$67FDB0,$000000)
StopDrawing()
SetGadgetState(Image_0,ImageID(GrundImage))
X= X+1
Y= GetGadgetState(TrackBar_0)
If X > 659
SetGadgetAttribute(ScrollArea_0,#PB_ScrollArea_InnerWidth,X)
SetGadgetAttribute(ScrollArea_0,#PB_ScrollArea_X ,GetGadgetAttribute(ScrollArea_0, #PB_ScrollArea_X) + 1)
EndIf
EndProcedure
Open_Window_0()
GrundImage = CreateImage(#PB_Any,1360,430)
StartDrawing(ImageOutput(GrundImage))
Box(0, 0, 1360, 430, $000000)
StopDrawing()
SetGadgetState(Image_0,ImageID(GrundImage))
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
GadgetID = EventGadget()
EventType = EventType()
If Event = #PB_Event_Gadget
If GadgetID = TrackBar_0 : Schreibe()
EndIf
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End