|
フランス語は全く分からないのですが、おもしろそうなので私も考えてみました。
間違っていたらごめんなさい。
//(1)カーソル位置にメニューを表示する方式(WindowsNT,2000,XP用)
while (1) {
menu
"A \u00E9", //1 e'
"B \u00E8", //2 e`
"C \u00E0", //3 a`
"D \u00F9", //4 u`
"E \u00E7", //5 c
"F \u00E2", //6 a^
"G \u00EF", //7 i
"H \u0153", //8 oe
"Q 終了"; //9
if (result==0 || result==9) break;//0=[Esc] …[Esc]キーを押してもマク
ロを終了します
else if (result == 1) insert unichar(0x0E9);
else if (result == 2) insert unichar(0x0E8);
else if (result == 3) insert unichar(0x0E0);
else if (result == 4) insert unichar(0x0F9);
else if (result == 5) insert unichar(0x0E7);
else if (result == 6) insert unichar(0x0E2);
else if (result == 7) insert unichar(0x0EF);
else if (result == 8) insert unichar(0x153);
else continue;//押し間違えた時
break;
}
//(2)タイトルバーにメニューを表示する方式
#ime = imestate;
if (#ime) imeswitch; //IMEがONならOFFにする
while (1) {
#c = inputchar("[E] e' [e] e` [A] a` [u] u` [c] c [a] a^ [i] i [o] oe [q]
終了");
if (#c==27 || #c=='q') break;//27=[Esc] …[Esc]キーを押してもマクロを終了し
ます
else if (#c == 'E') insert unichar(0x0E9);
else if (#c == 'e') insert unichar(0x0E8);
else if (#c == 'A') insert unichar(0x0E0);
else if (#c == 'u') insert unichar(0x0F9);
else if (#c == 'c') insert unichar(0x0E7);
else if (#c == 'a') insert unichar(0x0E2);
else if (#c == 'i') insert unichar(0x0EF);
else if (#c == 'o') insert unichar(0x153);
else continue;//押し間違えた時
break;
}
if (#ime && imestate==false) imeswitch; //IMEの状態を戻す
//(3)直前の入力文字で判断する方式
if (column == 0) endmacro;
left;//カーソルを左に移す
if (code == 'E') #c=0x0E9;
else if (code == 'e') #c=0x0E8;
else if (code == 'A') #c=0x0E0;
else if (code == 'u') #c=0x0F9;
else if (code == 'c') #c=0x0E7;
else if (code == 'a') #c=0x0E2;
else if (code == 'i') #c=0x0EF;
else if (code == 'o') #c=0x153;
else {right; endmacro;}
delete;
insert unichar(#c);
|
|