画像・図形の移動リサイズ関係サンプル
概要 |
| 動作確認等 |
- |
 |
R000_ResizeControls.zip [1,3 KB] 2025年04月16日版 (gdiplus.zip 同梱)
他のページのサンプルに必要な描画用クラスのソースコード類 |
画像等を描画して移動リサイズするコントロールと、それらを配置するコンテナとなる TPanel を使用するサンプルプログラム集です。
ネット上で入手可能な、この種のコンポーネントやアプリケーションには、あらかじめいろいろな図形が用意されているものがありますが、そのようなものは提供していません。全て自作することになります。そのための参考コードとなっています。
|
[備考 1]
この [画像・図形の移動リサイズ関係サンプル] は 2017年09月に大幅に更新しました。
従来は拙作の [[コントロール移動リサイズコンポーネント] を使用する方法でしたが、専用のクラスを作成しました。サンプルも GDI+ を使用するコードに変更しています。
以前提供していたサンプルとの互換性はありません。
|
[備考 2]
2025年3月に、基本クラス TplBaseDragResize を更新しました。
TplBaseDragResize を継承する描画用クラスを作成しやすくするために、プロパティやメソッドを追加しました。この更新に伴い、一部のサンプルプログラムも変更しています。
|
[備考 3]
当サイトの記事では、ビットマップ形式 (ラスタ形式) の画像を「画像」、ベクタ形式の画像を「図形」としています。また、ビットマップ画像は、TBitmap で扱う形式のビットマップ形式の画像の意味で使用しています。
|
この [画像・図形の移動リサイズ関係サンプル ] は、Delphi の TButton, TEdit, TPanel, TShape 等のコントロールを移動リサイズすることはできません。 |
本ページで提供しているファイルは下図の構成になっています。
[Images] フォルダには各サンプルで使用している画像類があります。[R000_Souce] フォルダに下表のファイルを収めてまいす。筆者はこのフォルダにライブラリのパスを通して、このフォルダに必要なファイルを置いています。これらのファイルがライブラリのパスが通った場所にあれば、このフォルダを使用する必然性はありません。
|
 |
図1
ダウンロードしたファイルの構成
- Images はサンプルで使用してい画像類
- R000_Souce には下表のユニットファイル類
- これらがライブラリパスが通った場所に必要
|
| ユニット名 |
説明 |
| plBaseDragResize |
描画用の
動動リサイズコントロールの基本クラス
全てのサンプルに必要 |
| plContainerPanel |
描画用コントロールを配置して使用するコンテナ用のコントロール。
複数の描画用コントロールを管理するための機能を実装 |
| plGPResizeImage |
画像描画用のクラス
描画に GDI+ を使用。拡張描画領域は使用しない |
| plGPResizeLine |
直線描画用のクラス
描画に GDI+ を使用。拡張描画領域を使用 |
| plResizeEllipse |
楕円描画用のクラス
描画に VCL を使用。拡張描画領域は使用しない |
| plResizeEllipseEx |
楕円描画用のクラス
描画に VCL を使用。拡張描画領域を使用 |
| plGPResizeEllipse |
楕円描画用のクラス
描画に GDI+ を使用。拡張描画領域は使用しない |
| plGPResizeEllipseEx |
楕円描画用のクラス
描画に GDI+ を使用。拡張描画領域を使用 |
| 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
| サンプルプログラムのダウンロード方法とブロックの解除 |
各ページの上の方、最初の方に、下図のような画像があります。これをクリックしてください。サンプル単位ではなく、そのページのサンプルの一括ダウンロードとなっています。
各サンプルの個別ダウンロードの要望がありましたが、対応の予定はありません。
ダウンロードしたら [ブロックの解除] をしてください。
|
|