在do-loop中使用十六进制颜色常数打印不同的彩色文本

时间:2018-07-26 13:59:25

标签: fortran intel-fortran

以下是我试图打印具有十种不同颜色的文本的程序,但是由于Intel fortran中没有dectohex(4)函数,如何在quickwin应用程序中实现所需输出?

谢谢

 ! build as a QuickWin App.
USE IFQWIN
INTEGER(2) result
INTEGER(4) i
TYPE (xycoord) xys

result = INITIALIZEFONTS()
result = SETFONT('t''Arial''h18w10pvib')

CALL MOVETO(INT2(100),INT2(100),xys)
grstat=SETCOLORRGB(#0000FF) !red color
CALL OUTGTEXT('The brown fix jumps over lazy dog. ')
!Now print ten times with different colors

do i=1,10
        grstat=SETCOLORRGB(dectohex(i))
       CALL OUTGTEXT('The brown fix jumps over lazy dog. ')
end do

END

1 个答案:

答案 0 :(得分:1)

向您致敬!我根据Scott Johnson的第一条评论找到了解决方案。

我所做的是制作一个4字节的整数数组来复制“枚举”数据类型,该数据类型默认情况下在fortran中不可用。

INTEGER(4) , DIMENSION (3)::COLORS
COLORS=(/#0000FF, #00FF00, #FF0000/) !just 3 colors to illustrate the solution
do i=1,3
        grstat=SETCOLORRGB(COLORS(i))
      CALL OUTGTEXT('The brown fix jumps over lazy dog. ')
end do

您可以将此概念扩展到其他程序。 谢谢。

Jai Imran Khan。