Ignore:
Timestamp:
Sep 18, 2008, 4:01:32 AM (16 years ago)
Author:
NoWest
Message:

さらにConsoleクラスを強化しました。
また、COLOR命令、CLS命令、LOCATE命令に対応しました。
PRINT命令はStringクラスのみ対応ですが、一応BASICの命令だけで色々できるようになりました。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/ablib/src/basic/dos_console.sbp

    r606 r627  
    66#define _INC_DOS_CONSOLE
    77
    8 
    9 Dim _System_hConsoleErr = GetStdHandle(STD_ERROR_HANDLE)
    10 Dim _System_hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE)
    11 Dim _System_hConsoleIn = GetStdHandle(STD_INPUT_HANDLE)
    12 System.Console.SetError(
    13      System.IO.TextWriter.Synchronized(New System.IO.StreamWriter(
    14         New System.IO.FileStream(_System_hConsoleErr, System.IO.FileAccess.Write, False))))
    15 
    16 System.Console.SetOut(
    17      System.IO.TextWriter.Synchronized(New System.IO.StreamWriter(
    18         New System.IO.FileStream(_System_hConsoleOut, System.IO.FileAccess.Write, False))))
    19 System.Console.SetIn(
    20     System.IO.TextReader.Synchronized(New System.IO.StreamReader(
    21         New System.IO.FileStream(_System_hConsoleIn, System.IO.FileAccess.Read, False))))
     8System.Console.OpenStandardError()
     9System.Console.OpenStandardInput()
     10System.Console.OpenStandardOutput()
    2211
    2312'---------- command.sbp内で定義済み ----------
     
    5544End Sub
    5645
     46/*
     47@brief コンソール出力の内容を削除
     48@date 2008/9/18
     49@auther NoWest
     50*/
     51Macro CLS()(num As Long)
     52    Select Case num
     53        Case 2
     54            Exit Macro
     55        Case Else
     56            System.Console.Clear()
     57    End Select
     58End Macro
     59
     60/*
     61@brief コンソール出力の前景色・背景色を変更
     62@date 2008/9/18
     63@auther NoWest
     64*/
     65Macro COLOR(TextColorCode As Long)(BackColorCode=-1 As Long)
     66    Select Case TextColorCode
     67        Case 1
     68            System.Console.ForegroundColor = System.ConsoleColor.Blue
     69        Case 2
     70            System.Console.ForegroundColor = System.ConsoleColor.Red
     71        Case 3
     72            System.Console.ForegroundColor = System.ConsoleColor.Magenta
     73        Case 4
     74            System.Console.ForegroundColor = System.ConsoleColor.Green
     75        Case 5
     76            System.Console.ForegroundColor = System.ConsoleColor.Cyan
     77        Case 6
     78            System.Console.ForegroundColor = System.ConsoleColor.Yellow
     79        Case 7
     80            System.Console.ForegroundColor = System.ConsoleColor.Gray
     81        Case Else
     82            System.Console.ForegroundColor = System.ConsoleColor.Black
     83    End Select
     84
     85    Select Case BackColorCode
     86        Case -1
     87            Exit Macro
     88        Case 1
     89            System.Console.BackgroundColor = System.ConsoleColor.Blue
     90        Case 2
     91            System.Console.BackgroundColor = System.ConsoleColor.Red
     92        Case 3
     93            System.Console.BackgroundColor = System.ConsoleColor.Magenta
     94        Case 4
     95            System.Console.BackgroundColor = System.ConsoleColor.Green
     96        Case 5
     97            System.Console.BackgroundColor = System.ConsoleColor.Cyan
     98        Case 6
     99            System.Console.BackgroundColor = System.ConsoleColor.Yellow
     100        Case 7
     101            System.Console.BackgroundColor = System.ConsoleColor.Gray
     102        Case Else
     103            System.Console.BackgroundColor = System.ConsoleColor.Black
     104    End Select
     105End Macro
     106
     107/*
     108@brief コンソール出力のカーソル位置を変更
     109@date 2008/9/18
     110@auther NoWest
     111*/
    57112Macro LOCATE(x As Long, y As Long)
    58     SetConsoleCursorPosition(_System_hConsoleOut, MAKELONG(x, y))
     113    System.Console.SetCursorPosition(x,y)
    59114End Macro
    60115
Note: See TracChangeset for help on using the changeset viewer.