Einsteigerfragen zur PROFAN Programmierung
  Suchen
 Zurück zur Übersicht
 AutorThema: ESC und CTRL-C
Andreas Spelter
Datum:24.07.02 13:03 Antwortenals Email verschicken (andreas.spelter@t-online.de) 


Moin moin,

noch ein Problem im Terminalprogramm.

Funktioniert schon alles sehr gut, aber CTRL-C und ESC machen mir Probleme. CTRL-A, CTRL-B, CTRL-D, CTRL-E, ... funktionieren.

Wenn ich ein CTRL-C senden will hängt mein Programm sich auf, empfangen kann ich es. In diesem Fall ist es egal ob ich mein Programm unter Profan mit RUN starte oder ohne Profan die von mir erstellte EXE.

Mit ESC ist es etwas anders, das kann ich senden wenn ich mein Programm unter Profan mit RUN ausführe. Wenn ich aber die EXE ausführe bekomme ich einen "Anwendungsfehler" mit folgendem Inhalt:
Exeption EAccessViolation im Modul TERMINAL.EXE bei 000336C5
Zugriffsverletzung bei Adresse 0043483D. Lesen von Adresse FFFFFFFF

Das selbe Problem habe ich auch wenn ich das ESC empfange.

Bei beiden Fehlern verschwindet der Titel in meinem Programmfenster und nur mein Programm läuft nicht mehr, Windows und alles anderen Anwendungen laufen noch.

Diese beiden Zeilen habe ich unter anderem in meiner Hauptschleife:

let sTxChar$ = inkey$()
case sTxChar$ <> "" : pSendeZeichen sTxChar$

und das ist die Prozedur pSendeZeichen

rem Prozedur sende Zeichen
proc pSendeZeichen
parameters s1$
writecom(iGerät%,s1$)
comerror(iGerät%)
if ord(s1$) < 32
if ord(s1$) < 16
let s1$ = "[0"+hex$(ord(s1$))+"]"
elseif
let s1$ = "["+hex$(ord(s1$))+"]"
endif
endif

drawtext iXPosTx%,100,s1$
let iXPosTx% = iXPosTx% + len(s1$) * 9
if iXPosTx% > 590
let iXPosTx% = 10
whileloop 16
copybmp 5,10-620,120 > 5,9,0
endwhile
endif
let sZeichen$=""
endproc

Über einen Timer rufe ich jede Millisekunde die folgende Prozedur auf um alle Zeichen von der Schnittstelle abzuholen:

rem Prozedur Zeichen empfangen
proc pZeichenEmpfangen
let sRxChar$ = readcom$(iGerät%,1)
comerror(iGerät%)
while sRxChar$ <> ""
if ord(sRxChar$) < 32
if ord(sRxChar$) < 16
let sRxChar$ = "[0"+hex$(ord(sRxChar$))+"]"
elseif
let sRxChar$ = "["+hex$(ord(sRxChar$))+"]"
endif
endif
drawtext iXPosRx%,400,sRxChar$
let iXPosRx% = iXPosRx% + len(sRxChar$) * 9
if iXPosRx% > 590
let iXPosRx% = 10
whileloop 16
copybmp 5,150-620,270 > 5,149,0
endwhile
endif
let sRxChar$ = readcom$(iGerät%,1)
endwhile
endproc

Was stimmt hier nicht?

Viele Grüße
Andreas Spelter


Thorsten
Datum:24.07.02 17:17 Antwortenals Email verschicken (mrk@mrk-soft.de) 


Hi,

Das mit CTRL+C hatten wir schon mal (glaub Mailling-Liste),
und wohl ein Bug in Profan. Jedenfalls ist das nur in
Profan so, wenn diese Kombination gedrückt wird, das sich das
Prog dann Aufhängt.

Lösung: Bisher unbekannt !!!




Andreas Spelter
Datum: 30.07.02 07:42 Antwortenals Email verschicken (andreas.spelter@t-online.de) 


Moin moin,

und was ist mit ESC das im Interpreter funktioniert, in der EXE aber nicht?

Viele Grüße
Andreas Spelter


 Zurück zur Übersicht
 

 Ein kostenloses WebMart Forum
WebMart Homepage Tools kostenlos
doteu.info: Don´t miss your .eu-Domain