新しく発言する EXIT インデックスへ
PRINT命令について

  PRINT  命令について まっちゃん 2006/07/31 04:34:31 
  PRINT文はテキストファイル出力のための命令... 白石 和夫 2006/07/31 08:27:55 
   └テキスト出力に色を付ける例です。 白石 和夫 2006/07/31 09:59:36 
    └外部副プログラム化しました。 白石 和夫 2006/07/31 10:36:08 
     └SetColorの引数R,G,Bには0以上255以下の整数... 白石 和夫 2006/07/31 10:38:24 
      └ありがとうございました。 まっちゃん 2006/08/01 03:34:14 

  PRINT  命令について まっちゃん 2006/07/31 04:34:31  ツリーへ

PRINT 命令について 返事を書く
まっちゃん 2006/07/31 04:34:31
PRINT 命令で、表示される文字(数値)の色を変える事は
できますか?。

例えば、

INPUT a
PRINT a
end

この時に、aの表示色を赤にする、
等です。

よろしくお願いいたします。

  PRINT文はテキストファイル出力のための命令... 白石 和夫 2006/07/31 08:27:55  ツリーへ

Re: PRINT 命令について 返事を書く
白石 和夫 2006/07/31 08:27:55
PRINT文はテキストファイル出力のための命令なので,色を付けることは不可能です。
色を付けるためには,
(1)グラフィック画面を利用する
(2)テキスト出力画面をRichEditコントロールとして利用してWindows APIを利用して制御する
の2つの方法が考えられます。
(1)を使えば,JIS規格の範囲で可能です。(2)の場合,互換性は損なわれます。

   └テキスト出力に色を付ける例です。 白石 和夫 2006/07/31 09:59:36  ツリーへ

Re: PRINT文はテキストファイル出力のための命令... 返事を書く
白石 和夫 2006/07/31 09:59:36
テキスト出力に色を付ける例です。
行単位でグラデーションをかけています。
200行以降を,適宜,書き換えれば異なる色が使えます。
100 OPTION CHARACTER Byte
110 SUB SendMessage(hwnd,msg,wparam,lparam$)
120 assign "USER32.DLL","SendMessageA"
130 END SUB
140 LET EM_GETCHARFORMAT=BVAL("043A",16)
150 LET EM_SETCHARFORMAT=BVAL("0444",16)
160 LET CHARFORMAT$=CHR$(60) & REPEAT$(CHR$(0),59)
170 call SendMessage(WinHandle("RICHEDIT"),EM_GETCHARFORMAT,0, CHARFORMAT$)
180 LET CHARFORMAT$(5:12)=CHR$(255) & CHR$(255) & CHR$(255) & CHR$(255) & CHR$(0)& CHR$(0)& CHR$(0)& CHR$(0)
190
200 FOR x=1 TO 10
210 LET red=255
220 LET green=x*20
230 LET blue=0
240 LET CHARFORMAT$(21:24)=CHR$(red) & CHR$(green) & CHR$(blue) & CHR$(0)
250 CALL SendMessage(WinHandle("RICHEDIT"),EM_SETCHARFORMAT,1, CHARFORMAT$)
260 PRINT x,SQR(x)
270 NEXT x
280 END

    └外部副プログラム化しました。 白石 和夫 2006/07/31 10:36:08  ツリーへ

Re: テキスト出力に色を付ける例です。 返事を書く
白石 和夫 2006/07/31 10:36:08
外部副プログラム化しました。

100 DECLARE EXTERNAL SUB SetColor
110 FOR x=1 TO 10
120 CALL SetColor(255,0,0)
130 PRINT x,
140 CALL SetColor(0,0,255)
150 PRINT SQR(x)
160 NEXT x
170 END
180
190 EXTERNAL SUB SetColor(R,G,B)
200 OPTION CHARACTER Byte
210 SUB SendMessage(hwnd,msg,wparam,lparam$)
220 assign "USER32.DLL","SendMessageA"
230 END SUB
240 LET EM_SETCHARFORMAT=BVAL("0444",16)
250 LET CHARFORMAT$=CHR$(60) & REPEAT$(CHR$(0),59)
260 LET CHARFORMAT$(8:8)=CHR$(64)
270 LET CHARFORMAT$(21:24)=CHR$(R) & CHR$(G) & CHR$(B) & CHR$(0)
280 CALL SendMessage(WinHandle("RICHEDIT"),EM_SETCHARFORMAT,1, CHARFORMAT$)
290 END sub

     └SetColorの引数R,G,Bには0以上255以下の整数... 白石 和夫 2006/07/31 10:38:24  ツリーへ

Re: 外部副プログラム化しました。 返事を書く
白石 和夫 2006/07/31 10:38:24
SetColorの引数 R,G,B には0以上255以下の整数を指定します。

      └ありがとうございました。 まっちゃん 2006/08/01 03:34:14  ツリーへ

Re: SetColorの引数R,G,Bには0以上255以下の整数... 返事を書く
まっちゃん 2006/08/01 03:34:14
ありがとうございました。
おかげさまで、見やすい画面になりました。
感謝と共に、ますますのご発展を祈念致します。


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。