|
Delphi Programming / Object Pascal
コントロール移動リサイズコンポーネント |
- 2005年10月09日 Ver. 1.00
- 公開初版
|
- 2005年10月10日 Ver. 1.10
- 移動リサイズ中はグラブハンドル (ハンドルボックス) を非表示にした
|
- 2009年02月14日 Ver. 1.20
- TCustomplDragResize を定義して,その派生コンポーネントとした
- 最初に MouseDown して勢いよく移動するとドラッグが追いつかない現象を修正
- リサイズ時に速く実行するとラバーバンドが残ってしまう現象を修正
- EnbaleCornerOnly (四角のグラブハンドルのみ表示) プロパティ追加
- 横または縦のサイズが小さくなったら中央のグラブハンドルを非表示にした
- Assign メソッドを追加
- EnableSize の初期値を False から True に変更
- [Shift] キーのサポート
移動では縦または横方向のみ移動
リサイズでは,縦横比を保持してリサイズ
- 内部のコードを整備
- 文字列 (メタファイル) の移動リサイズテストプログラムを追加
- Windows Vista + Delphi 200 7 +R2 で動作確認
|
- 2009年11月14日 Ver. 9.00
- Delphi 2009, 2010 で動作確認
|
|
- 2009年11月16日 Ver. 9.01
- メモリリークを修正
|
- 2011年04月21日
- Delphi XE で動作確認
|
- 2012年10月18日 Ver. 9.02
- ソースコードを大幅に変更
機能ごとに関数,メソッドを分けて,改変がしやすいようにした
ただし,解読は難しいかもしれない
このソースコードの変更で,内部で使用するクラス名を一部変更した
- ダブルクリックの際,ラバーバンドの表示が二重になり,マウスがキャプチャーされたままの状態になってしまう現象を修正
- [Shift] キーによる横または縦方向のみの移動動作を確実にした
- リサイズの時に,マウスカーソルがグラブハンドル (ハンドルボックス) の位置から外れないようにした
- 初期状態では,移動リサイズ時にグラブハンドルを表示するようにした
- SetBounds メソッドの最後の引数を削除した
- ラバーバンドとグラブハンドルの表示・非表示用の Visible プロパティを追加
- 上下左右の端を越えてのリサイズ可能にした
- 上の機能追加に伴い,座標の情報を取得するための TRect 型の ResizeRect プロパティを追加
- ターゲットコントロールの描画領域を,ラバーバンドよりも大きくするためサイズ設定用の PaddingHorz と PaddingVert プロパティを追加
- 初期状態で,右上と左下のグラブハンドルのみと,左下と右上だけのグラブハンドルだけを表示するプロパティを追加
|
- 2012年10月25日
- 移動リサイズ描画用コントロールのサンプルを追加添付
|
- 2012年11月04日
- 移動リサイズ描画用コントロールのサンプルをサンプルプログラム集に移動
|
|