プロデル、調査 その41

# 概要
プロデルが、CLRらしいので、調べて見た。
7セグメント、見つけたのでやってみた。

# 参考にしたページ

https://produ.irelang.jp/bbs/progbbs/forump.php?mode=view&id=71

# 写真

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/65524818-900e-4809-8872-b188e4b10481.png)

# サンプルコード

```
//7seg

メイン画面を表示する
待機する

メイン画面とは
　　	ウィンドウを継承する
　　	+表示板1
　　	はじめの手順
　　　　	初期化する
　　　　	描画する
　　	終わり
　　	初期化する手順
　　		この設計スケール比率を｛144, 144｝に変える
　　		この内部領域大きさを｛826, 193｝に変える
　　		この内容を「デジタルディスプレイ」に変える
　　		初期化開始する
　　			キャンバス1というキャンバスを作る
　　　　			その位置と大きさを｛0, 0, 826, 193｝に変える
　　　　			その背景色を「黒」に変える
　　　　			そのドッキング方向を「全体」に変える
　　		初期化終了する
　　	終わり
　　	描画する手順
　　　　	デジタル板（キャンバス1）を作って表示板1とする
　　　　　　		その位置と大きさを{0, 0, 500, 100}に変える
　　　　　　		その桁数は、5
　　　　　　		その内容は、「abc12」
　　　　	表示板1をキャンバス1に追加する
　　　　	キャンバス1を更新する
　　	終わり
　　	キャンバス1のキーが押された時の手順
　　　　	表示板1の内容は、表示板1の内容 &［この時のキー名から末尾から1文字取り出したもの］
　　　　	キャンバス1を更新する
　　	終わり
終わり

デジタル板とは
　　	子キャンバスを継承する
　　	部品一覧={}
　　	表示内容は、「」
　　	はじめ(子キャンバス)の手順=(子キャンバス)　　
　　		自分は、子キャンバス
　　	終わり
　　	桁数を設定する手順
　　　　	クリアする
　　　　	桁幅は、自分の幅 / 設定値
　　　　	番号を1から設定値まで増やしながら繰り返す
　　　　　　		セグメント部品（自分）を作って部品一覧(番号)とする
　　　　　　		部品一覧(番号)を自分に追加する
　　　　　　　　		その位置と大きさを{(番号 - 1) * 100, 0, 桁幅, 桁幅}に変える
　　　　	繰り返し終わり
　　	終わり
　　	内容を取得する手順
　　　　	表示内容を返す
　　	終わり
　　	内容を設定する手順
　　　　	表示内容は、設定値から末尾から5文字取り出したもの
　　　　	番号を1から部品一覧の個数まで増やしながら繰り返す
　　　　　　		もし番号が部品一覧の個数より大きいなら繰り返しから抜け出す
　　　　　　		もし番号が表示内容の文字数より大きいなら
　　　　　　　			部品一覧(番号)の値は、「0」
　　　　　　		そうでなければ
　　　　　　　			部品一覧(番号)の値は、表示内容の番号文字目から1文字取り出したもの
　　　　　　		もし終わり
　　　　	繰り返し終わり
　　	終わり
終わり

セグメント部品とは
　　	子キャンバスを継承する
　　	点灯色は、「#99ff99」
　　	消灯色は、「#333333」
　　	変換表={
　　　　「0」=0x7E,
　　　　「1」=0x30,
　　　　「2」=0x6D,
　　　　「3」=0x79,
　　　　「4」=0x33,
　　　　「5」=0x5B,
　　　　「6」=0x5F,
　　　　「7」=0x70,
　　　　「8」=0x7F,
　　　　「9」=0x7B,
　　　　「a」=0x77,
　　　　「b」=0x1F,
　　　　「c」=0x4E,
　　　　「d」=0x3D,
　　　　「e」=0x4F,
　　　　「f」=0x47,
　　	}
　　	はじめ(子キャンバス)の手順=(子キャンバス)
　　　　	連続線を描いてセグメントAとする　　
　　　　　　		その背景色を消灯色に変える
　　　　　　		それに{28, 9}を加える
　　　　　　		それに{88, 9}を加える
　　　　　　		それに{89, 10}を加える
　　　　　　		それに{80, 16}を加える
　　　　　　		それに{36, 16}を加える
　　　　	連続線を描いてセグメントBとする　　
　　　　　　		その背景色を消灯色に変える
　　　　　　		それに{92, 15}を加える
　　　　　　		それに{84, 45}を加える
　　　　　　		それに{78, 49}を加える
　　　　　　		それに{74, 45}を加える
　　　　　　		それに{81, 17}を加える
　　　　　　		それに{90, 11}を加える
　　　　	連続線を描いてセグメントCとする　　
　　　　　　		その背景色を消灯色に変える
　　　　　　		それに{77, 51}を加える
　　　　　　		それに{82, 55}を加える
　　　　　　		それに{75, 84}を加える
　　　　　　		それに{71, 89}を加える
　　　　　　		それに{65, 83}を加える
　　　　　　		それに{72, 54}を加える
　　　　　　		それに{78, 51}を加える
　　　　	連続線を描いてセグメントDとする　　
　　　　　　		その背景色を消灯色に変える
　　　　　　		それに{18, 84}を加える
　　　　　　		それに{64, 84}を加える
　　　　　　		それに{70, 90}を加える
　　　　　　		それに{68, 91}を加える
　　　　　　		それに{14, 91}を加える
　　　　　　		それに{10, 88}を加える
　　　　	連続線を描いてセグメントEとする　　
　　　　　　		その背景色を消灯色に変える
　　　　　　		それに{21, 51}を加える
　　　　　　		それに{25, 55}を加える
　　　　　　		それに{18, 82}を加える
　　　　　　		それに{9, 87}を加える
　　　　　　		それに{8, 85}を加える
　　　　　　		それに{15, 55}を加える
　　　　	連続線を描いてセグメントFとする　　
　　　　　　		その背景色を消灯色に変える
　　　　　　		それに{27, 10}を加える
　　　　　　		それに{34, 16}を加える
　　　　　　		それに{27, 45}を加える
　　　　　　		それに{21, 49}を加える
　　　　　　		それに{17, 45}を加える
　　　　　　		それに{24, 16}を加える
　　　　	連続線を描いてセグメントGとする　　
　　　　　　		その背景色を消灯色に変える
　　　　　　		それに{23, 50}を加える
　　　　　　		それに{29, 46}を加える
　　　　　　		それに{72, 46}を加える
　　　　　　		それに{76, 50}を加える
　　　　　　		それに{70, 53}を加える
　　　　　　		それに{26, 53}を加える
　　	終わり
　　	値を設定する手順
　　　　	倍率は、幅 / 100
　　　　	コードは、変換表(設定値の小文字)
　　　　	もしコードと0x40の論理積が0でなければ
　　　　　　		セグメントAの背景色は、点灯色
　　　　	そうでなければ
　　　　　　		セグメントAの背景色は、消灯色
　　　　	もし終わり
　　　　	もしコードと0x20の論理積が0でなければ
　　　　　　		セグメントBの背景色は、点灯色
　　　　	そうでなければ
　　　　　　		セグメントBの背景色は、消灯色
　　　　	もし終わり
　　　　	もしコードと0x10の論理積が0でなければ
　　　　　　		セグメントCの背景色は、点灯色
　　　　	そうでなければ
　　　　　　		セグメントCの背景色は、消灯色
　　　　	もし終わり
　　　　	もしコードと0x8の論理積が0でなければ
　　　　　　		セグメントDの背景色は、点灯色
　　　　	そうでなければ
　　　　　　		セグメントDの背景色は、消灯色
　　　　	もし終わり
　　　　	もしコードと0x4の論理積が0でなければ
　　　　　　		セグメントEの背景色は、点灯色
　　　　	そうでなければ
　　　　　　		セグメントEの背景色は、消灯色
　　　　	もし終わり
　　　　	もしコードと0x2の論理積が0でなければ
　　　　　　		セグメントFの背景色は、点灯色
　　　　	そうでなければ
　　　　　　		セグメントFの背景色は、消灯色
　　　　	もし終わり
　　　　	もしコードと0x1の論理積が0でなければ
　　　　　　		セグメントGの背景色は、点灯色
　　　　	そうでなければ
　　　　　　		セグメントGの背景色は、消灯色
　　　　	もし終わり
　　	終わり
終わり
	
	
	

```

以上。