/*

このプログラムはHSP3の2009年のコンテストに参加した時の物です。

実際はシーケンサの通信用のプログラムとドッキングして内部リーレーの

ON/OFF操作と内部リレーのON/OFF状態表示をする予定でした。

今回は時間が無くて今回は表示部分だけの参加でした。特殊なソフトなので反響は有りませんでした。

もう、忘れて来たのでここにアップしました。(^^);

ここからです。

*/

;-------------------------------------------------------------------------------

;   シーケンサ動作モニター 表示部分作成中

;   表示ランプ ON/OFF時表示色変更可能

;   操作ボタン  操作時表示形状変更記憶

;   2009/09/12  color_pb.hsp

 

#include "llmod3.hsp"

#include "misc.hsp"

#include "pbstyle.hsp"

 

;-------------------------------------------------------------------------------

;   module

 

;四角形描画

#module "line_only_box"

#deffunc boxl int x,int y,int x2,int y2

line x,y,x,y2

line x,y2,x2,y2

line x2,y2,x2,y

line x2,y,x,y

return

 

;カラーボタン    位置x  位置y  横幅  縦幅   赤色  緑色  青色  文字

#deffunc colorpb int px,int py,int sx,int sy,int r,int g,int b, str moji

    color r, g, b                       //ボタンの色

    boxf px,py,px+sx,py+sy              //四角形塗りつぶし

    color: boxl px,py,px+sx,py+sy       //外枠

    color: pos px,py+6: mes moji        //黒色で文字

return

#global

;-------------------------------------------------------------------------------

;   メインプログラム

;

    title "シーケンサ動作モニター  2009/09/12 color_pb090913.hsp"

    dim ID,24

 

;-------------------------------------------------------------------------------

    // 表示ランプ L

    px=10: py=10: pos px,py                     ;位置

    color 000,255,255: boxf px,py,px+80,py+26   ;色の設定

    color: boxl px,py,px+80,py+26: font "MS ゴシック",16,17 : objmode 2   ;文字の設定

    color: pos px,py+6: mes "  ラベル "         ;黒色で文字描画

    objmode 1

    

    // 表示ランプ X

    px=60: py=50: sx=64: sy=26: r=200: g=255: b=255: moji=""

    repeat 8

        colorpb px+sx*cnt, py, sx, sy, r, g, b, "  X"+strf("%02d", cnt)

    loop

 

    // 表示ランプ Y

    px=60: py+=30: sx=64: sy=26: r=200: g=255: b=255: moji=""

    repeat 8

        colorpb px+sx*cnt, py, sx, sy, r, g, b, "  Y"+strf("%02d", cnt)

    loop

 

    // 表示ランプ M

    px=60: py+=30: sx=64: sy=26: r=200: g=255: b=255: moji=""

    repeat 8

        colorpb px+sx*cnt, py, sx, sy, r, g, b, "  M"+strf("%02d", cnt)

    loop

 

    // ボタン配置 X

    pos_x=60: pos_y=200

    for n,0,8,1

        pos  pos_x + n*64, pos_y  : button "X"+strf("%02d", n),*bjump

    next

    // ボタンスタイル変更 X

    nmode = 9: repeat 8 : btnstyle cnt,nmode : loop

 

    // ボタン配置 Y

    pos_x=60: pos_y=200+24

    for n,0,8,1

        pos  pos_x + n*64, pos_y  : button "Y"+strf("%02d", n),*bjump

    next

    // ボタンスタイル変更 Y

    nmode = 9: repeat 8 : btnstyle cnt+8,nmode : loop

 

    // ボタン配置 M

    pos_x=60: pos_y=200+48

    for n,0,8,1

        pos  pos_x + n*64, pos_y  : button "M"+strf("%02d", n),*bjump

    next

    // ボタンスタイル変更 Y

    nmode = 9: repeat 8 : btnstyle cnt+16,nmode : loop

 

    // 操作ボタン

    color: pos 60,400:  button "  ON  ",*bjump_on

    color: pos 60,424:  button "  OFF ",*bjump_off

 

    stop

 

*bjump

    // ボタンのID表示

    Obj_ID = stat

    ID(Obj_ID) ^ 1

    pb1_x=10: pb1_y=350: color 240, 240, 240                    ; 白色で四角形塗りつぶし

    boxf pb1_x,pb1_y,pb1_x+210,pb1_y+20

    color: pos pb1_x,pb1_y+3: mes " ボタン ObjectID = "+ Obj_ID+" "+ID(Obj_ID)  ; 黒色で文字描画

 

    // 表示ランプ X の色変更

    if Obj_ID < 8{

        px=60: py=50: sx=64: sy=26

        if ID(Obj_ID) == 1 {r=000: g=255: b=000} else {r=200: g=255: b=255}

        colorpb px+sx*Obj_ID, py, sx, sy, r, g, b, "  X"+strf("%02d", Obj_ID)

        goto *e

    }

    // 表示ランプ Y の色変更

    if Obj_ID < 16{

        px=60: py=80: sx=64: sy=26

        if ID(Obj_ID) == 1 {r=000: g=255: b=000} else {r=200: g=255: b=255}

        colorpb px+sx*(Obj_ID-8), py, sx, sy, r, g, b, "  Y"+strf("%02d", Obj_ID-8)

        goto *e

    }

    // 表示ランプ M の色変更

    if Obj_ID < 24{

        px=60: py=110: sx=64: sy=26

        if ID(Obj_ID) == 1 {r=000: g=255: b=000} else {r=200: g=255: b=255}

        colorpb px+sx*(Obj_ID-16), py, sx, sy, r, g, b, "  M"+strf("%02d", Obj_ID-16)

        goto *e

    }

*e

    

stop

 

*bjump_on   // 操作ボタン動作 on

    px=10: py=10: pos px,py                     ;位置

    color 255,255,000: boxf px,py,px+80,py+26   ;色の設定

    color: boxl px,py,px+80,py+26: font "MS ゴシック",16,17 : objmode 2   ;文字の設定

    color: pos px,py+6: mes "  ラベル "         ;黒色で文字描画

    objmode 1

stop

 

*bjump_off  // 操作ボタン動作 off

    px=10: py=10: pos px,py                     ;位置

    color 000,255,255: boxf px,py,px+80,py+26   ;色の設定

    color: boxl px,py,px+80,py+26: font "MS ゴシック",16,17 : objmode 2   ;文字の設定

    color: pos px,py+6: mes "  ラベル "         ;黒色で文字描画

    objmode 1

stop

 ソフト htmlファイル