画像閲覧プログラム

Similar documents
画像閲覧プログラム

グラフィックス

ルーレットプログラム

ブロック パニック

回文作成支援プログラム

回文作成支援プログラム

回文作成支援プログラム

VB.NET解説

回文作成支援プログラム

ブロック崩し風テニス

相性占いプログラム

3D回転体プログラム

ファイル操作-インターネットキャッシュ

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

万年暦プログラム

インベーダープログラム

相性占いプログラム

VB実用⑦ エクセル操作Ⅰ

データアダプタ概要

NotifyIconコントロール

Userコントロール

ICONファイルフォーマット

回文作成支援プログラム

占領双六ゲーム

ListViewコントロール

64bit環境で32bitコンポーネントの利用

神経衰弱ゲーム

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

ファイル操作

チャットプログラム

アプリケーション

通信対戦プログラム

Microsoft Word -

構造体

マルチメディア・音声

回文作成支援プログラム

スライド 1

ファイル監視

データベースⅠ

Microsoft Word - VB.doc

万年暦プログラム

パラパラ漫画

わにわにパニックプログラム

プロセス間通信

草競馬プログラム

VFD256 サンプルプログラム

Prog2_2nd

C#の基本

グラフィックス 目次

ドライブは安全運転で in 滋賀♪

3D回転体プログラム

モグラ叩きプログラム

正規表現応用

VB実用⑧ エクセル操作Ⅱ

Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値

sinfI2005_VBA.doc

GUIプログラムⅣ

プラグイン

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

3D回転体プログラム

ファイル操作-バイナリファイル

ウィンドウ操作 応用

Prog2_12th

Prog2_15th

Microsoft Word 練習問題の解答.doc

グラフィックトレーニング 概要.NET のグラフィック描画は どんなことができるのでしょうか? グラフィックオブジェクトやグラフィック環境 概念を理解するためには クラスを使って馴れることが近道です 本 書に記載されているコードをカットアンドペーストして 一つ一つの機能を体験してください 前提 グラ

通信対戦プログラム

DAOの利用

相性占いプログラム

占領双六ゲーム

VB実用Ⅲ⑩ フリーデータベースⅡ

テキストファイルの入出力1

PowerPoint プレゼンテーション

Ver.1.1

データベース1

万年暦プログラム

神経衰弱ゲーム

VB実用⑬ 印刷Ⅲ(PrintFormメソッド)

VB実用⑩ エクセル操作Ⅳ

スロットプログラム

クリッピング領域

文書閲覧プログラム

Visual Studio2008 C# で JAN13 バーコードイメージを作成 xbase 言語をご利用の現場でバーコードの出力が必要なことが多々あります xbase 言語製品によっては 標準でバーコード描画機能が付加されているものもあるようで す C# では バーコードフォントを利用したりバー

マルチメディア・音声

VB.NET解説

倉庫番

データベース1

万年暦プログラム

Java講座

パラパラ漫画

バスケットボール

通信対戦プログラム

ExcelVBA

何時何処で誰が

かべうちテニス

