Modale Fenster lassen sich nicht schließen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
haderlump
Beiträge: 185
Registriert: Fr 18. Jan 2013, 09:29
OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
CPU-Target: Celeron

Modale Fenster lassen sich nicht schließen

Beitrag von haderlump »

Hallo zusammen
Ich habe ein Programm zur Steuerung einer Modellbahn geschrieben.
Auf dem Rechner, auf dem ich programmiere (Windows XP Lazarus 1.6) geht alles Wunderbar.
Auf dem Rechner mit dem ich die Moba steuern will (ein älteres Modell Windows XP Lazarus 1.6) lassen sich aber sämtliche modalen Fenster und Messageboxen nicht mehr schließen.
Ich muss das Programm wenn es ohne Lazarus läuft dann immer über den Taskmanager abschießen. Im Lazarus geht es auch nicht, lässt sich aber über den roten Button beenden.
Kann das am Windows selbst liegen?
Auf meinen anderen Rechnern kann ich das Programm nicht testen, da ich zwingend 2 serielle Schnittstellen benötige.

Gruß Fritz

SoE
Beiträge: 84
Registriert: Mo 31. Aug 2015, 01:51

Re: Modale Fenster lassen sich nicht schließen

Beitrag von SoE »

Hi,
ich will ja nicht nerven, aber wie soll man dazu was sagen wenn man nicht weiß wie diese Fenster denn geschlossen werden sollen.

Per Tastatureingabe oder per Mauseingabe und wie sieht denn der Quellcode zum Schließen aus...
Muß dafür irgendeine Vorraussetzung erfüllt sein???
Handelt es sich dabei um Hinweise oder Fehlermeldungen oder wofür sind diese modalen Fenster und Messageboxen.. was zeigen die denn an?

Bei den Angaben könnte es alles Mögliche sein ...

haderlump
Beiträge: 185
Registriert: Fr 18. Jan 2013, 09:29
OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
CPU-Target: Celeron

Re: Modale Fenster lassen sich nicht schließen

Beitrag von haderlump »

bei einer Messagebox zeigt es bloss einen Text an.
Andere Fenster haben halt andere Inhalte. Deren Anzeigen und Manipulationen funktionieren auch einwandfrei.
Das Schließen erfolgt über die bei Windows üblichen Buttons rechts oben (x) bzw. bei Showmessage über den zugehörigen Button.
Bei den Formularen gibt es auch noch Exit-Buttons
In den onclose-Ereignisen steht nix drin. Also keinerlei Bedingungen. Das ist es ja, was mich in den "Wahnsinn " treibt.
Bei anderen Programmen geht es ja. Bei nichtmodalen Fenstern geht es auch ganz normal.

SoE
Beiträge: 84
Registriert: Mo 31. Aug 2015, 01:51

Re: Modale Fenster lassen sich nicht schließen

Beitrag von SoE »

Klingt erstmal sehr drollig, hab' ich so noch nie gehört...

Bedeutet das, dass das Programm den Eingabefokus verliert?
Oder ist das eher ein Freeze-Zustand?

Sogar bei dem einfachen ShowMessage-Dialog? Reagiert der den optisch: läßt sich der Button eindrücken?
Aber das Fenster bleibt trotzdem sichtbar...

Irgendwie denkt man bei sowas ja immer erstmal an AV-Software & Co.
Sind die beiden XP Installationen identisch? Kann mir kaum vorstellen, daß das an der Hardware liegt.
Hatte bis vor kurzem XP auf 'nem alten P4 und CeleronM430... lief super, war allerdings auch ein nLITE-XP...

haderlump
Beiträge: 185
Registriert: Fr 18. Jan 2013, 09:29
OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
CPU-Target: Celeron

Re: Modale Fenster lassen sich nicht schließen

Beitrag von haderlump »

Das ist ein Freeze-Zustand. Auch die Buttons ändern sich optisch nicht.
Die Formularaufrufe habe ich von showmodal in show umgewandelt, die funktionieren jetzt.
Ich habe mal ein kurzes Testprogramm geschrieben. Über einen Button rufe ich eine Messagebox auf. Und die kann ich wieder ganz normal schließen.
Die Windows-Versionen konnte ich noch nicht überprüfen, müssten aber schon gleich sein, stammen ja von der gleichen Installations-CD.
Das ist alles sehr komisch. Einen Virus glaube ich kann ich ausschließen, da der Rechner noch nie Onleine war.

SoE
Beiträge: 84
Registriert: Mo 31. Aug 2015, 01:51

Re: Modale Fenster lassen sich nicht schließen

Beitrag von SoE »

Das klingt ja so als ob da unmittelbar während oder kurz nach dem Dialog-Fenster etwas diesen Freeze auslöst. Wenn das bei neuerer Hardware kein Problem darstellt, dann muß es ja QuellCode sein der so ähnlich wie "SLEEP" unterschiedliche Ergebnisse bringt bei unterschiedlich viel Power. Also der schnelle (starke) Rechner schafft es noch, aber der langsame Rechner schafft es nicht mehr und dann 'Bumm'...

Ist zumindest das Erste was mir durch den Kopf geht... viel Erfolg beim Suchen...

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Modale Fenster lassen sich nicht schließen

Beitrag von Michl »

haderlump hat geschrieben:Ich habe mal ein kurzes Testprogramm geschrieben. Über einen Button rufe ich eine Messagebox auf. Und die kann ich wieder ganz normal schließen.
Wenn das funktioniert, dann liegt der Fehler sicherlich irgendwo in deinem Programm. Manchmal liegt der Fehler in einer Ecke, in der man diesen überhaupt nicht vermutet (z.B. bestimmte Events erzeugen eine Rekursion).

Du könntest andere Lazarusversionen testen, wie diese sich verhalten.
Du könntest dein Programm mitloggen und das Log versuchen auszuwerten.
Du könntest dein Programm debuggen und versuchen die Ursache zu finden (was jetzt meine erste Wahl wäre).
Du könntest eine Kopie deines Programms soweit reduzieren, bis du zu dem Testprogramm kommst. Irgendwo auf dem Weg dahin wird der Knoten gelöst werden.

haderlump hat geschrieben:Auf meinen anderen Rechnern kann ich das Programm nicht testen, da ich zwingend 2 serielle Schnittstellen benötige.
Ich würde da die Ursache vermuten (evtl. in einer Endlosschleife).

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

wp_xyz
Beiträge: 4888
Registriert: Fr 8. Apr 2011, 09:01

Re: Modale Fenster lassen sich nicht schließen

Beitrag von wp_xyz »

haderlump hat geschrieben:... 2 serielle Schnittstellen ...

Bist du sicher, dass die Schnittstellen richtig angesprochen werden? Vielleicht wartet dein Programm auf eine Antwort einer Schnittstelle und blockiert sich dadurch? Deaktiviere probehalber alles, was mit der seriellen Schnittstelle zusammenhängt. Tritt der Hänger dann immer noch auf?

Antworten