AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE3 [FMX]イメージビューワー(ImageViewer)2013/10/15
 
前頁で[Additional]内の「DropTarget」(ドロップ先)について書きましたので次は、同じく[Additional]内の「ImageViewer」(イメージビューワー)について見ていきます。
 
Delphi2010・VCLアプリケーションでは、イメージコンポーネントはありますが、イメージビューワーという特別なコンポーネントは無いと思われます。
 
[Standard]内に「ImageControl」(イメージコントロール)がありますが、これとどう違うのでしょうか?
 
 


(ヘルプより)
Animated
このスクロールボックスのコンテンツのスクロールを行う際に、スムーズなスクロール アニメーションを使用するかどうかを示します。デフォルトでは、Animated は、True に設定されています。
AutoHide
このスクロールボックスにアタッチされているスクロール バーを、自動的に表示または非表示にするのかを示します。
BackgroundFill
イメージの背景のカスタマイズに使用される、TBrush を表します。
コントロールのイメージの後ろにあるコントロールのセクションをカスタマイズするために、BackgroundFill プロパティを変更します。このプロパティは、透明部分のあるイメージに対してのみ、視覚的な効果があります。
メモ:このプロパティがカスタマイズするのは、イメージに後ろにあるコントロールのセクションのみであって、コントロールの背景ではありません。
BitmapScale
イメージのスケールを表します。
BitmapScale は、イメージのサイズを決定するために使用される、Single値を表します。表示されるイメージの Height および Width は、元の高さと幅を、BitmapScale 値にかけ合わせることによって計算されます。
メモ: BitmapScale の最小値は 0.01 で、最大値は 10 です。最小値よりも小さい値が割り当てられた場合、このプロパティは最小値に設定されます。同様に、最大値よりも大きい値が割り当てられた場合、このプロパティは最大値に設定されます。
MouseScaling
コントロール上でマウスホイールが回転されたときに、そのイメージを拡大、縮小するかどうかを示します。
MouseScalingに対するTrue値は、コントロール上でマウスホイールが回転されたときに、BitmapScaleプロパティを変更し、それによってイメージサイズが変更することを意味します。そうではない場合は、False値となります。
MouseTracking
マウスを、左マウスボタンを押しながら移動させると、スクロールが有効になります。
ShowBackground
イメージの背景がカスタマイズ可能かどうかを示します。
ShowBackground が True 値の場合、BackgroundFill はイメージの後ろにあるコントロールのセクションに影響を与えることを意味し、そうでなければ False 値となります。
ShowScrollBars
このスクロールボックスにアタッチされているスクロールバーを可視にするかどうかを示します。
UseSmallScrollBars
このスクロールボックスにアタッチされているスクロールバーに、オペレーティングシステムが定義する通常サイズではなく、小さいサイズのフットプリントを使うかどうかを示します。
 
(ヘルプより)
TImageViewer は、フォーム上での画像のカスタマイズと表示を目的とする基底コントロールです。
 
TImageViewer を使用すると、フォーム上に TBitmap 画像を表示できます。
 
Bitmapプロパティを使用すると、コントロール内に表示する画像を設定できます。BestFit の場合は、画像の最適なスケールが自動的に計算されます。BitmapScale プロパティを使用すると、画像のスケールを設定できます。
 
というわけで、イメージコントロールとの違いはまず、画像を拡大縮小出来る、という点、スクロールバーを表示させる事が出来るという点、透過画像を扱う際の背景を指定する事が出来るという点、というのがありそうです。
 
まずは、下記のように配置を行います。

Button1 の クリックイベントハンドラを下記のように記述します。
procedure TForm1.Button1Click(Sender: TObject);
begin
 if (OpenDialog1.Execute) then begin
  ImageViewer1.Bitmap := nil ;
  try
   ImageViewer1.Bitmap.LoadFromFile(OpenDialog1.FileName);
   ImageViewer1.BestFit ;
  finally
   
  end;
 end;
end;
イメージビューワーの BestFit メソッドは、画像をコンポーネントの大きさに併せてフィット表示=ちょうど全体が収まるよう表示、を行うようです。
 
保存・コンパイル・実行してみます。

↓ [参照]ボタンをクリック

画像ファイルを選択 ここでは「菊.jpg」を指示


指示した画像が表示される


マウスホイールで拡大すると
なぜか当方PCでは化け発生


更に拡大し、その後は普通に動作している様子
スクロールバーが表示され、画像の移動表示が可能
 
従来では、イメージコンポーネントとスクロールボックスコンポーネントを使用して、画像の拡大縮小移動は自分でプログラミングを行う必要がありましたが、それをせずとも、このコンポーネントだけで簡単に出来てしまう、という事ですね。
 
但し、プログラミングで自動的に画像を操作する、となると途端によく分からなくなりますね。上記のような画像の乱れが頻発して起きてしまいます。
 
 
それでは各スタイルでの画面状態を確認しておきます。
なし
Air.Style
Amakrits.Style
AquaGraphite.style
Blend.Style
Dark.Style
GoldenGraphite.Style
Light.Style
MetropolisUIBlack.Style
MetropolisUIBlue.Style
MetropolisUIDark.Style
MetropolisUIGreen.Style
RubyGraphite.style
Transparent.Style
 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/10/15
 2013/10/15
▼2013/10/16
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.