REM 944BASIC '付箋紙' EVENT 100,999,1:REM 常駐時イベント制御 X=20: Y=20 :REM 初期表示位置(X,Y) W=180: H=17 :REM 付箋紙の幅と高さ B=16 :REM 左端の幅 FS=6 :REM フォント幅(半角) FONT 64 :REM フォントサイズ PX=140: PY=1 :REM ペンダウンさせる位置 DIM A(2,0) :REM テキストと座標用配列 LOADCSV 'KALUFSN.CSV',A REM 座標を設定 IF A(1,0) THEN X=A(1,0) IF A(2,0) THEN Y=A(2,0) REM 表示文字数を切り出し TOP=LEFT(A(0,0),W/FS-INT(B/6)-1) REM 画面初期化 SCREEN X,Y,W,H COLORBG 239,239,239: CLS SETPEN 0,PX,PY :REM 下のアプリにフォーカス *LOOP SYNC REM 文字エリアをクリア REM GOSUB *CLAREA ではちらつく REM なお、この処理を入れてもゴミは REM 残ってしまう・・・。 REM COLORFG 239,239,239 REM BOXFILL B+1,Y+1,W-1,H REM テキスト COLORFG 0,0,0 GCURSOR B+3,2 PRINT TOP REM 左端の色、とりあえず赤 COLORFG 208,0,0: BOXFILL 0,0,B,H REM 付箋紙の端 COLORFG 192,192,192 LINE B+1,H-1,W-1,H-1 LINE W-1,H-1,W-1,0 REM 白紙部分の左端(16ドット)→入力 IF (PEN)*(PENXB) THEN GOSUB *INPTXT REM それ以外の白紙部分→全体表示 IF (PEN)*(PENX>=B*2) THEN MESSAGE A(0,0) REM 後退キー IF INKEY=8 THEN GOSUB *INPTXT REM 改行キーのつもりが・・・ REM IF INKEY=13 THEN MESSAGE A(0) GOTO *LOOP REM 入力 *INPTXT GOSUB *CLAREA GCURSOR B+3,2 TMP='' INPUT TMP,60,1 REM 文字列が空なら変更せずに戻る IF LEN(TMP)=0 THEN RETURN REM うーん、メッセージ系のコマンドを REM 使うと文字列変数にゴミが・・ REM MES='' REM MES=STRCAT('「', TMP, '」で登録します。') REM MESSAGE MES REM YESNOでは文字列変数を展開しない REM みたいなので苦肉の策 REM YN=YESNO('変更しますか?',1) REM IF YN=0 THEN GOTO *INPTXT A(0,0)=STR(TMP) REM ペンの絶対座標から位置を保存 REM できるようにしたいが・・・ A(1,0)=X:A(2,0)=Y SAVECSV 'KALUFSN.CSV',A TOP=LEFT(A(0,0),W/FS-INT(B/6)-1) GOSUB *CLAREA SETPEN 0,PX,PY :REM 下のアプリにフォーカス RETURN REM 白紙部分のクリア *CLAREA COLORFG 239,239,239 BOXFILL B+1,Y+1,W-1,H COLORFG 0,0,0 RETURN