Fenster zumachen

Anfängerfragen zum Programmieren mit PureBasic.
Alex
Beiträge: 8
Registriert: 20.01.2006 18:25

Fenster zumachen

Beitrag von Alex »

Ich hab' folgendes Problem:
Wenn ich über die Windowsleite ein Fenster schließen will, muss ich bis zu dreimal auf das [X] drücken.
Das ganze ist aber nicht reproduzierbar !
Ich habe eine EXE - starte das Programm und will es gleich wieder schließen. Mal geht das Fenster beim erstenmal zu, dann wieder erst nach 2, oder 3fachen klicken auf's [X]

hat jemand ne Idee wie man das Problem in den Griff bekommt ?
Benutzeravatar
benpicco
Beiträge: 391
Registriert: 01.10.2004 15:32
Wohnort: im Code
Kontaktdaten:

Re: Fenster zumachen

Beitrag von benpicco »

Alex hat geschrieben: hat jemand ne Idee wie man das Problem in den Griff bekommt ?
Naja, erstmal den Quellcode posten könnte da schon ein guter anfang sein :wink:
Johann Wolfgang von Geothe hat geschrieben:Wie dieses oder jenes Wort geschrieben wird, darauf kommt es doch eigentlich nicht an, sondern darauf, daß die Leser verstehen, was man damit sagen wollte.
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

Wenn es ein selbsterstelltes Programm ist liegt es wohl an der Ereignissbehandlung.
Purebasic 5.0 32bit und 64 bit

I'm back from hell
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Du hast mehrere WaitWindow- bzw. WindowEvents() in deiner Hauptschleife.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
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 »

Auf jedenfall reagiert der Schließen-Knopf nicht, bis das erste WaitWindowEvent() oder WindowEvent() ausgeführt wurde. Der Rest hängt, wie bereits gesagt, von dem Code ab.

*glaskugel such*
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
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

oder dein programm braucht lange um eine funktion (welche vermutlich eine eigene schleife hat) auszuführen, in der zeit kannst du dann schlecht die window events abarbeiten. threads würden in so einem fall helfen. :)

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Alex
Beiträge: 8
Registriert: 20.01.2006 18:25

Beitrag von Alex »

Danke für Tipps !
Ich versuchs mal mit threads...
special thanx to nco2k !!!
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

aber sei gewarnt, threads können auch nach hinten losgehen, wenn du nicht ganz genau weisst, was du tust. ausserdem sind strings in threads bei pb 3.94 nicht threadsicher und können intern "durcheinander" kommen. mit der neuen version 4.00 die demnächst erscheinen soll, wird sich das ändern. :wink:

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Alex
Beiträge: 8
Registriert: 20.01.2006 18:25

Beitrag von Alex »

@nco2k
danke für den Hinweis. Ich bin tatsächlich ein absolutes Greenhorn. Meine letzten programier Versuche waren noch in MS-Basic...
Ich probiers einfach mal, mein PC wird schon icht explodieren.
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 »

Ich denke mal, bei einem GreenhornProgramm :wink: sind Threads das letzte was Du versuchen solltest. Poste mal lieber Deinen Code, dann können wir Dir auch besser helfen, ohne das der PC explodiert, i hope :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
Antworten