Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2005年10月09日] [更新 2012年10月18日] コントロール移動リサイズコンポーネント
   
コントロール移動リサイズコンポーネント
概要
クラス名 TplDragResize
バージョン番号 9.02 [2012年10月18日]
開発時動作確認
(VCL-32, VCL-64)
Delphi6Delphi7Delphi2007Delphi2009Delphi2010DelphiXE
DelphiXE2DelphiXE3DelphiXE4DelphiXE5
テストEXE動作確認 WinXPWinVistaWin7
その他 ソースコード付き.テストプログラムのEXEファイル付き
再配布,改変,転載,商用アプリでの使用も自由
plDragResize.zip [2,312 KB] [2012年11月04日 更新]







概要


実行時に,グラフックコントロール (TGraphicContolの派生コントロール) の移動とリサイズを行うためのコンポーネントです.
タックシール印刷で,ラベルの設計を実行時に行うために開発したものです.実際には,目盛線を描画した TPanel の上に配置して,TImage 専用で利用していましたが,公開にあたり,TGraphicControl 専用にしました.TGraphicControl の派生コントロールには以下のものがあります.
  • TImage
  • TLabel
  • TShape
  • TPaintBox
  • TSpeedButton
  • TBevel




実行例と仕様


下図は実行時の画面例です.ターゲットとなるコントロール選択中は,デフォルトではそのコントロールのマウスイベントは発生しません.本コンポーネントがマウスイベントを操作します.キーイベントで操作したい場合は親コントロール(フォームやパネル等)のキーイベントで処理します.
  • グラブハンドル(サイズ変更と移動の小さい四角形)のサイズと色が変更可能です
  • ラバーバンドの線の種類と色も変更可能です
  • 移動のみとすることができます
  • 横または縦方向のみのサイズ変更とすることができます
  • 移動中にターゲットを表示するかしないかを指定できます
  • 回転の機能はありません
Delphi 6, Delphi 7 でも利用可能ですが,動作が重たく緩慢になる場合があります.Delphi 2007 以上での利用をお勧めします.


図1
実行例
  • TShape オブジェクトを対象として選択

本コンポーネントを使用すると,リサイズの操作をすることによって,左右または上下が反転した画像や図形を描画することができます.
ただし,画像処理を行っているわけではないので,正確な意味での反転画像ではありません.左右または上下の座標が反転する操作をした場合,周辺に余計な描画が入ることがあります.図形の場合はそのような現象が発生する可能性は低いと言えます.

上下左右の座標が反転する操作をしなくても,拡大や縮小を繰り返すと画質が低下します.