プログラム板史上、最も長いプログラム…。多分。 更新頻度が落ちてきたので、アップしてしまおう。
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{エラーメッセージ}」と、言う。 エラーから復帰。
|