Guten Abend!
Da ich mir ein neues Notebook zugelegt habe, habe ich heute abend versucht einen bisherigen Code der auf meinem Alten PIII Notbook aber auch aufen einem PIII Desktop lief zu compilieren und zu starten. Der Compiliervorgang zeigt keinen Fehler. Auch erscheint die Meldung "Exectuable started". Aber dann! Programm execution has finised ohne das irgendwas passiert ist.
Woran kann das liegen?
Danke schonmal
Martin
Programm endet unvorhergesehen
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
das kann echt viele viele ursachen haben.
versieh doch erst einmal jeden funktionsaufruf mit einem success-check
dadurch wirst du 80-90% der möglichen ursachen finden.
versieh doch erst einmal jeden funktionsaufruf mit einem success-check
Code: Alles auswählen
If Not Call(Blah)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
-
- Beiträge: 282
- Registriert: 03.01.2005 11:36
Programm endet unvorhergesehen
Hier ein Teil der Quelltextes. Im Moment sind 4 Windows vorbereitet aber noch nicht "benutzt". Lediglich Window_1 ist in der Anwednung.
Zum Testen werde ich überall mal wie vorgeschlagen If..... einbauen.
Danke schonmal für die Hilfe
......
; Hier stehen alle notwendigen Proceduren
;....
Zum Testen werde ich überall mal wie vorgeschlagen If..... einbauen.
Danke schonmal für die Hilfe
......
; Hier stehen alle notwendigen Proceduren
;....
Code: Alles auswählen
OpenWindow_1()
ErstelleKoordinatensystem()
Repeat
EventID=WindowEvent()
EventWindowID = EventWindow()
EventGadgetID= EventGadget()
EventMenuID = EventMenu()
Select EventWindowID
Case #Window_1 ; Handling #Window_1
Select EventID
Case #WM_MOUSEMOVE
Fadenkreuz()
Case #PB_Event_Gadget
Select EventGadgetID
Case #CheckBoxGespeicherteErgebnisse
If GetGadgetState(#CheckBoxGespeicherteErgebnisse) = 1
SetGadgetState(#CheckBoxMessergebnisseOnline, 0)
BildschirmLoeschen()
MesswerteInGraph()
EndIf
Case #CheckBoxMessergebnisseOnline
For i = 0 To 7
UseBuffer(#SpriteCH_1+i)
;ClearScreen($FFFFFF)
Next i
If GetGadgetState(#CheckBoxMessergebnisseOnline) = 1
SetGadgetState(#CheckBoxGespeicherteErgebnisse, 0)
Anzahl = CountList(Liste())
Zaehler.l = 0
Pos = 30
For Zaehler = 0 To Anzahl -1
SelectElement(Liste(), Zaehler)
For x = 0 To 7
StartDrawing(SpriteOutput(#SpriteCH_1 + x))
If Liste()\Messwert[x+1] > 2.55 And Liste()\Messwert[x+1] < 4.3
SpannungInTemp = (Liste()\Messwert[x+1] - KorrekturFuehler.f(x+1)) * 100 + 25.0
If Liste()\Messwert[x+1] > = 2.75
TemperaturInPixel = 660 - SpannungInTemp*4
Else
TemperaturInPixel = 660 + Abs(SpannungInTemp*4)
EndIf
Plot(xPos , TemperaturInPixel,Farbe(x+1))
EndIf
StopDrawing()
Next x
Pos = Pos + 1
Next Zaehler
ChanalAnzeigen()
Else
EndIf
Case #Button_MessungStarten
If StatusMessung = 0
ThreadMessungStarten = CreateThread(@MessungStarten(), 155) ;Thread für Temperaturmessung
StatusMessung = 1
MessageRequester("Infobox"," Messung wird gestartet!", #PB_MessageRequester_Ok)
; ThreadMessungLaeuft = CreateThread(@MessungLaeuft(), 156) ;Thread für Temperaturmessung
Else
MessageRequester("Infobox", "Messung läuft",0)
EndIf
Case #Button_MessungStoppen
Repeat
Delay(1)
Until MessungLaeuft = 0
KillThread(ThreadMessungStarten)
MessageRequester("Status der Messung","Messung wurde beendnet!", #PB_MessageRequester_Ok)
Case #Button_BildschirmLoeschen
BildschirmLoeschen()
;-----------------------------
EndSelect
Case #PB_Event_CloseWindow
Window_1_IsClosed = #True
Case #PB_Event_Menu
Select EventGadget()
Case 1
MesswerteVonHD()
Case 3
ManuellLoeschen()
Case 20
MesswerteInGraph()
Case 50
MessageRequester("Temperaturmessung","8-Kanal-Messsystem" + Chr(10) + " Martin Fritz" + Chr(10) + " 15-10-2006",0)
Case 51
EndSelect
;-----------------------------------------------------------------------------------------
Default
FlipBuffers()
DisplaySprite(#Koordinatensystem, 0, 0)
DisplayTransparentSprite(#Fadenkreuz, 0, 0)
If GetGadgetState(#CheckBoxMessergebnisseOnline) = 1
ChanalAnzeigen()
EndIf
EndSelect
;-----------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------
Case #Window_2 ; Handling #Window_2
;``````````````````````````````````````````````````````````````````````````````````````````
;``````````````````````````````````````````````````````````````````````````````````````````
Select EventID
Case #WM_MOUSEMOVE
Case #PB_Event_Gadget
Select EventGadgetID
Case #Button_MessungStarten
EndSelect
Case #PB_Event_CloseWindow
CloseWindow(#Window_2)
Window_2_IsClosed = #True
While WindowEvent():Wend
Case #PB_Event_Menu
Select EventGadget()
Case 10 ;Menu
EndSelect
EndSelect
;-----------------------------Window_3 handling--------------------------------------------
Case #Window_3
Select EventID
Case #WM_MOUSEMOVE
Case #PB_Event_Gadget
Select EventGadgetID
;Case #Button_1
;DeltaKalib()
EndSelect
Case #PB_Event_CloseWindow
CloseWindow(#Window_3)
Window_3_IsClosed = #True
While WindowEvent():Wend
Case #PB_Event_Menu
Select EventGadget()
;Case 10 ;Menu
EndSelect
EndSelect
;-----------------------------Window_4 handling--------------------------------------------
Case #Window_4
Select EventID
Case #WM_MOUSEMOVE
Case #PB_Event_Gadget
Select EventGadgetID
;Case #Button_1
;DeltaKalib()
EndSelect
Case #PB_Event_CloseWindow
CloseWindow(#Window_4)
Window_4_IsClosed = #True
While WindowEvent():Wend
Case #PB_Event_Menu
Select EventGadget()
;Case 10 ;Menu
EndSelect
;-----------------------------------------------------------------------------------------
Default
FlipBuffers()
DisplaySprite(#Koordinatensystem, 0, 0)
EndSelect
;-----------------------------------------------------------------------------------------
EndSelect
ErmittleKanaele()
Delay(10)
Until Window_1_IsClosed = #True ;And Window_2_IsClosed = #True
ComClose(HCom)
End
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Ohne Fensterproceduren schlecht testbar. Ich würde alle "Default-Aktionen"
in eine Timerprocedure packen. Den Rest dann per WaitWindowEvent()
Das könnte schon mal helfen
Gruß
Thomas
in eine Timerprocedure packen. Den Rest dann per WaitWindowEvent()
Das könnte schon mal helfen
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 282
- Registriert: 03.01.2005 11:36