VB6 から失われたもの
VB6 とそれ以降の VB との間には,非常に大きなプログラム言語仕様の変更があります.というか,『別の言語なんじゃないの?!』という感も.
VB6 にあって,それ以降のバージョンにないもの,は非常にたくさんありますが,私の用途に関係したものとしては;
1.RGB()関数
2.AutoRedrawプロパティ
3.コントロール配列
...といったところでしょうか? 3.はあきらめればよいとして,1と2は困ったもんです.事前のリサーチでこれを知って,私は暗~い気持ちになりました.
まず1ですけど,要するに描画色を RGB 個別指定で決める関数で,例えば RGB(255, 0 0)と指定すれば赤になります.これがなんで大事かというと,データの属性を連続した描画色で表現するのに非常に便利なんですね.
例えば,0 - 255 m の標高値を RGB (標高,標高,標高)で指定すれば,黒から白へ連続して変化するグレースケールで簡単に表現できる,というわけです(図参照).これを Dark Grey とかの離散値で表現しなければいけないとしたら,とてもじゃないけど.
で,この件,あっさりと解決しました.ちゃんと代りの方法が用意されていたということになります.方法は二つあって,
MyPen.Color = Color.FromArgb(255, DotCol, DotCol, DotCol)
というのと,
MyPen.Color = ColorTranslator.FromOle(RGB(DotCol, DotCol, DotCol))
というのがあります.どちらを使っても結果は同じですが,私は前者を使ってます.なんとなく簡潔なので.
なお,FromArgb の第1パラメータは不透明度(αチャンネル)なので,使いようによっては色々と凝れるかも.
残ったのは2の問題,これは非常に手ごわい問題でした.以下,続編.
2015/02/24 14:30:59