画像・図形の移動リサイズ関係サンプル
概要 |
動作確認等 |
Windows 7 U64(SP1) + Delphi XE(UP1) Pro
R000_ResizeControls.zip は全てのサンプルに必要 |
|
R000_ResizeControls.zip [1,246 KB] 2017年09月20日版 (gdiplus.zip 同梱) |
画像等を描画して移動リサイズするコントロールと,それらを配置するコンテナとなる TPanel を使用するサンプルプログラム集です.
ネット上で入手可能な,この種のコンポーネントやアプリケーションには,あらかじめいろいろな図形が用意されているものがありますが,そのようなものは提供していません.全て自作することになります.そのための参考コードとなっています.
|
[備考 1]
この [画像・図形の移動リサイズ関係サンプル] は 2017年09月に大幅に更新しました.
従来は拙作の [[コントロール移動リサイズコンポーネント] を使用する方法でしたが,専用のクラスを作成しました.サンプルも GDI+ を使用するコードに変更しています.
以前提供していたサンプルとの互換性はありません.
|
[備考 2]
当サイトの記事では,ビックマップ形式 (ラスタ形式) の画像を「画像」,ベクタ形式の画像を「図形」としています.また,ビットマップ画像は,TBitmap で扱う形式のビットマップ形式の画像の意味で使用しています.
|
本ページで提供しているファイルは下図の構成になっています.
[Images] フォルダには各サンプルで使用している画像類があります.[R000_Souce] フォルダに下表のファイルを収めてまいす.筆者はこのフォルダにライブラリのパスを通して,このフォルダに必要なファイルを置いています.これらのファイルがライブラリのパスが通った場所にあれば,このフォルダを使用する必然性はありません.
|
|
図1
ダウンロードしたファイルの構成
- Images はサンプルで使用してい画像類
- R000_Souce には下表のユニットファイル類
|
ユニット名 |
説明 |
plBaseDragResize |
描画用の
動動リサイズコントロールの基本クラス
全てのサンプルに必要
このユニット単独でも使用可能 |
plContainerPanel |
描画用コントロールを配置して使用するコンテナ用のコントロール.
複数の描画用コントロールを管理するための機能を実装
使用には plBaseDragResize と plGPResizeLine が必要 |
plGPResizeImage |
画像描画用のクラスのコントロール |
plGPResizeLine |
直線描画用クラスのコントロール |
GDI+ ライブラリ ( gdiplus.zip ) が必要 |
実際の描画用のクラスでは GDI+ を使用しています.GDI+ を使用するには GDI+ の API を使用するためのライブラリが必要です,以下の記事で確認してください.
以下の記事と記事内の参考リンクには,描画の参考記事やサンプルを掲載しています.
|
描画用コントロールの移動リサイズを構成する方法はアプリケーションによって様々です.
この [画像・図形の移動リサイズ関係サンプル] で提供しているサンプルや CAD のようなアプリでは異なる手法となると思われます.
同じような図形を扱うのであれば,プロパティの指定で対応したり,描画の手順を記した内容をコードに書いておくとか,ファイルに保存し,描画の際にその手順にしたがって表示する方法も実際のアプリケーションで使用されています.多くの CAD
関係のデータもそうです.
描画手順の内容は,例えば,MoveTo,LineTo とか,Circle等のメソッド名とか,座標値,色や線の太さ等の情報となるでしょう.例えば Visio の描画データは以下のようになっています. |
"UIT-SymbolFile"
"VersionInfo",1.00
"Name",K282
"Layer",-1
"Scaling",1.0000000000
"StartingPoint",0.0000000000,0.0000000000
"Line",1170.0002441406,-386.0598754882,1170.0002441406,0.0000000000,0,0
"Line",397.8804321289,-386.0598754882,397.8804321289,0.0000000000,0,0
"Line",0.0000000000,-386.0598754882,0.0000000000,0.00000000000,0,0
"Arc",1170.0002441406,0.0000000000,386.0599060058,3.1415925025,4.7123889923,0,0
"Arc",397.8804321289,0.0000000000,386.0599060058,4.7123885154,6.2831850058,0,0
"Arc",0.0000000000,0.0000000000,386.0599060058,4.7123885154,6.2831850051,0,0
サンプルプログラムのダウンロード方法とブロックの解除 |
各ページの上の方,最初の方に,下図のような画像があります.これをクリックしてください.サンプル単位ではなく,そのページのサンプルの一括ダウンロードとなっています.
各サンプルの個別ダウンロードの要望がありましたが,対応の予定はありません.
ダウンロードしたら [ブロックの解除] をしてください.
|
|