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

Beitrag von exit »

Und schon wieder etwas gelernt <) . Ich kann also diese Zeilen, die mir immer etwas "im Magen lagen", getrost entfernen. Durch das Delay von Anfang an gibt es nämlich einen hakeligen Programmstart.

Danke erstmal

Code: Alles auswählen

  ;Programmoberfläche schneller starten und Delay später einsetzen
If countdelay < 5
  countdelay = countdelay + 1
EndIf
  
If countdelay >= 5
 Delay (1) ; erst nach ein paar Durchläufen
EndIf
- Windows 10
- PureBasic 5.62
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Kaeru Gaman hat geschrieben: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.
Also bei mir läuft er..... ( ohne Debuger )
Mit Debuger gehts nicht....

Ich musste "nur" folgende zeilen löschen ( die ja nur zur grafischen oberfläche gehören )

Code: Alles auswählen

      PureCOLOR_SetGadgetColor(#Laenge, #PureCOLOR_SystemColor, $FF00)
      PureCOLOR_SetGadgetColor(#Verschluss, #PureCOLOR_SystemColor, $FF00)
      PureCOLOR_SetGadgetColor(#akt_Laenge, #PureCOLOR_SystemColor, $FFFF)
      PureCOLOR_SetGadgetColor(#Toleranz, #PureCOLOR_SystemColor, $FF00)
      PureCOLOR_SetGadgetColor(#Solllaenge, #PureCOLOR_SystemColor, $FF00)
Zuletzt geändert von X360 Andy am 29.10.2008 22:05, insgesamt 1-mal geändert.
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 »

Den ganzen Dauerquatsch sollteste nur ausführen, wenn kein Event anliegt,
also Event = 0, desweiteren in eine Procedure packen, das ganze ist so ja
ziemlich unleserlich, obwohl ja noch nicht viel code.
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 »

X360 Andy hat geschrieben:Also bei mir läuft er..... ( ohne Debuger )
das mag ja sein...
das bringt aber grad mal garnix, weil ich den scanner nicht am COM hab und nix testen kann.
also wird auch hier kein IMA verursacht, also kann ich hier auch nicht dem Bug auf die Spur steigen...


> Den ganzen Dauerquatsch sollteste nur ausführen, wenn kein Event anliegt,
> also Event = 0, desweiteren in eine Procedure packen, das ganze ist so ja
> ziemlich unleserlich, obwohl ja noch nicht viel code.

yo, find ich auch.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
exit
Beiträge: 36
Registriert: 24.03.2008 12:17
Computerausstattung: - Windows 10
- PureBasic 5.62

Beitrag von exit »

Es liegt wahrscheinlich am Code von PureForm oben. Das neue blabla$ wird nirgendo anders benutzt und eine Gadgetabfrage müsste doch zu jedem Zeitpunkt möglich sein oder?

Also mit blabla$ habe ich den gleichen Fehler.

Code: Alles auswählen

blabla$ = GetGadgetText(#scanner_rohdaten) 

  ;scan_new$= GetGadgetText(#scanner_rohdaten)
- Windows 10
- PureBasic 5.62
Benutzeravatar
exit
Beiträge: 36
Registriert: 24.03.2008 12:17
Computerausstattung: - Windows 10
- PureBasic 5.62

Beitrag von exit »

@ TS-Soft

Es liegt später nie ein Event an. Maus, Tastatur sind nicht zugänglich. Das Programm wird nur über die Scannerabfrage bedient.
- 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 »

exit hat geschrieben:@ TS-Soft

Es liegt später nie ein Event an. Maus, Tastatur sind nicht zugänglich. Das Programm wird nur über die Scannerabfrage bedient.
Doch, SetGadgetText, verschieben des Fensters usw., es liegen tausende
von Events an, glaube mir
:mrgreen:
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 »

Ich war bisher der Meinung, dass ein WindowsEvent "von aussen" ausgelöst wird, sprich Maus, Tastatur und Co.

Wenn SetGadgetText auch ein WindowEvent ist, sieht die Welt schon anders aus.
- 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 »

Dabei wird unter Windos u.a. ein #WM_SETTEXT ausgelöst, aber nicht nur
der alleine
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 »

tja ... so kann man sich irren.

so manche Set-Commands lösen mindestens ein Event aus.

das führt dazu, dass manche Interfaces pro Update ein paar Dutzend Events auslösen,
die per (Wait)WindowEvent ans OS weitergereicht werden müssen.
wenn bei diesen Abarbeitungs-Durchläufen neue Events erzeugt werden,
läuft irgendwann die Eventqueue über, ist ja klar.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten