ひまわりユーザー プログラム掲示板 バックアップ
注意
ひまわりのススメ  □ ひまわり本家Home  □ 新着記事  □ 新規投稿  □ SEARCH  □ 参考プログラム集
ツリー表示

MESSAGE マルチメディアビューア /moka (02/01/12(Sat) 01:04) [155]


親記事 / 返信無し
NO.155  マルチメディアビューア
□投稿者/ moka -(2002/01/12(Sat) 01:04:42)
□U R L/ http://www.geocities.jp/moka21/teatime/
プログラム板史上、最も長いプログラム…。多分。
更新頻度が落ちてきたので、アップしてしまおう。

2つの設定ファイルが生成されます。
viewer.ini
viewer_favorites.ini

◆◆◆◆◆
{マルチメディアビューア0.6}
'Ver0.6 マクロ、お気に入り、テキスト表示のフォント設定
'Ver0.5 コピー、貼り付け、元に戻す、アスペクト比バグ直し
'Ver0.4 メニュー、画像フィルタ、設定項目追加
'Ver0.3 アドレスバー、アスペクト比、設定読み書き
'Ver0.2 メディアビューア
'Ver0.1 画像ビューア
'(今後の予定) 縮小表示バグ直し、フォルダのドロップ、
'ステータスバー、画像フィルタのプレビュー、マニュアル
'トリミングツール

母艦の、テキストは、「マルチメディアビューア」

{対応形式の定義}
形式画像=「*.jpg;*.png;*.gif;*.bmp;*.ico」
形式音声=「*.wav;*.mid;*.mp3;*.avi;*.mpg」{動画も}
形式文字=「*.txt;*.htm;*.html;*.css;*.ini;*.hmw」

コンボ0を、コンボとして、作成。
   その、サイズは、(0,0,120,25)
   その、アイテムは、「{形式画像}\n{形式音声}\n{形式文字}\n*.*」
   その、値は、0
   その、イベントは、コンボクリック。

リスト0を、リストとして、作成。'フィルタ用
   その、サイズは、(0,25,120,400)
   その、クリックした時は、リストクリック。
   その、ダブルクリックした時は、(
      (リスト0の、テキスト)を、起動。)

コンボ1を、コンボとして、作成。'アドレス用
   その、サイズは、(120,0,580,25)
   その、キー押した時は、もし、押されたキーが、13{Enter}ならば、移動ボタンクリック。
   'その、クリックした時は、移動ボタンクリック。

ボタン0を、ボタンとして、作成。'フォルダ選択用
   その、サイズは、(610,0,640,25)
   その、テキストは、「…」
   その、イベントは、参照ボタンクリック。

ボタン2を、ボタンとして、作成。'フォルダ移動用
   その、サイズは、(580,0,610,25)
   その、テキストは、「→」
   その、イベントは、移動ボタンクリック。

イメージ0を、イメージとして、作成。'画像表示用
   その、サイズは、(120,25,640,400)
   その、クリックした時は、イメージクリック。
   その、ダブルクリックした時は、イメージダブルクリック。

イメージ1を、イメージとして、作成。'元に戻す用
   その、可視は、オフ。

ボタン1を、ボタンとして、作成。'演奏停止用
   その、サイズは、(120,25,200,55)
   その、テキストは、「演奏停止」
   その、イベントは、演奏停止。
   その、可視は、オフ。

メモ0を、メモとして、作成。'テキスト表示用
   その、サイズは、(120,25,640,400)
   その、可視は、オフ。

エディタ0を、エディタとして、作成。'フォルダドロップ用
   その、ファイルドロップは、オン
   その、可視は、オフ。
   その、イベントは、(
      パスは、エディタ0
      パスの、「\n」までを、切り取る。
      コンボ1は、それ。
      エディタ0は、それ。
      移動ボタンクリック。   
   )

