/*------------------------------------------------------------------------------ ぺいんとふぃーるど コードネーム:ろぐぺん(id:logpen01a_2_5_2 / lot:20060225) 動かなかったらイメージ幅とイメージ高さの値を小さくしてください。 ------------------------------------------------------------------------------*/ !変数宣言は必要 !母艦設計=「母艦の可視はオフ」 !タイトル=「ぺいんとふぃーるど」 !アプリ説明=「スケッチアプリ」 !INIファイル=「{母艦のパス}pf.ini」 !クリア色=$fdfdff//紙の色 !クリア背景色=$666666//背景の色 !基本色=$111100 #定義 #フォーマット------------------------------------------------------------------- 線色=「{基本色}」 線太さ=4 スワップファイルとは文字列=「{今日の"/"を""へ置換}{今の":"を""へ置換}.png」 イメージ幅とは整数=3200//px イメージ高さとは整数=2400//px 表示Xとは整数=300//表示するpxの位置 表示Yとは整数=300//表示するpxの位置 //マウス mxとは配列 myとは配列 mx[0]=0;my[0]=0; mx[1]=0;my[1]=0; 座標Xとは整数=0 座標Yとは整数=0 クリックスイッチとは整数=0 サイズ変更スイッチとは整数=0 再描画スイッチとは整数=0 更新スイッチとは整数=1 移動スイッチとは整数=0 テキストハンドルとは整数=0; //ステータス statとは文字列="wait..."; #UI--------------------------------------------------------------------------- 母艦ステータスとはステータスバー 母艦ステージとはパネル 描画ステージとはパネル 下部操作パネルとはパネル スペーサーとはパネル バーアシスタンスとはパネル オプションパネルとはパネル ステージ縦バーとはバー ステージ横バーとはバー 表示イメージとはイメージ バッファイメージとはイメージ 処理イメージとはイメージ 読み込みイメージとはイメージ カンバスタイマーとはタイマー #hack 避難所とはバー//エディタ #設定 #Menu--------------------------------------------------------------------------- 「 ,mf,ファイル(&F) -,f1,クリア(&C),,,メモリクリア -,fe,閉じる(&X),ESC,,終わる ,mh,ヘルプ(&H) -,h1,{タイトル}について(&A),,,アバウト 」をメニュー一括作成 #Style and Setting-------------------------------------------------------------- //main window 母艦について タイトルは「{タイトル}」 背景色はクリア色 母艦を中央移動 終了可能は0 //status 母艦ステータスについて レイアウトは「下」 可視はオフ //Bar ステージ縦バーについて 親部品は母艦ステージ レイアウトは「右」 向きは「縦」 最小値は0 最大値は400 値は表示Y+100 ステージ横バーについて 親部品は下部操作パネル レイアウトは「全体」 向きは「横」 最小値は0 最大値は400 値は表示X+100 //stage 母艦ステージについて レイアウトは「全体」 スタイルは「凹」//「枠なし」 描画ステージについて 親部品は母艦ステージ レイアウトは「全体」 スタイルは「枠なし」 下部操作パネルについて 親部品は母艦ステージ レイアウトは「下」 スタイルは「枠なし」 高さは(ステージ横バーの高さ) スペーサーについて 親部品は下部操作パネル レイアウトは「右」 スタイルは「枠なし」 幅は(ステージ縦バーの幅) バーアシスタンスについて 親部品は下部操作パネル レイアウトは「左」 スタイルは「枠なし」 幅は120 オプションパネルについて レイアウトは「下」 スタイルは「枠なし」 可視はオフ //image 表示イメージについて Xは0 Yは0 親部品は描画ステージ 可視はオン 処理イメージについて W=母艦の幅 H=母艦の高さ 可視はオフ バッファイメージについて 可視はオフ 読み込みイメージについて 可視はオフ //timer カンバスタイマーについて 値は80 //hack 避難所について 親部品はオプションパネル Xは-100 Yは-100 Hは1 Wは1 最大値は1 #Ivent-------------------------------------------------------------------------- 母艦の閉じた時は〜 終了処理 母艦ステージのサイズ変更した時は〜 サイズ調整 サイズ変更スイッチ=1 母艦のキー押した時は〜 もし(母艦の押された仮想キー=32)ならば、 移動スイッチ=1 座標初期化 母艦のキー離した時は〜 もしクリックスイッチが1でなければ、 移動スイッチ=0 //image 表示イメージのマウス移動した時は〜座標取得 表示イメージのマウス押した時は〜 もし(表示イメージの押されたボタン=「左」)ならば、 クリックスイッチ=1 座標初期化 もし(表示イメージの押されたボタン=「右」)ならば、 クリックスイッチ=1 移動スイッチ=1 座標初期化 避難所に注目 表示イメージのマウス離した時は〜 クリックスイッチ=0 移動スイッチ=0 //bar ステージ縦バーの変更した時は〜 表示Y=ステージ縦バーの値-100 再描画スイッチ=1 ステージ縦バーのキー押した時は〜 もし(母艦の押された仮想キー=33)ならば、 ステージ縦バーの値=ステージ縦バーの値-表示イメージの高さ もし(母艦の押された仮想キー=34)ならば、 ステージ縦バーの値=ステージ縦バーの値+表示イメージの高さ ステージ横バーの変更した時は〜 表示X=ステージ横バーの値-100 再描画スイッチ=1 ステージ横バーのキー押した時は〜 もし(母艦の押された仮想キー=33)ならば、 ステージ横バーの値=ステージ横バーの値-表示イメージの幅 もし(母艦の押された仮想キー=34)ならば、 ステージ横バーの値=ステージ横バーの値+表示イメージの幅 //timer カンバスタイマーの時満ちた時は〜 座標X=0 座標Y=0 もし(表示X<0)ならば、座標X=-表示X もし(表示Y<0)ならば、座標Y=-表示Y もしサイズ変更スイッチ=1ならば、サイズ調整 もし再描画スイッチ=1ならば、画像再描画 もし更新スイッチ=1ならば、 更新スイッチ=0 処理イメージの表示X,表示Y,(表示X+表示イメージの幅),(表示Y+表示イメージの高さ)を表示イメージの座標X,座標Yへ画像部分コピー ステータス更新 //hack 避難所のキー押した時は〜 もし(母艦の押された仮想キー=38)ならば、 ステージ縦バーの値=ステージ縦バーの値-20 もし(母艦の押された仮想キー=40)ならば、 ステージ縦バーの値=ステージ縦バーの値+20 もし(母艦の押された仮想キー=37)ならば、 ステージ横バーの値=ステージ横バーの値-20 もし(母艦の押された仮想キー=39)ならば、 ステージ横バーの値=ステージ横バーの値+20 #表示 #onView------------------------------------------------------------------------- バッファイメージをクリア色で画面クリア 表示イメージをクリア色で画面クリア 処理イメージをクリア色で画面クリア stat="run..."; ステータス更新 カンバスタイマーの開始 メモリサイズ変更 開始処理 母艦の可視はオン 避難所に注目 #------------------------------------------------------------------------------- # Function #------------------------------------------------------------------------------- *サイズ調整 表示イメージのW=描画ステージの幅 表示イメージのH=描画ステージの高さ 表示イメージをクリア背景色で画面クリア //バーに最大値情報を送信 ステージ縦バーの最大値は((処理イメージのH-表示イメージのH)+300)の絶対値 ステージ横バーの最大値は((処理イメージのW-表示イメージのW)+300)の絶対値 更新スイッチ=1 サイズ変更スイッチ=0 *画像再描画 再描画スイッチ=0 サイズ調整 座標X=0 座標Y=0 もし(表示X<0)ならば、座標X=-表示X もし(表示Y<0)ならば、座標Y=-表示Y *座標取得 mx[0] = 表示イメージのマウスX+表示X-座標X my[0] = 表示イメージのマウスY+表示Y-座標Y もし((移動スイッチ=1)&&(クリックスイッチ=1))ならば、移動処理 もし((移動スイッチ=0)&&(クリックスイッチ=1))ならば、描画処理 *座標初期化 mx[1]=mx[0] my[1]=my[0] *描画処理 表示イメージの(mx[1]-表示X+座標X),(my[1]-表示Y+座標Y)から(mx[0]-表示X+座標X),(my[0]-表示Y+座標Y)へ線 処理イメージの(mx[1]),(my[1])から(mx[0]),(my[0])へ線 座標初期化 *移動処理 ステージ横バーの値=(表示X-(mx[0]-mx[1]))+100 ステージ縦バーの値=(表示Y-(my[0]-my[1]))+100 *メモリサイズ変更 サイズ変更スイッチ=0 //処理イメージをバッファへ バッファイメージのW=処理イメージのW バッファイメージのH=処理イメージのH バッファイメージをクリア色で画面クリア 処理イメージをバッファイメージの0,0へ画像コピー //処理イメージをクリア及びリサイズして、バッファを処理イメージへ 処理イメージのW=イメージ幅 処理イメージのH=イメージ高さ 処理イメージをクリア色で画面クリア バッファイメージを処理イメージの0,0へ画像コピー //表示イメージのサイズを調整 サイズ調整 表示イメージをクリア色で画面クリア //バッファイメージをクリア バッファイメージのW=描画ステージの幅 バッファイメージのH=描画ステージの高さ バッファイメージをクリア色で画面クリア 更新スイッチ=1 *メモリクリア カンバスタイマーの停止 //表示イメージのサイズを調整 サイズ調整 処理イメージをクリア色で画面クリア スワップファイル=「{今日の"/"を""へ置換}{今の":"を""へ置換}.png」 stat="file : {スワップファイル}" サイズ変更スイッチ=1 カンバスタイマーの開始 *開始処理 INIファイルが存在 もし、それがはいならば、 エラー監視 「{INIファイル}」のINI開いてテキストハンドルに代入 テキストハンドルで「位置」の「X」をINI読んで表示Xに代入 テキストハンドルで「位置」の「Y」をINI読んで表示Yに代入 テキストハンドルで「ファイル」の「場所」をINI読んでスワップファイルに代入 テキストハンドルのINI閉じる ステージ縦バーの値=表示Y+100 ステージ横バーの値=表示X+100 エラーならば、 ダイアログタイトルは「{タイトル}:INIエラー」 stat="error : 設定ファイルの読み込みに失敗"; 「設定ファイルを正常に読み込めませんでした。」と言う。 スワップファイルが存在 もし、それがはいならば、 エラー監視 処理イメージの画像はスワップファイル エラーならば、 母艦の終了可能は1 ダイアログタイトルは「{タイトル}:ファイルエラー」 stat="error : ログファイルの読み込みに失敗"; 「以前までのログが読み込めません。 前回起動時のファイルへの書き込みが終了してない場合があります。 ファイルへのアクセス権限を確認するか、時間を置いてもう一度起動してみてください。」と言う 終わる。 更新スイッチ=1 *終了処理 stat="bye..."; ステータス更新 母艦の可視はオフ カンバスタイマーの停止 0.1秒待つ 「{INIファイル}」のINI開いてテキストハンドルに代入。 テキストハンドルで「位置」の「X」に表示XをINI書く テキストハンドルで「位置」の「Y」に表示YをINI書く テキストハンドルで「ファイル」の「場所」にスワップファイルをINI書く テキストハンドルのINI閉じる エラー監視 処理イメージを「{スワップファイル}」へ画像保存 エラーならば、 「ログの保存でエラーが発生しました。{\n}ログが書き込めませんでした。」と言う。 stat="error : ログファイルの書き込みに失敗..."; ステータス更新 母艦の終了可能は1 終わる。 *ステータス更新 母艦ステータス =「{stat}」 バーアシスタンスのテキスト=「{表示X} x {表示Y}」 *アバウト 「{タイトル}{\n}{\t}{\t}{アプリ説明}{\n}{\t}(c)2006 canot{\t}」という //Program is end