グラフィックス 目次

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 関数とメソッド 関数とメソッド Python には関数 (function) とメソッド (method) が有る モジュール内に def で定義されて居る物が関数 クラス内に def で定義されて居る物がメソッドに成る ( 正確にはクラスが

VB実用⑯ 印刷Ⅵ(Excel)

データベースⅠ

Transcription:

画像閲覧プログラム VB 2005 3 プログラムの概要 連動するドライブリストボックス ディレクトリリストボックス ファイルリストボックスから画像ファイルを選択してクリックします ピクチャーボックスに選択した画像が実物大で表示される 此の時 画像が表示領域より大きい場合は 画像の大きさに応じてスクロールバーが表示される 此のスクロールバーを操作する事に依り 画像全体を見る事が出来る 終了ボタンをクリックすると プログラムをメモリから消去して終了する 今回の課題項目 単純変数の宣言 (Private) コンポーネントの組込 (DriveList DirList FileList) Windows フォームコントロールの利用 (Panel PictureBox GroupBox RadioBottin Button) プロパティの値の取得と設定 (Path Drive FileName Pattern SizeMode Image 等 ) イベントの利用 (Load Click SelectedIndexChanged Change) メソッドの利用 (Dispose FromFile) ステートメントの利用 (End) 組込関数の利用 (Right) 演算子 ( 代入演算子 比較演算子 結合演算子 ) 制御構造構文 ( 条件分岐 制御ステートメント ) 今回の重点項目 変数の適用範囲 ( スコープ : フォームモジュールレベル サブプロシージャレベル ) If 文に依る条件分岐 (If ~ Then Else End If) ファイルシステムコントロールの利用 ( 各コントロールの連動 ) 画像の読込と転送 (Image オブジェクト FromFile メソッド ) 今回の応用項目 表示画面のサイズに合わせてフィット表示する ( 縦横の比率を変えない ) を追加する -1-

ツールボックスにアイテム追加 今回使用するコントロールの内 ドライブリストボックス ディレクトリリストボックス ファイルリストボックスは 標準では ツールボックスには表示されて居ない 標準でツールボックスに表示されて居ないコンポーネントを追加して使用出来る様にする手順は 下記の通りで有る 此処では ツールボックスのコンポーネントに追加すると仕て コンポーネント部を開き 余白部分で右クリックして表示されるポップアップメニューで アイテムの選択 をクリックする.NET では ツールボックスのカスタマイズ 下記のダイアログの.NET Framework コンポーネント タブで DriveListBox DirListBox FileListBox にチェックを入れて OK ボタンをクリックする -2-

オブジェクト プロパティ一覧 ドライブリストボックス ディレクトリリストボックス パネル ファイルリストボックス ピクチャーボックス ボタン グループボックス ラジオボタン 1 ラジオボタン 2 コントロールの種類 プロパティ プロパティの設定値 フォーム Name viewer Text 画像ビューアー FormBorderStyle FixedSingle StartPosition CenterScreen ドライブリスト Name drvviewer ディレクトリリスト Name dirviewer ファイルリスト Name filviewer パネル Name pnlviewer BackColor White AutoScroll True ピクチャーボックス Name picviewer SizeMode AutoSize グループボックス Name grpviewer Text 表示方法 ラジオボタン1 Name radreal Text 実物大表示 Checked True ラジオボタン2 Name radfit Text フィット表示 ボタン Name BtnFinish Text 終了 -3-

ドライブリストボックスシステムの有効なドライブ一覧を表示するコントロール ディレクトリリストボックスカレントディレクトリの階層構造を表示するコントロール ファイルリストボックス指定したディレクトリ内のファイル一覧を表示するコントロール パネル他のコントロールをグループ化する為のコンテナと成るコントロールで有る 通常は 別にフォームを細分化する為に使用する 亦 BackgroundImage プロパティを設定すると コントロールの背景にイメージが表示される ピクチャーボックスビットマップ アイコン メタファイル JPEG ファイル GIF ファイル等の画像を表示するコントロール 従来のバージョン (VB 6.0) の様に 描画メソッドを用いて描画する事や 内部に他のコントロールを配置してコンテナと仕て使用する事はは出来ない グループボックス他のコントロールをグループ化する為のコンテナと成るコントロールで有る 通常は 別にフォームを細分化する為に使用する パネルと同様のを持つが グループボックスではキャプションを表示する事が出来る ラジオボタン複数の項目から 1 つを選択するコントロール 同じパネルやグループボックスに配置された複数のラジオボタンを 1 グループと仕て使用する ボタンユーザーが選択したコマンド ( 命令 ) や操作を実行するコントロール OK ボタンや実行ボタン等 処理の開始や中断 終了の合図に用いられ 最も良く利用されるコントロールで有る ボタンが押し下げられた様に外観が変わる為 プッシュボタンとも謂う 算術演算子 比較演算子 論理演算子 1.^ 冪乗 1.= 等しい 1.Not 否定 2.- 負数 2.<> 等しくない 2.And 論理積 3.* / 乗算と除算 3.< より小さい 3.Or 論理和 4. 整数除算 4.> より大きい 4.Xor 排他的論理和 5.Mod 剰余 5.<= 以下 5.Eqv 同値 6.+ - 加算と減算 6.>= 以上 6.Imp 包合 算術演算子と論理演算子では 複数の演算子が使用されて居る場合には 頭に付けた番号の順序で演算が行われる ( 上に書かれて居る演算子程優先順位が高い ) -4-

プログラムリスト Public Class viewer ' フォームレベルでグローバルな変数の宣言 Private Fname As String 此処で Private 宣言した変数は同じフォーム内の総てのサブプロシージャで値の参照と設定を行う事が出来る ' フォームが読み込まれた時の処理 Private Sub viewer_load( ByVal sender As System.Object, ByVal e As System.EventArgs ) _ Handles MyBase.Load picviewer.top = 0 picviewer.left = 0 filviewer.pattern = "*.bmp;*.jpg;*.jpeg;*.gif;*.ico;*.png;*.tiff;*.exif;*.wmf;*.emf" ' ドライブリストボックスの選択項目が変更された時の処理 Private Sub drvviewer_selectedindexchanged(byval sender As System.Object, ByVal e As System.EventArgs) _ Handles drvviewer.selectedindexchanged dirviewer.path = drvviewer.drive プログラムを起動した時に行う初期設定は 通常フォームの Load イベントで行う ファイルリストに表示するファイルの種類を設定する 此の場合のイコール (=) 記号は 代入演算子で有り 右辺の値を左 辺に代入する働きをする ' ディレクトリリストボックスの内容が変更された時の処理 Private Sub dirviewer_change(byval sender As System.Object, ByVal e As System.EventArgs) _ Handles dirviewer.change SelectedIndexChanged ではなく filviewer.path = dirviewer.path Chenge でないと ファイルリス トボックスと連動しない ' ファイルリストボックスの選択項目が変更された時の処理 Private Sub filviewer_selectedindexchanged(byval sender As System.Object, ByVal e As System.EventArgs) _ Handles filviewer.selectedindexchanged Dim F As String 此の場合のイコール (=) 記号は 比較演算子で有る ' ファイル名の設定 F = filviewer.path A=B : AとBは等しい If Not Microsoft.VisualBasic.Right( F, 1 ) = " " Then F &= " " F &= filviewer.filename ' 画像の読込 picviewer.image = Image.FromFile( F ) ピクチャボックス等に画像を表示 する方法は 他にも色々と用意さ れて居る ( 後述 ) ' ボタン ( 終了 ) がクリックされた時の処理 Private Sub btnfinish_click(byval sender As System.Object, ByVal e As System.EventArgs) _ Handles btnfinish.click アプリケーションを終了する場 Me.Dispose( ) 合 正しくプログラムをメモリか ら消去して終了する -5-

' ラジオボタン ( 実物大表示 ) がクリックされた時の処理 Private Sub radreal_click( ByVal sender As Object, ByVal e As System.EventArgs ) _ Handles radreal.click picviewer.sizemode = PictureBoxSizeMode.AutoSize SizeMode プロパティを AutoSize pnlviewer.autoscroll = True に設定すると コントロールのサ イズが 画像のサイズに変化する ' ラジオボタン ( フィット表示 ) がクリックされた時の処理 Private Sub radfit_click( ByVal sender As System.Object, ByVal e As System.EventArgs ) _ Handles radfit.click picviewer.sizemode = PictureBoxSizeMode.StretchImage 一方 StretchImage に設定する picviewer.size = pnlviewer.size と 画像のサイズが コントロー pnlviewer.autoscroll = False ルのサイズに変化する End Class 画像ファイルを表示 下記の例は PictureBox1 に画像ファイル "C:... xxx.jpg" を表示させる方法で有る System.Drawing 名前空間の Image クラスを使用して居る Private Sub xxx(...) Handles xxx.xxx PictureBox1.Image = Image.FromFile("C:... xxx.jpg") ヘルプでは 下記の様に System.Drawing 名前空間の Bitmap クラスを使用した例が記載されて居る ( 左上隅が (60, 10) の位置に表示される ) 此の場合 Paint イベントで書き直さないと消えて仕舞う Private Sub xxx(...) Handles xxx.xxx Dim P As New Bitmap("C:... xxx.jpg") Dim G As Graphics = PictureBox1.CreateGraphics( ) G.DrawImage(P, 60, 10) 亦 DrawImage メソッドを使用してメタファイルを表示するには下記の様にする Private Sub xxx(...) Handles xxx.xxx Dim P As New Metafile("C:... xxx.wmf") Dim G As Graphics = PictureBox1.CreateGraphics( ) G.DrawImage(P, 60, 10) 此処で紹介した例では DrawImage メソッドに画像を表示する座標しか指定して居ないが 此れでは GDI+ の自動スケーリングが働いて仕舞う可能性が有る 此れを回避する為には 元の画像の大きさを指定して DrawImage メソッドで描画する -6-

DriveListBox の Drive プロパティ ドライブを設定 取得するプロパティ Object.Drive = ドライブ名を表す文字列 ドライブリストボックスコントロールで実行時に選択されて居るドライブの設定や取得を行う デザイン時には使用する事は出来ない Drive プロパティの設定を変更する場合 下記の様な点に注意する必要が有る 文字列の最初の 1 文字丈が有効で有る 但し 大文字と小文字は区別されない Drive プロパティの設定が変更されると SelectedIndexChanged イベントが発生する 存在しないドライブを指定するとエラーが発生する Drive プロパティの設定が変更されると 其の時有効なドライブが自動的に再度チェックされる 此れに依り 実行中に接続されたネットワーク上のドライブを調べる事が出来る DirListBox と FileListBox の Path プロパティ パスを設定 取得するプロパティ Object.Drive = パス名を表す文字列 現在展開されて居るディレクトリのカレントパスの設定や取得を行う デザイン時には使用する事は出来ない Path プロパティの値は "C: Ob" "C: Windows System" 等 パスを示す文字列で有る ディレクトリリストボックスコントロール 又は ファイルリストボックスコントロールの場合 実行時にコントロールが作成された時の 現在のパスが既定値に成る Application オブジェクトの場合 アプリケーションを開発環境で実行して居る時は プロジェクトの VBP ファイルの絶対パスを示す 一方 アプリケーションの実行可能ファイル (EXE) を実行して居る時は 実行ファイルの絶対パスを示す Path プロパティを使用すると アプリケーションでファイルを参照したり 操作したりする事が出来る Path プロパティの設定方法は MS-DOS の chdir コマンドと同じで有る 即ち 相対パスでも指定可能で有り ドライブ名は省略する事が出来る ドライブ名とコロン ( : ) 丈を指定すると 其のドライブのカレントディレクトリが選択される 亦 下記に示す様に Path プロパティでは ドライブ名を指定せずにネットワークのパス丈を指定する事も出来る 下記で servername はサーバー名 sharename はシェア名 path はパス名を示す servername sharename path 此の時 Drive プロパティには 長さ 0 の文字列 ( "" ) が設定される Path プロパティの値を変更すると ディレクトリリストボックスコントロールでは Change イベントが発生し ファイルリストボックスコントロールでは PathChange イベントが発生する -7-

FileListBox の FileName プロパティ ファイルのパスとファイル名を設定 取得するプロパティ Object.FileName = パス名とファイル名を含む文字列 ファイルリストボックスコントロールで 其の時に選択されて居るファイルのパスとファイル名の設定と取得を行う デザイン時には設定する事は出来ない FileName プロパティは リスト内の現在選択 ( 強調表示 ) されて居るファイル名を返す パス名は Path プロパティを使用してファイル名とは別に返す FileName プロパティの値は List(ListIndex) プロパティの値と等しく成る ファイルが選択されて居ない時は FileName プロパティは 長さ 0 の文字列を返す 此のプロパティを設定する時は 下記に示す点に注意する必要が有る ドライブ パス パターンを含む文字列をファイル名と仕て指定すると Drive Path Pattern の各プロパティも変更される 既存のファイル名 ( 含ワイルドカード ) を文字列に指定すると 其のファイルが強調表示される FileName プロパティを変更すると 変更の内容に応じて PathChange( パスを変更した場合 ) PatternChange( パターンを変更した場合 ) DblClick( 既存のファイル名を直接指定した場合 ) の各イベントが発生する 次の構文を使用して FileName プロパティに有効なネットワークパスとファイル名を指定する事も出来る servername sharename pathname FileListBox の Pattern プロパティ 表示されるファイル名を示すパターンを設定 取得するプロパティ Object.Pattern = パターを表す文字列 実行時にファイルリストボックスコントロールに表示されるファイル名を示すパターンの設定と取得を行う パターンを表す文字列には "*.*" や "*.FRM" の様な ファイルを特定する文字列式を指定する 既定値は 総てのファイルの一覧を表示する "*.*" で有る 此のワイルドカード以外にも セミコロン ( ; ) で区切って複数のパターンを指定する事も出来る 例えば "*.COM;*.EXE; *.BAT" と設定すると 総ての実行可能ファイルと MS-DOS バッチファイルの一覧が表示される Pattern プロパティは ファイルの参照や操作を行う処理で使用される Pattern プロパティを他のファイル制御用のプロパティと組み合わせる事に依り ファイルを調べたり 分類したりする事が出来る様に成る 例えば 他のプログラムを起動するアプリケーションでは ファイルリストボックスを使用してファイル選択をする処理で 実行可能ファイル (*.exe) 丈を表示する様に出来る 其の他のファイル制御プロパティと仕て Drive FileName Path の各プロパティが有る 猶 Pattern プロパティの値を変更すると PatternChange イベントが発生する -8-

PictureBox オブジェクトの SizeMode プロパティ イメージの配置方法を指定するプロパティ Object.SizeMode = PictureBoxSizeMode 列挙体 PictureBoxSizeMode 列挙体のメンバを使用して ピクチャボックスのイメージの配置方法の設定と取得を行う PictureBoxSizeMode 列挙体には AutoSize( コントロールのサイズがイメージと同じ大きさに成る ) CenterImage( イメージは中央に表示される ) Normal( イメージはコントロールの左上隅に配置される ) StretchImage( イメージのサイズがコントロールのサイズに調整される ) が有る Dispose メソッドに依るオブジェクトの破棄 コンポーネントに依り使用されて居るリソースを開放するメソッド Object.Dispose( ) フォーム 又は オブジェクトをメモリから消去する プログラムを終了する場合や 使用中のメモリを他の用途に使う場合や プロパティを元の値にリセットする場合等に使用される フォームをメモリからアンロードする時には 表示されて居る構成要素だけがアンロードされ 其のフォームモジュールのコードはメモリに保持されるが 総てのフォームがアンロードされ 実行するコードが無く成れば 其の時点で イベントドリブンのアプリケーションは終了する 猶 フォームの 閉じる ボタンをクリックしたり フォームの Close メソッドを使用すると 自動的に Dispose メソッドが呼び出され 其のフォームのリソースは開放される 但し ShowDialog メソッドに依りモーダル表示されたフォームでは フォームの 閉じる ボタンをクリックしたり フォームの Close メソッドを使用しても 自動的に Dispose メソッドが呼び出される事は無い モーダル表示のフォームのリソースを開放する為には 明示的に Dispose メソッドを使用する End ステートメントに依るプログラムの終了 プログラムの実行を終了させるステートメント End 実行中のアプリケーションを直ちに終了させる End ステートメントより後のコードは実行されず 亦 End ステートメントを実行した後はイベントも発生しない プログラムの通常の終了の場合には 総てのフォームをアンロードする必要が有るが End ステートメントは プログラムを強制的に停止させる手段を提供して居る -9-

.NET Framework 対応 コントロールの配置位置の設定 従来の記述法 picviewer.top = 0 picviewer.left = 0.NET Framework の記述法 picviewer.location = New Point(0, 0).NET Framework では コントロールの配置位置を設定するには Top プロパティと Left プロパティではなく Location プロパティを使用する事が出来る ( 孰れでも 結果は同じ ) 文字列の終端文字の取得 従来の記述法 If Not Microsoft.VisualBasic.Right(F, 1) = " " Then F &= " ".NET Framework の記述法 If Not F.EndsWith(" ") Then F &= " ".NET Framework では 文字列の終端文字を取得するには String クラスの EndsWith メソッドを使用する ドライブリストボックス ディレクトリリストボックス ファイルリストボックス 此等は 従来のコンポーネントで有るが.NER Framework でもサポートされて居り 従来通り 使用する事が出来る 用途が ドライブやディレクトリ ( フォルダ ) やファイルの指定に特化されて居る為 他の用途に使用する事は難しいが 当該目的で使用するには ComboBox コントロールや ListBox コントロール等で自作するよりは 非常に簡単で有る -10-