ImageGadget verschwindet bei zweitem Fenster

Anfängerfragen zum Programmieren mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

nuja.... wenn das Image jetzt auftaucht, dann wird das Event ja bearbeitet.
denn SetGadgetState auf ein ImageGadget löst ein Event aus, es würde sich da nix tun, wenn die Queue überlaufen wäre.

da ich von Telnet keine ahnung hab, weiß ich nicht, ob dort Events erzeugt und verdusselt werden.

wichtig wäre schon, dass die Eventverarbeitung weitergeführt wird,
wenn in der Telnet-Proc längere Zeit verweilt wird.
das würde bedingen, entweder diese Proc in einem tread laufen zu lassen,
oder die einzelnen schritte der Verarbeitungsschleife in die Eventschleife zu integrieren...
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 »

Bevor Du Telnet() aufrufst, disablest Du alle Gadget, wo der Anwender was
eingeben könnte. Eine kleine Progressbar vors Fenster oder ähnlich. Dann fügste
ein paar

Code: Alles auswählen

While WindowEvent() : Wend
in die Telnet Procedure ein, überall wo Du mit Gadgets was machst, z.B.
AddGadgetItem SetGadgetText u. ä.
Am Ende wieder das Disable der Gadgets entfernen, ist zwar nicht sehr
sauber, aber besser als ein totes Fenster.

Nur als workaround, ansonsten müßte man das ja eher Neuschreiben :wink:
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
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Beitrag von Elektrolurch »

Hi ts-soft

was meinst du genau mit.
disablest Du alle Gadget
Eine kleine Progressbar vors Fenster
welches Fenster. Haupt oder Debug?

Ansonsten, werde ich es morgen mal probieren.

Bye und Danke
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 »

Alle gadgets, wo der Anwender Eingaben machen könnte! Wahrscheinlich im
Hauptfenster. Alle Buttons, das Editorgadget auf readonly setzen.
Du sollt also verhindern, das der Anwender wo drückt und nichts passiert,
weil Deine Netzwerkroutine so lange braucht. Es gibt nichts schlimmeres als
aktivierte Buttons wo man draufkloppt und nichts passiert :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
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Beitrag von Elektrolurch »

Hi

Ja ist schon klar, ich habe schon alles bis auf das IPGadget und den Startbutton auf unsichtbar gestellt, damit da nichts groß zu machen ist.

Mit dem Progressbar kann ich auch die Augen etwas beschäftigen. :D

Die Telnetroutine ist in der Regel in einer Sekunde erledigt.
Sie besteht ja nur aus der Anmeldung und 1-5 Linuxbefehlen.

Nochmal Danke
Bye Andre
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Die Telnetroutine ist in der Regel in einer Sekunde erledigt.

na, dann sollte das auch nicht so das prolem sein.

trotzdem wärs sinnvoll, was einzubaun, damit nix einfriert wenn das netz mal zehn sekunden hängt...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Beitrag von Elektrolurch »

Hi

Die While Event Wend habe ich schon drin.
Dadurch wird auch die Debugausgabe flüssiger.
Ich muß nun leider Schluß machen.
Bye Andre
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Dadurch wird auch die Debugausgabe flüssiger.

yup, weil die Events, die die Textänderung erzeugt, gleich weitergereicht werden und das fenster sich aktualisiert.

das disabling dient dann auch noch dazu, dass dort kein events erzeugt werden,
die durch die while\wend einfach ohne Verarbeitung weitergereicht würden.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten