TextGadget auslesen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
exit
Beiträge: 36
Registriert: 24.03.2008 12:17
Computerausstattung: - Windows 10
- PureBasic 5.62

TextGadget auslesen

Beitrag von exit »

Hallo,

ich sehe den Wald vor lauter Bäumen nicht mehr. Wieso funktioniert plötzlich das Einlesen des TextGadgets nicht mehr? Ich habe schon das Gadget umbenannt und und und und...

Die Fehlermeldung und die entsprechende Zeile im Code sind unten.


[19:17:40] Warte auf den Start des Executable...
[19:17:40] Executable gestartet.
[19:17:44] [ERROR] LaengenControl.pb (Line: 192)
[19:17:44] [ERROR] Invalid memory access. (write error at address 0)
[19:17:49] Das Programm wurde beendet.

Code: Alles auswählen

scan_new$= GetGadgetText(#scanner_rohdaten)      ; (Line: 192)
 
scan_laenge = Len(scan_new$) 
:oops:
Zuletzt geändert von exit am 29.10.2008 20:40, insgesamt 1-mal geändert.
- Windows 10
- PureBasic 5.62
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

LaengenControl.pb? Include?
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
exit
Beiträge: 36
Registriert: 24.03.2008 12:17
Computerausstattung: - Windows 10
- PureBasic 5.62

Beitrag von exit »

Nein das Programm heisst so. Die Oberfläche habe ich mit PureForm 1.99 erstellt. Diese kommt ohne include aus.

Das dumme ist, dass es schon funktioniert hat.
- Windows 10
- PureBasic 5.62
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

bei einem IMA hilft es grad mal NIX wenn du nur die zwei Zeilen postest,
wo der gemeldet wurde, weil der oft wo ganz anders verursacht wird.

die beiden Zeilen die du hier zeigst können normalerweise keinen Fehler verursachen.

also du musst die anschauen, was du im ganzen programm machst.
eine möglichkeit wäre, dass du den String scan_new$ schon irgendwann vorher erzeugt hast,
und zwischendrin durch irgendeine irrwitzige aktion seinen pointer verbogen hast,
sodass er jetzt auf 0 zeigt und deshalb nicht beschrieben werden kann.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
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

Beitrag von ts-soft »

> Das dumme ist, dass es schon funktioniert hat.
Nein, das dumme ist, wenn Du die Stelle mit dem Fehler nicht postest, wird
Dir keiner helfen können und deine Frage ist überflüssig.
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.
Bild
Benutzeravatar
exit
Beiträge: 36
Registriert: 24.03.2008 12:17
Computerausstattung: - Windows 10
- PureBasic 5.62

Beitrag von exit »

Eigentlich wollte ich euch damit nicht weiter belästigen, aber ohne mehr Code zu posten scheint es nicht zu gehen.

Code: Alles auswählen


  SetActiveGadget(#scanner_rohdaten)
  
;==========================================================================


  scan_new$= GetGadgetText(#scanner_rohdaten)        ;Scannerabfrage

Zuletzt geändert von exit am 01.11.2008 10:20, insgesamt 1-mal geändert.
- Windows 10
- PureBasic 5.62
Benutzeravatar
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

Beitrag von ts-soft »

Code: Alles auswählen

  Event = WaitWindowEvent()
  Event = WindowEvent()
Du mußt Dich schon entscheiden :mrgreen:
Ich denke mal, Dein Eventloop müßte nochmal überarbeitet werden, da mir
aber die UserLib, sowie das Gerät an der seriellen Schnittstelle fehlt, mußte
das wohl mehr oder weniger alleine schaffen.
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.
Bild
Benutzeravatar
exit
Beiträge: 36
Registriert: 24.03.2008 12:17
Computerausstattung: - Windows 10
- PureBasic 5.62

Beitrag von exit »

So soll es natürlich sein. Da der Zählerstand immer ausgelesen werden muß, kann ich nicht auf ein WindowEvent warten. Das WaitWindowEvent() ist durch meine Fehlersuche reingerutscht.

Code: Alles auswählen

;Event = WaitWindowEvent()
  Event = WindowEvent()
- Windows 10
- PureBasic 5.62
Benutzeravatar
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

Beitrag von ts-soft »

Besser wäre ein

Code: Alles auswählen

 WaitWindowEvent(timeout)
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.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

probier mal WaitWindowEvent(10)
wartet maximal 10ms, rödelt aber trotzdem nicht pausenlos durch.

ansonsten kann ich so beim drübergucken auf die schnelle nichts entdecken, und testen geht ja nicht.

... das war halt vorher nicht klar...
als wir nach code gefragt haben, sind wir mangels Informationen davon ausgegangen, dass es lauffähig sein würde.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten