 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Leader4
Anmeldungsdatum: 20.01.2005 Beiträge: 99 Wohnort: Leipzig
|
Verfasst am: 03.02.2006, 08:43 Titel: Probleme beim Schließen des Programms |
|
|
Hi,
ich habe Probleme beim Schließen eines Programms in FBasic, wenn ich den Screen 18 verwende (im Grund habe ich all meine Programm im Screen 18 geschrieben).
Wenn ich den Screen 18 verwende, erscheinen immer 2 Fenster, ein Hintergrundfenster und die eigentliche Programmoberfläche im Vordergrund. So richtig blicke ich da zwar nicht durch, weil ab und zu auch mal das Vordergrundfenster aus dem nichts verschwindet und dann erst irgendwann, nach bestimmter Zeit wieder in der Taskleiste auftaucht, aber das war bisher kein Problem für mich.
Nun aber habe ich das Phänomen, dass beim Beenden der Programme nur besagtes Vordergrundfenster beendet wird und das kleine Hintergrundfenster (DOS oder was das ist) einfach nicht geschlossen wird. Ich muss dann auf das X klicken, warten, bis die Windows-Meldung "Sofot Beenden" kommt, dies anklicken und warten, bis das Fenster verschwindet. Das habe ich auch nicht nur bei einem Programm, das tritt nun bei allen Programmen auf, wo ich den Screen 18 verwendet habe. Versuche, statt der System-Anweisung einmal Stop oder End zu verwenden oder beim Beenden einfach die Programmausführung an die letzte Zeile zu schicken schlugen ebenfalls fehl, es wird nur das Vordergrundfenster beendet. Woran kann das liegen?
Noch ein Hinweis, damit ihr mit meinen Beschreibungen etwas anfangen könnt: Das nicht zu schließende Fenster ist immer, wenn ich die Exe-Datei beende, zunächst inaktiv, wenn ich es dann anklicke und es aktiv ist, blinkt an der Stelle oben links ein Unterstrich ( _ ), was den Anschein einer Schleife macht. Beim Drücken einer Taste geschieht nichts.
Vielen Dank für eure Hilfe.
M. f. G. _________________ Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 03.02.2006, 13:50 Titel: |
|
|
Hallo.
Wenn du dein Programm mit dem Parameter -s gui compilierst, hast du nur das Grafikfenster und das Konsolenfenster ("DOS-Fenster") erscheint nicht.
So sollte das bei Verwendung der FBIde aussehen:
Das -ex kannst du weglassen, das ist für was anderes.
Um einen Klick auf das [X] des Grafikfensters zu erkennen, musst du INKEY$ auf ALT+F4 prüfen.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 03.02.2006, 18:19 Titel: |
|
|
Zitat: | Um einen Klick auf das [X] des Grafikfensters zu erkennen, musst du INKEY$ auf ALT+F4 prüfen. |
Also zum Beispiel das in die Hautpschleife:
Code: | if INKEY$=CHR$(255)+"k" then system |
_________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
Leader4
Anmeldungsdatum: 20.01.2005 Beiträge: 99 Wohnort: Leipzig
|
Verfasst am: 03.02.2006, 18:34 Titel: |
|
|
Vielen Dank für die Antworten.
Das Problem wird damit scheinbar gelöst, alle Fenster werden jetzt geschlossen. Aber das Programm an sich, also der Prozess, der läuft trotzdem noch weiter. Ich habe das Programm jetzt vom Editor aus gestartet, wieder beendet und wollte es abermals vom Editor starten, als mir auffiel, dass das nicht geht und Compile, Compile & Run, Run etc. matt erschienen. Als ich in den Taskmanager sah, erkannte ich, dass dort noch der Programmprozess des bereits längst beendeten Programms war.
Ich nehme von daher an, dass das Problem nicht mehr auf rationalen Weg gelöst werden kann, sondern irgendetwas mit einer fehlerhaften Windowsdatei o. ä. zu tun haben wird. Ich denke, ich werde mein Windows einmal neu installieren. Schließlich hatte ich die Probleme vorher auch nicht.
Übrigens @Sebastian: Wenn ich deine MP3-Routine in meinem Programm ausführe, und sei es nur für Bruchteile einer Sekunde, wird das Programm wie immer beendet. Dann schließt sich sogar das DOS-Fenster, wenn ich -s gui weglasse. Und dann läuft das Programm auch nicht als Prozess weiter. Ist schon irgendwie merkwürdig alles.
M. f. G. _________________ Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 03.02.2006, 18:36 Titel: |
|
|
Vielleicht END statt SYSTEM benutzen? Daran dürfte's aber eigentlich nicht liegen.
FB Befehlsreferenz hat Folgendes geschrieben: | Closes all open files and returns to the system. This is the same as END and is here for compatibility between older BASIC dialects. It is recommended to use END instead. |
Zum Soundproblem: Welche FB Version benutzt du denn? Ich weiß nur von mehreren Leuten, dass der Code bei ihnen einwandfrei funktioniert.  _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Leader4
Anmeldungsdatum: 20.01.2005 Beiträge: 99 Wohnort: Leipzig
|
Verfasst am: 03.02.2006, 19:08 Titel: |
|
|
Die Version ist FBC_0.14_FBIde_0.4.2 (Ordnername des Installationsprogramms, ich glaube das ist die neuste Version).
Ja, die MP3-Routine scheint irgendeinen Fehler aufzuheben bzw. irgendeine Unstimmigkeit zu beheben. Theoretisch müsste ich einfach nur vor jedem Programmende ein Lied abspielen, dann wird das Programm ordnungsgemäß beendet^^. Mit End ändert sich an der Sache auch nichts.
Ich werde mein Programm aber vorsichtshalber einmal auf schwerwiegende Syntaxfehler überprüfen (zum Beispiel close #X vergessen, irgendwo Dateinummer falsch gewählt etc.), die nicht vom Debuger angezeigt werden, auch wenn das eigentlich nicht sein kann, da eben auch andere Programme sich so kurios verhalten und die sind einwandfrei geschrieben.
PS: Wieso hast du eigentlich vorhin "Soundproblem" geschrieben? Mit dem Sound gibt es keine Probleme. Im Gegenteil: Die Routine könnte nicht besser funktionieren. Sie löst nur nebenbei auch das Problem mit dem Beenden, das verwundert mich. Irgendwas ist in der Routine drin, das den Fehler behebt, zweifellos.
M. f. G. _________________ Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann. |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
|
Nach oben |
|
 |
Leader4
Anmeldungsdatum: 20.01.2005 Beiträge: 99 Wohnort: Leipzig
|
Verfasst am: 03.02.2006, 19:55 Titel: |
|
|
Die neue Version von FreeBasic ändert aber an der Sache auch nichts. Ich nehme nach wie vor an, dass hier irgendwas mit dem System (Windows) nicht ganz hinhaut.
M. f. G. _________________ Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 03.02.2006, 22:57 Titel: |
|
|
Schick uns doch einfach mal den Sourcecode. vielleicht liegt's ja nicht an deinem windows, sondern vlt an fb oder wirklich am programm. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Leader4
Anmeldungsdatum: 20.01.2005 Beiträge: 99 Wohnort: Leipzig
|
Verfasst am: 04.02.2006, 14:01 Titel: |
|
|
Ich habe jetzt Windows neu installiert und nun funktioniert alles wieder. Es lag sicher an einer der Dateien autoexec.nt, command.com, config.nt etc. Vielleicht hilft dieses Thema aber anderen, bei denen vielleicht auch irgendwann einmal dieses Problem auftritt.
Nun, ich bedanke mich bei allen, die geantwortet haben und wünsche noch ein angenehmes Wochen.
M. f. G.  _________________ Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|