fb:porticula NoPaste
DEBUG-Info mit Macro im Fenster anzeigen
| Uploader: |  Lothar Schirm | 
| Datum/Zeit: | 01.04.2011 18:35:24 | 
'==============================================================================
' Debuggen von Programmen (Fenstertechnik mit VIEW PRINT)
' DEBUG.BAS
' Erstellt am 11.11.2010
' Letzte Ueberarbeitung am 01.04.11
' Autor: Lothar Schirm
'==============================================================================
' Zum Debuggen im Fenster muessen folgende Anweisungen unter die betreffende(n)
' Programmzeile(n) geschrieben werden (Beispiel):
'
' ViewDEBUG(1, 5)  'DEBUG-Fenster Zeile 1 bis 5 oeffnen
' DEBUG(x, 0)      'DEBUG-Ausgaben (Variable x, y, z) ins DEBUG-Fenster
' DEBUG(y, 0)
' DEBUG(z, 1)
' ExitDEBUG        'Rueckkehr aus dem DEBUG-Fenster ins Programm
'
' Wenn ViewDEBUG und ExitDEBUG ausgelassen werden, erfolgt die Ausgabe der
' DEBUG-Informationen fortlaufend im Programm, beginnend ab der aktuellen
' Cursorposition.
DIM SHARED AS INTEGER Prog_row, Prog_col, Screen_bpp, Prog_fcolr, Prog_bkcolr, _
                      TextWin_row0, TextWin_row1, DEBUG_key
DECLARE SUB ViewDEBUG (Startzeile AS INTEGER, Endzeile AS INTEGER)
DECLARE SUB ExitDEBUG
#MACRO DEBUG(v, Break)
' Ausgeben von DEBUG-Informationen (Variable v). Bei Break <> 0 wird das Programm
' angehalten. Fortsetzen mit F1, Beenden mit ESC.
  'Ausgabeformat: Prozedur, Zeile, "v: ", v
  PRINT __FUNCTION__; __LINE__; SPACE(1); #v; ": "; v
  IF Break <> 0 THEN
    PRINT "F1: Weiter   ESC: Ende"
    DO
      DEBUG_key = GETKEY
    LOOP UNTIL DEBUG_key = &H3BFF OR DEBUG_key = &H1B
    IF DEBUG_key = &H1B THEN END
  END IF
#ENDMACRO
SUB ViewDEBUG (Startzeile AS INTEGER, Endzeile AS INTEGER)
' Eroeffnet mit VIEW PRINT Startzeile to Endzeile ein DEBUG-Fenster, in das alle
' nachfolgenden Ausgaben erfolgen.
  'Aktuelle Textfenstergroesse, Cursorposition und Farben des Programms speichern:
  TextWin_row0 = LOWORD(VIEW PRINT())
  TextWin_row1 = HIWORD(VIEW PRINT())
  Prog_row = CSRLIN
  Prog_col = POS
  SCREENINFO ,,, Screen_bpp
  IF Screen_bpp < 2 THEN
    Prog_fcolr = LOWORD(COLOR)
    Prog_bkcolr = HIWORD(COLOR)
  END IF
  'DEBUG-Fenster schwarz auf kobaltblau (nur bei 1 byte pro Pixel):
  VIEW PRINT Startzeile TO Endzeile
  IF Screen_bpp < 2 THEN COLOR 0, 3
  CLS 2
END SUB
SUB ExitDEBUG
' Rueckkehr aus dem DEBUG-Fenster in das Programm
  VIEW PRINT TextWin_row0 TO TextWin_row1
  IF Screen_bpp < 2 THEN COLOR Prog_fcolr, Prog_bkcolr
  LOCATE Prog_row, Prog_col
END SUB
	
 Wer ist online?
 Wer ist online? Buchempfehlung
 Buchempfehlung
 FreeBASIC-Chat
 FreeBASIC-Chat
 FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!
			FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!