メニュー1を、メニュー作成。
その、テキストは、「ファイル(&F)」
   メニュー1に、メニュー11を、メニュー追加。
   その、テキストは、「フォルダを開く(&O)」
   その、ショートカットキーは、「Ctrl+O」
   その、イベントは、参照ボタンクリック。
   メニュー1に、メニュー14を、メニュー追加。
   その、テキストは、「上のフォルダ(&U)」
   その、ショートカットキーは、「Ctrl+U」
   その、イベントは、(
      もし、RIGHT(コンボ1,1)が、『\』ならば、(
         パスは、コンボ1。
         パスから、1文字、右端を切り取る。
         コンボ1は、パス。)
      コンボ1から、パスを切り出す。
      コンボ1は、それ。
      移動ボタンクリック。)
   メニュー1に、メニュー15を、メニュー追加。
   その、テキストは、「リスト更新(&R)」
   その、ショートカットキーは、「Ctrl+R」
   その、イベントは、コンボクリック。
   メニュー1に、メニュー1起動を、メニュー追加。
   その、テキストは、「関連付け起動」
   その、ショートカットキーは、「Ctrl+R」
   その、イベントは、((リスト0の、テキスト)を、起動)。
   メニュー1に、メニュー12を、メニュー追加。
   その、テキストは、「-」
   メニュー1に、メニュー13を、メニュー追加。
   その、テキストは、「終了(X)」
   その、ショートカットキーは、「Alt+F4」
   その、イベントは、終わり。
   
