グリッドイメージ
勉強がてら作ってみました。穴だらけですが。
113行。
□グリッドイメージ
・アイテム…配列を指定してください。
・予備間隔…線と文字の間隔。スタイルシートでいうところのpadding。
・タイトル色…1行目の色を指定できます。
・背景色…背景色を指定できます。
・中央揃え…中央揃えにする場合は1を指定してください。
・セル色設定(X,YをRGBに)…X,Yのセルの色をRGB色に変更します。
<弱点>
・背景色を変更すると背景色で画面クリアされてしまいます。
・セル色設定した後にタイトル色設定・アイテム設定をするとセル色設定が消えます。
・線太さは1を推奨。それ以外だと微妙にイマイチです。そのうち直す。
・各要素に複数行ある場合、残念な結果になります。
・よく見ると潜望鏡みたいになっています。そのうち直そう。
■グリッドイメージ+イメージ ・アイテム←アイテム表示→アイテム取得 ・{非公開}列W{=0} ・{非公開}行H{=0} ・{非公開}文字H#いずれなくす。 ・{非公開}最大バイト数 ・{非公開}AA ・{非公開}FF{=""} ・{非公開}XX ・{非公開}YY ・{非公開}前回値 ・{非公開}一時色 ・{非公開}一時線太さ ・予備間隔{=3} ・{非公開}Fアイテム{=0} ・{非公開}アイテム取得〜それはFアイテム ・{非公開}アイテム表示(Vで)〜 FアイテムはV VをCSV取得して表行列交換してFFに代入 //変数初期化 列W=0 行H=0 前回値=0 文字H=文字高取得(「S」) //最初にイメージのサイズを割り出す。 //とりあえず高さは各要素が1行しかない設定。 YY=(表列数(FF))*(文字H+予備間隔*2)+INT(線太さ) 高さはYY FFを反復 最大バイト数=0 反復 AA=文字幅取得(それ) もしAA>最大バイト数なら 最大バイト数=AA 列Wに最大バイト数を配列追加 列Wを反復 XX=それ+前回値+予備間隔*2*(回数>1) 列W\(回数-1)=XX 前回値はXX 幅は前回値+INT(線太さ+1) 背景色はF背景色 一時色は塗り色 一時線太さは線太さ 線太さは0 塗色はFタイトル色 0,0から前回値+1,文字H+予備間隔*2+1へ四角 線太さは一時線太さ 塗色は一時色 列Wを反復 それ,0からそれ,YYへ線 FFを表行列交換して反復 YY=(回数-1)*(文字H+予備間隔*2)+予備間隔 0,YY-予備間隔から前回値,YY-予備間隔へ線 反復 XX=(列W\(回数-1))+予備間隔 AA=それ もしF中央揃え=1なら XX=XX+((列W\(回数))-XX-(文字幅取得(AA)))/2 自身のXX*1,YY*1へAAを文字表示 YY=(回数)*(文字H+予備間隔*2)+予備間隔 0,YY-予備間隔から前回値,YY-予備間隔へ線 ・セル色設定(X,YをRGBに)〜 //アイテム\X\Yのセルの色をRGBに変換する 一時色は塗り色 一時線太さは線太さ 線太さは0 塗色はRGB (列W\(X)),Y*(文字H+予備間隔*2)から(列W\(X+1))+1,(Y+1)*(文字H+予備間隔*2)+1へ四角 XX=(列W\(X))+予備間隔 もしF中央揃え=1なら XX=XX+((列W\(X+1))-XX-(文字幅取得(Fアイテム\(Y)\(X))))/2 自身のXX,Y*(文字H+予備間隔*2)+予備間隔へ(Fアイテム\(Y)\(X))を文字表示 線太さは一時線太さ 塗色は一時色 ・タイトル色←タイトル色設定→タイトル色取得 ・{非公開}Fタイトル色{=$FFFFFF} ・{非公開}タイトル色取得〜それはFタイトル色 ・{非公開}タイトル色設定(RGBで)〜 Fタイトル色はRGB もしFアイテム<>""なら Fアイテムでアイテム表示 ・背景色←背景色設定→背景色取得 ・{非公開}F背景色{=$FFFFFF} ・{非公開}背景色取得〜それはF背景色 ・{非公開}背景色設定(RGBで)〜 F背景色はRGB RGBで画面クリア。 ・中央揃え{=0}←中央揃え設定→中央揃え取得 ・{非公開}F中央揃え{=0} ・{非公開}中央揃え取得〜それはF中央揃え ・{非公開}中央揃え設定(Sで)〜 F中央揃えはS 「地域,市内,北海道,東北,東北,関東,信越/北陸/東海,近畿,近畿,中国・四国,九州・沖縄 2kg以下,460円,920円,640円,550円,550円,550円,550円,640円,740円,920円 4kg以下,570円,"1,070円",790円,700円,700円,700円,700円,790円,890円,"1,070円" 6kg以下,680円,"1,210円",930円,840円,840円,840円,840円,930円,"1,030円","1,210円" 8kg以下,730円,"1,280円","1,000円",910円,910円,910円,910円,"1,000円","1,100円","1,280円" 11kg以下,790円,"1,350円","1,080円",990円,990円,990円,990円,"1,080円","1,170円","1,350円" 12kg以下,840円,"1,430円","1,150円","1,060円","1,060円","1,060円","1,060円","1,150円","1,250円","1,430円" 14kg以下,900円,"1,500円","1,220円","1,130円","1,130円","1,130円","1,130円","1,220円","1,320円","1,500円" 16kg以下,950円,"1,570円","1,290円","1,200円","1,200円","1,200円","1,200円","1,290円","1,390円","1,570円" 18kg以下,"1,000円","1,640円","1,360円","1,270円","1,270円","1,270円","1,270円","1,360円","1,460円","1,640円" 21kg以下,"1,060円","1,710円","1,440円","1,350円","1,350円","1,350円","1,350円","1,440円","1,530円","1,710円" 」をCSV取得してQQに代入 線太さは1 料金表とはグリッドイメージ その予備間隔は3 その中央揃えは1 そのアイテムはQQ そのタイトル色は黄色 料金表で5,5を緑色にセル色設定
<こめんと>
ただの表です。
クリック位置からクリックしたセルがどれかわかると更に遊べる気がします。
本当は1行おきに色を変えるとか、指定した列のみ中央または左右揃えとかやってみたかったけど指定の仕方に悩み始めてしまってやめ。処理もややこしいことになりそう。
今思いついたんだが、クリックしたセルを得られるんだったら専用のエディタを用意しておけば直接編集したっぽくできるんじゃないか?
グループ内でサイズの設定がうまくできなかったんだけど、これは仕様かしら?描画処理反映とかやったらよかったのかなぁ。