mirror of
https://github.com/NishiOwO/VZEditor.git
synced 2025-04-21 00:34:37 +00:00
170 lines
3.7 KiB
Plaintext
170 lines
3.7 KiB
Plaintext
======== keisen.def 作表マクロ (98罫線v1.02) ========
|
||
;
|
||
;【作表マクロの操作方法】
|
||
;
|
||
; [ESC]H :作表メニュー
|
||
;
|
||
;・まず、『D 外枠の描画』メニューを選択し、カーソル位置に指定のサイズの外枠を
|
||
; 書きます。
|
||
;・外枠を書き終わると、最下行に《作表 〔罫線%c〕》と表示され、作表モードに入り
|
||
; ます。
|
||
;・作表モードでは、通常の編集コマンドの一部を、作表用のコマンドに置き換えます。
|
||
;
|
||
; [CR] :罫線引く/消す(カーソルが上枠/左枠上の時)
|
||
; ^F,^A :横方向拡大/縮小(カーソルが上枠上の時)
|
||
; ^C,^R :縦方向拡大/縮小(カーソルが左枠上の時)
|
||
;
|
||
;・また、表の内部で文字を書いたり、文字を削除しても、右枠の位置はずれません。
|
||
; ただし、矩形ブロックコマンド等で表の内部に文字列をコピーした場合は、
|
||
; 右枠の位置はずれてしまいます。
|
||
;・作表モードを終了する場合は、[ESC]H で作表メニューを表示して、『Q 終了』を
|
||
; 選択してください。
|
||
;・既存の表で作表を行なう場合は、表の左上(<E4B88A>)にカーソルを移動し、[ESC]H で
|
||
; メニューを表示し、『E 作表モードへ』を選択してください。
|
||
;・随時、『S 罫線 [<5B>]』メニューで罫線の種類を変更できます。
|
||
;
|
||
;★注意★ 表の直後は、1行空けて空白行にしておかなければ、正常に動作しません。
|
||
|
||
|
||
* M マクロ
|
||
|
||
70 [ESC]H "作表メニュー"
|
||
?.
|
||
(mm)? &q
|
||
pp="<22>",
|
||
:A t=pp.1&1,
|
||
!01
|
||
(r)>?{ ; 作表メニューで分岐
|
||
>20
|
||
>10
|
||
{ pp.1^=1, >A }
|
||
{ mm-,&m("作表終了") / }
|
||
}
|
||
(mm)? >20 /
|
||
|
||
;--- 外枠描画 ---
|
||
|
||
10: xx=lx,
|
||
&g("横幅:") (r<0)? . u=r&1~,
|
||
&g("縦幅:") (r<0)? >^ v=r,
|
||
(u+4>=wd)?{ wd=u+lx+5, &d }
|
||
mi[, ei[, mi-, ei+,
|
||
(ct)??{ #n #n } ; <-- v1.02
|
||
#l (t)? >A
|
||
'<27>' (u/2){'<27>'} '<27>' >B
|
||
:A '<27>' (u/2){'<27>'} '<27>'
|
||
:B (v)?? >D
|
||
#m (t)?'<27>'?'<27>' (u){' '} (t)?'<27>'?'<27>'
|
||
(v<2)? >D
|
||
#k (v==2)? >C
|
||
(v-2){ #p #x }
|
||
:C #i #x
|
||
:D #m (t)? >E
|
||
'<27>' (u/2){'<27>'} '<27>' >F
|
||
:E '<27>' (u/2){'<27>'} '<27>'
|
||
:F ei], mi],
|
||
>>
|
||
|
||
;--- 初期化 ---
|
||
|
||
20: mm+, &m("作表 〔罫線%c〕", '<27>'+t)
|
||
x=lx, #> uu=lx, &x(x) ; カーソル位置の表の横幅を求める
|
||
p="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||
>>
|
||
|
||
;--- 1文字入力 ---
|
||
|
||
30: &p (c=r)(s)? >N ; 編集モードでなければスキップ
|
||
(c<$FF)?{ &40 >^ } ; 文字の入力
|
||
(c==#m)?{ &50 >^} ; [CR]
|
||
(c==#f || c==#a)?{ &60 >^ } ; ^F,^A (→←サイズ変更)
|
||
(c==#c || c==#r)?{ &65 >^ } ; ^C,^R (↓↑サイズ変更)
|
||
(c>=#h && c<#@ )?{ &40 >^ } ; 行の編集コマンド
|
||
(c==#i || c==#p)?{ &40 >^ } ; ブロックのペースト
|
||
:N &o(c) >^
|
||
|
||
;--- 罫線保存 ---
|
||
|
||
40: (cd&1~!='│')??. ; <-- v1.01
|
||
&s &o(c)
|
||
x=lx, #> xx=lx, #s d=cd&1~, &x(x)
|
||
(d=='<27>')?{ (d=xx-uu)? >A } >Z
|
||
:A (cd&1~!='<27>')?{ #d (lx<xx)? >A >Z }
|
||
(d>0)?{ (d){ #h } >B } (-d){' '} :B &x(x)
|
||
:Z #?
|
||
|
||
;--- 罫線描画/消去 ---
|
||
|
||
09: &o(c)
|
||
|
||
05: &f(cd,p) n=r,
|
||
|
||
06: a+=t,a=p..a,&o(a!!)
|
||
|
||
50: &05
|
||
(n<0)? >09
|
||
(n>=24)? >09
|
||
(n>=22)? >55
|
||
(n>=20)? >51
|
||
(n<4)?{ #y . }
|
||
(n<8)? >56 >09
|
||
|
||
;--- ヨコ罫線 ---
|
||
|
||
51: &s i=0,
|
||
:A #e i++,&f(cd,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") (r>=0)? >A
|
||
#k (i){#x} #i
|
||
mi[,mi+,a=n<<1&2,&06
|
||
:B &05
|
||
(n<0)? >D
|
||
(n>=26)?{ a=n<<1&2+8, &06 >C }
|
||
(n>=22)?{ &o('<27>'+t) >C }
|
||
a=n&2+16, &06
|
||
:C (n<26)? >B
|
||
:D mi], #a #?
|
||
|
||
;--- タテ罫線 ---
|
||
|
||
07: a+=t*2, a=p..a, &o(a!!) #s #x
|
||
|
||
55: &s mi[, mi+,
|
||
a=n&1+4, &07
|
||
i=0,
|
||
:A i++, (cd==$0D)? >B
|
||
c=cd&1,(cd&1~!='<27>')??{ a=c+16, &07 >A }
|
||
(ck)?? #g &o('<27>'+t) #s #x >A
|
||
:B #e a=c+12, &07 >70
|
||
|
||
56: &s mi[, mi+,
|
||
i=0,
|
||
:A i++, &05
|
||
(n<20)?{ &o('<27>'+n&1) #s #x (n&3~!=12)? >A >70 }
|
||
' 'mi-,' ' mi+, #s #s #x >A
|
||
|
||
;--- 拡大/縮小 ---
|
||
|
||
60: uu+=2, (c==#a)? (uu-=4)
|
||
(cd&1~!='<27>')? >09
|
||
&s mi[, mi-,
|
||
i=0,
|
||
:A (cd==$0D)? >70 i++,
|
||
(c==#a)?{ #g (ck)?? #g >B }
|
||
&o(cd) #s (ck)??{ &o(cd) #s }
|
||
:B #x >A
|
||
|
||
65: (cd&1~!='<27>')? >09 (c==#c)?{ #k #i }? #y
|
||
|
||
70: mi], (i){ #e } &d
|
||
|
||
|
||
* Pop up menu
|
||
|
||
1 "",12,4
|
||
"E 作表モードへ"
|
||
"D 外枠の描画"
|
||
"S 罫線 [$pp]"
|
||
"Q 終了"
|
||
|
||
*
|
||
======== End of keisen.def ========
|
||
|