メニュー2を、メニュー作成。
   その、テキストは、「画像(&I)」
   メニュー2に、メニュー20を、メニュー追加。
      その、テキストは、「コピー(&C)」
      その、ショートカットキーは、「Ctrl+C」
      その、イベントは、クリップボードへ、イメージ0を、イメージ保存。
   メニュー2に、メニュー2貼り付けを、メニュー追加。
      その、テキストは、「貼り付け(&P)」
      その、ショートカットキーは、「Ctrl+V」
      その、イベントは、(
         リスト0の、値は、-1
         イメージ0の、画像は、クリップボード。)
   メニュー2に、メニュー2元に戻すを、メニュー追加。
      その、テキストは、「元に戻す(&Z)」
      その、ショートカットキーは、「Ctrl+Z」
      その、イベントは、(
         イメージ0の、画像は、「」
         イメージ0の、サイズは、イメージ1の、サイズ。
         イメージ1を、イメージ0の、(0,0)に、イメージコピー。)
   メニュー2に、メニュー21を、メニュー追加。
      その、テキストは、「-」
   メニュー2に、メニュー22を、メニュー追加。
      その、テキストは、「ネガポジ反転」
      その、イベントは、(
         イメージ1の、サイズは、イメージ0の、サイズ。
         イメージ0を、イメージ1の、(0,0)に、イメージコピー。
         イメージ0を、ネガポジ反転。)
   メニュー2に、メニュー23を、メニュー追加。
      その、テキストは、「グレイスケール変換」
      その、イベントは、(
         イメージ1の、サイズは、イメージ0の、サイズ。
         イメージ0を、イメージ1の、(0,0)に、イメージコピー。
         イメージ0を、グレイスケール変換。)
   メニュー2に、メニュー24を、メニュー追加。
      その、テキストは、「ソラリゼーション」
      その、イベントは、(
         イメージ1の、サイズは、イメージ0の、サイズ。
         イメージ0を、イメージ1の、(0,0)に、イメージコピー。
         イメージ0を、ソラリゼーション。)
   メニュー2に、メニュー25を、メニュー追加。
      その、テキストは、「明るさ補正」
      その、イベントは、(
         「明るさ補正のパラメータ?」が、「25 (少し明るくなる)|50|75|100 (明るくなる)」の、どれか尋ねる。
         もし、それが、「」ならば、待機。
         それの、「 」までを、切り取る。
         イメージ1の、サイズは、イメージ0の、サイズ。
         イメージ0を、イメージ1の、(0,0)に、イメージコピー。
         イメージ0を、それ度、明るさ補正。)
   メニュー2に、メニュー26を、メニュー追加。
      その、テキストは、「ガンマ補正」
      その、イベントは、(
         「ガンマ補正のパラメータ?」が、「25|50|75|100」の、どれか尋ねる。
         もし、それが、「」ならば、待機。
         'それの、「 」までを、切り取る。
         イメージ1の、サイズは、イメージ0の、サイズ。
         イメージ0を、イメージ1の、(0,0)に、イメージコピー。
         イメージ0を、それ度、ガンマ補正。)
   メニュー2に、メニュー2回転反転を、メニュー追加。
      その、テキストは、「回転・反転」
      メニュー2回転反転に、メニュー2回転90を、メニュー追加。
         その、テキストは、「90°回転」
         その、イベントは、(
            イメージ1の、サイズは、イメージ0の、サイズ。
            イメージ0を、イメージ1の、(0,0)に、イメージコピー。
            イメージ0を、右回転。)
      メニュー2回転反転に、メニュー2回転180を、メニュー追加。
         その、テキストは、「180°回転」
         その、イベントは、(
            イメージ1の、サイズは、イメージ0の、サイズ。
            イメージ0を、イメージ1の、(0,0)に、イメージコピー。
            イメージ0を、右回転。イメージ0を、右回転。)
      メニュー2回転反転に、メニュー2回転270を、メニュー追加。
         その、テキストは、「-90°回転」
         その、イベントは、(
            イメージ1の、サイズは、イメージ0の、サイズ。
            イメージ0を、イメージ1の、(0,0)に、イメージコピー。
            イメージ0を、右回転。イメージ0を、右回転。イメージ0を、右回転。)
      メニュー2回転反転に、メニュー2回転反転2を、メニュー追加。
         その、テキストは、「回転(指定)」
         その、イベントは、(
            「何度、回転しますか?」と、尋ねる。
            もし、それが、「」ならば、待機。
            イメージ1の、サイズは、イメージ0の、サイズ。
            イメージ0を、イメージ1の、(0,0)に、イメージコピー。
            イメージ0を、それ度、画像回転。)
      メニュー2回転反転に、メニュー2回転反転3を、メニュー追加。
         その、テキストは、「垂直反転」
         その、イベントは、(
            イメージ1の、サイズは、イメージ0の、サイズ。
            イメージ0を、イメージ1の、(0,0)に、イメージコピー。
            イメージ0を、垂直反転。)
      メニュー2回転反転に、メニュー2回転反転4を、メニュー追加。
         その、テキストは、「水平反転」
         その、イベントは、(
            イメージ1の、サイズは、イメージ0の、サイズ。
            イメージ0を、イメージ1の、(0,0)に、イメージコピー。
            イメージ0を、水平反転。)
   メニュー2に、メニュー27を、メニュー追加。
      その、テキストは、「エッジ検出」
      その、イベントは、(
         イメージ1の、サイズは、イメージ0の、サイズ。
         イメージ0を、イメージ1の、(0,0)に、イメージコピー。
         イメージ0を、画像エッジ検出。)
   メニュー2に、メニュー28を、メニュー追加。
      その、テキストは、「ぼかし」
      その、イベントは、(
         「ぼかしのパラメータ?」が、「25|50|75|100」の、どれか尋ねる。
         もし、それが、「」ならば、待機。
         'それの、「 」までを、切り取る。
         イメージ1の、サイズは、イメージ0の、サイズ。
         イメージ0を、イメージ1の、(0,0)に、イメージコピー。
         イメージ0を、それ度、画像ボカシ。)
   メニュー2に、メニュー29を、メニュー追加。
      その、テキストは、「シャープ」
      その、イベントは、(
         「シャープのパラメータ?」が、「25|50|75|100」の、どれか尋ねる。
         もし、それが、「」ならば、待機。
         'それの、「 」までを、切り取る。
         イメージ1の、サイズは、イメージ0の、サイズ。
         イメージ0を、イメージ1の、(0,0)に、イメージコピー。
         イメージ0を、それ度、画像シャープ。)
   メニュー2に、メニュー210を、メニュー追加。
      その、テキストは、「セピア」
      その、イベントは、(
         色選択。
         もし、それが、「」ならば、待機。
         イメージ1の、サイズは、イメージ0の、サイズ。
         イメージ0を、イメージ1の、(0,0)に、イメージコピー。
         イメージ0を、それで、画像セピア。)
   メニュー2に、メニュー211を、メニュー追加。
      その、テキストは、「拡大縮小」
      その、イベントは、(
         DEBUG。「拡大縮小の倍率?」が、「50%|150%|200%|300%」の、どれか尋ねる。
         もし、それが、「」ならば、待機。
         それの、「%」までを、切り取る。
         それは、それ/100。
         イメージ1の、サイズは、イメージ0の、サイズ。
         イメージ0を、イメージ1の、(0,0)に、イメージコピー。
         イメージ0の、拡大機能は、オン。
         イメージ0の、幅は、(イメージ0の、幅)*それ
         イメージ0の、高さは、(イメージ0の、高さ)*それ)
   メニュー2に、メニュー2減色を、メニュー追加。
      その、テキストは、「減色」
      その、イベントは、(
         「ビット数?」を、「1 (2色)|4 (16色)|8 (256色)|16 (65,536色)|24 (1677万色)|32 」の、リストから選択。{適切っぽい}
         もし、それが、「」ならば、待機。
         それの、「 」までを、切り取る。
         イメージ1の、サイズは、イメージ0の、サイズ。
         イメージ0を、イメージ1の、(0,0)に、イメージコピー。
         イメージ0を、それビットに、画像ビット数変更。
      )
   メニュー2に、メニュー2区切り2を、メニュー追加。
      その、テキストは、「-」
   メニュー2に、メニュー2マクロを、メニュー追加。
      その、テキストは、「マクロ実行(&M)」
      その、ショートカットキーは、「Ctrl+M」
      その、イベントは、(
         '作業フォルダは、母艦のパス。
         母艦のパスへ、作業フォルダ変更、。
         '「*」の、読込ファイル選択。
         'もし、それが、「」でなければ、それを、取り込む。
         「」の、メモ記入。
         もし、それが、「」でなければ、それを、ひまわりする。
         '作業フォルダは、コンボ1。
         コンボ1へ、作業フォルダ変更。
      )
   メニュー2に、メニュー2保存を、メニュー追加。
      その、テキストは、「名前を付けて保存(&S)」
      その、ショートカットキーは、「Ctrl+S」
      その、イベントは、(
         「画像(*.png;*.bmp;*.jpg;*.ico)|*.png;*.bmp;*.jpg;*.ico|全て|*.*」の、書込ファイル選択。
         もし、それが、「」ならば、待機。
         それへ、イメージ0を、イメージ保存。   
      )

メニューお気に入りを、メニュー作成。
   その、テキストは、「お気に入り(&F)」
   メニューお気に入りに、メニューお気に入り追加を、メニュー追加。
      その、テキストは、「追加(&A)」
      その、イベントは、(
         フォルダ名は、コンボ1。
         フォルダ名から、1文字、右端を切り取る。
         フォルダ名から、ファイル名を切り出す。
         フォルダ名は、それ。
         それを、言う。
         お気に入りの、フォルダ名は、コンボ1
         お気に入りの、辞書項目列挙。
         それの、要素数。
         それは、「   メニューお気に入りに、メニューお気に入り{それ}を、メニュー追加。
                  その、テキストは、{フォルダ名}。
                  その、イベントは、(
                     コンボ1は、お気に入りの、{フォルダ名}。
                     移動ボタンクリックへ、飛ぶ。
                  )」
         それを、ひまわりする。
      )
   メニューお気に入りに、メニューお気に入り区切りを、メニュー追加。
      その、テキストは、「-」
      
メニュー設定を、メニュー作成。
   その、テキストは、「設定(&O)」
   メニュー設定に、メニュー拡大縮小表示を、メニュー追加。
      その、テキストは、「拡大縮小表示」
      その、イベントは、(
         もし、(メニュー拡大縮小表示の、値)ならば、メニュー拡大縮小表示の、値は、0。
         違えば、メニュー拡大縮小表示の、値は、1。)
   メニュー設定に、メニュー繰り返し演奏を、メニュー追加。
      その、テキストは、「繰り返し演奏」
      その、イベントは、(
         もし、(メニュー繰り返し演奏の、値)ならば、メニュー繰り返し演奏の、値は、0。
         違えば、メニュー繰り返し演奏の、値は、1。)
   メニュー設定に、メニューフォントを、メニュー追加。
      その、テキストは、「テキストのフォント」
      その、イベントは、(
         フォント選択
         もし、それが、「」ならば、待機。
         メモ0の、フォント書体は、それ。
      )
   メニュー設定に、メニューフォントサイズを、メニュー追加。
      その、テキストは、「テキストのサイズ」
      その、イベントは、(
         「テキストのフォントサイズ?」と、尋ねる。
         もし、それが、「」ならば、待機。
         メモ0の、フォントサイズは、それ。
      )
   
メニュー4を、メニュー作成。
   その、テキストは、「ヘルプ(&H)」
   メニュー4に、メニュー41を、メニュー追加。
      その、テキストは、「ヘルプ(&H)」
      'その、イベントは、「help.html」を、起動。
   メニュー4に、メニュー42を、メニュー追加。
      その、テキストは、「バージョン情報」
      'その、イベントは、「サンプルとして参考にしてください。\n(かなり読みにくいですが)」と、言う。

母艦の、変更した時は、リサイズ。
エラー処理に、エラー処理設定。
終了処理に、終了処理設定。

お気に入り=「母艦パス={母艦のパス}
ランタイムパス={ランタイムのパス}
マイドキュメント={マイドキュメントのパス}」
お気に入りを、辞書として扱う。

*起動処理
   母艦のパス&「viewer.ini」が、存在するか。
   もし、それならば、(
      母艦のパス&「viewer.ini」から、フォームの位置復元。
      母艦のパス&「viewer.ini」の、INIファイル開く。
      「viewer」の、「LastPath」を、INIファイル読む。
      もし、それが、「」でなければ、作業フォルダは、それ。
      「viewer」の、「Filter」を、INIファイル読む。
      もし、それが、「」でなければ、コンボ0は、それ。
      「viewer」の、「Zoom」を、INIファイル読む。
      もし、それが、「」でなければ、メニュー拡大縮小表示の、値は、それ。
      「viewer」の、「Loop」を、INIファイル読む。
      もし、それが、「」でなければ、メニュー繰り返し演奏の、値は、それ。
      「viewer」の、「Font」を、INIファイル読む。
      もし、それが、「」でなければ、メモ0の、フォント書体は、それ。
      「viewer」の、「FontSize」を、INIファイル読む。
      もし、それが、「」でなければ、メモ0の、フォントサイズは、それ。
      INIファイル閉じる
   )
   母艦のパス&「viewer_favorites.ini」が、存在するか。
   もし、それならば、(
      母艦のパス&「viewer_favorites.ini」を、読む。
      お気に入りは、それ。
      お気に入りを、辞書として扱う。
   )
   お気に入りの、辞書項目列挙。
   それを、反復(
      フォルダ名は、それ。
      それは、「   メニューお気に入りに、メニューお気に入り{回数}を、メニュー追加。
               その、テキストは、フォルダ名。
               その、イベントは、(
                  コンボ1は、お気に入りの、{フォルダ名}。
                  移動ボタンクリックへ、飛ぶ。
               )」
      それを、ひまわりする。
   )
   
   コンボ1は、作業フォルダ。
   リサイズ。
   移動ボタンクリック。
   待機。

*終了処理
母艦のパス&「viewer.ini」へ、フォームの位置記録。
   母艦のパス&「viewer.ini」の、INIファイル開く。
   それは、コンボ1。
   「viewer」の、「LastPath」へ、INIファイル書く。
   それは、コンボ0。
   「viewer」の、「Filter」へ、INIファイル書く。
   それは、メニュー拡大縮小表示の、値。
   「viewer」の、「Zoom」へ、INIファイル書く。
   それは、メニュー繰り返し演奏の、値。
   「viewer」の、「Loop」へ、INIファイル書く。
   それは、メモ0の、フォント書体。
   「viewer」の、「Font」へ、INIファイル書く。
   それは、メモ0の、フォントサイズ。
   「viewer」の、「FontSize」へ、INIファイル書く。
   INIファイル閉じる
   
   {お気に入りの保存}
   それは、お気に入り。
   母艦のパス&「viewer_favorites.ini」に、書く。
   
   終わり。
   
*移動ボタンクリック
   'DEBUG
   もし、RIGHT(コンボ1,1)が、『\』でなければ、コンボ1は、コンボ1&『\』。
   コンボ1が、存在するか。
   もし、それが、0ならば、待機。
   ’作業フォルダは、コンボ1。
   コンボ1へ、作業フォルダ変更。
   コンボクリック。
   
   {履歴を重複チェックして追加}
   履歴フラグは、オフ。
   履歴は、コンボ1の、アイテム。
   履歴を、反復(
      もし、それが、コンボ1ならば(
         履歴の,(回数-1)行目を,行削除。
         履歴フラグは、オン。
         抜ける。
      )
   )
   もし、履歴フラグならば、履歴は、それ。
   コンボ1の、アイテムは、コンボ1&「\n」&履歴。
   待機。
   
*参照ボタンクリック
   'DEBUG
   もし、RIGHT(コンボ1,1)が、『\』でなければ、コンボ1は、コンボ1&『\』。
   コンボ1が、存在するか。
   もし、それが、1ならば、
      コンボ1へ、作業フォルダ変更。'作業フォルダは、コンボ1。
   フォルダ選択。
   もし、それが、「」ならば、待機。
   コンボ1は、それ。
   移動ボタンクリック。
   待機。
   
*コンボクリック
   コンボ0の,ファイル列挙。
   それを、ソート。
   リスト0の、アイテムは、それ。
   戻る。
   
*リストクリック
   イメージ0の、可視は、オフ。
   メモ0の、可視は、オフ。
   ボタン1の、可視は、オフ。
   演奏停止。
   
   (リスト0の、テキスト)から、拡張子を切り出す。
   小文字変換。
   拡張子は、それ。
   
   形式画像の中で、拡張子が、何文字目。
   もし、それ>0ならば(
      それは、作業フォルダ&(リスト0の、テキスト)。
      イメージ0の、可視は、オン。
      イメージ0の、拡大機能は、オフ。
      拡大フラグは、オフ。
      イメージ0の、画像は、それ。
      もし、(メニュー拡大縮小表示の、値)ならば、イメージダブルクリック。
      待機。
   )
   
   形式音声の中で、拡張子が、何文字目。
   もし、それ>0ならば(
      それは、作業フォルダ&(リスト0の、テキスト)。
      もし、(メニュー繰り返し演奏の、値)
         ならば、それを、繰り返し演奏。
         違えば、それを、演奏。
      ボタン1の、可視は、オン。
      待機。
   )
   
   形式文字の中で、拡張子が、何文字目。
   もし、それ>0ならば(
      それは、作業フォルダ&(リスト0の、テキスト)。
      それを、読む。
      メモ0は、それ。
      メモ0の、可視は、オン。
      待機。
   )
   
   {その他の形式の時、画像で表示させてみる}
   それは、作業フォルダ&(リスト0の、テキスト)。
   イメージ0の、可視は、オン。
   イメージ0の、拡大機能は、オフ。
   拡大フラグは、オフ。
   イメージ0の、画像は、それ。
   待機。      

*イメージクリック
   イメージ0の、拡大機能は、オフ。
   拡大フラグは、オフ。
   リサイズ。
   待機。
   
*イメージダブルクリック
   {アスペクト比対応版}
   'DEBUG
   イメージ0の、画像は、作業フォルダ&(リスト0の、テキスト)。
   イメージ0の、拡大機能は、オン。
   拡大フラグは、オン。
   アスペクト比=(イメージ0の、幅)/(イメージ0の、高さ)
   リサイズ。
   待機。

*リサイズ
   「#d8d0c8」で、画面クリア。
   
   もし、拡大フラグが、オフならば、(
      イメージ0の、幅は、(母艦の、幅)-(イメージ0の、X)
      イメージ0の、高さは、(母艦の、高さ)-(イメージ0の、Y)
   )
   違えば、(
      横=(母艦の、幅)-(イメージ0の、X)
      縦=(母艦の、高さ)-(イメージ0の、Y)
      もし、横>=(縦*アスペクト比)
         ならば、(
            イメージ0の、高さは、縦。
            イメージ0の、幅は、縦*アスペクト比
         )
         違えば、(
            イメージ0の、幅は、横。
            イメージ0の、高さは、横/アスペクト比
         )
   )
   
   イメージ0の、Yは、25
   メモ0の、幅は、イメージ0の、幅。
   メモ0の、高さは、イメージ0の、高さ。
   リスト0の、高さは、(母艦の、高さ)-(リスト0の、Y)
   コンボ1の、幅は、(母艦の、幅)-120-60
   ボタン0の、Xは、(母艦の、幅)-30
   ボタン2の、Xは、(母艦の、幅)-60
   戻る。

*エラー処理
   エラーメッセージの中で、『画像』が、何文字目。
   もし、(それ>0)ならば、「そのファイルは画像として表示できません。」と、言う。
   違えば、「予期せぬエラーが起きました。\n\n{エラーメッセージ}」と、言う。
   エラーから復帰。



- Child Tree -