|
15番会議室「FAQ編纂委員会」に寄せられた「よくある質問の答え」
[Q]
ウインドウを分割し、その境界線をファイルマネージャーの中央の線の様にマウスで
つかんで移動できるようにするにはどうすればいいのでしょう。
[A]
境界線にTPanelを利用することでコーディングを簡単にできます。
例
TPanelを3つFormに貼り付けます。
左に Align:=alLeft のPanel1
その右に Align:=alLeft,Cursor:=crHSplit,Width:=5 のPanel2
残りの領域にAlign:=alClientにした Panel3
Panel2のOnMouseMoveイベントに次のコードを書きます。
if GetCaptureControl=Panel2 then Panel1.Width:=Panel1.Width+X;
この方法はコーディングがシンプルにできますが、欠点として
再描画によるちらつきがひどくなります。
ファイルマネージャと同じように仮の線を引いてからマウスボタンを離した
ときにサイズを変更するには、
1.もう一つPanelを用意し仮の線とする方法。
2.Pen.mode:=pmXorで仮の線を引く方法。
などがありますが、多少複雑になります。
2はDelphi\Demos\Resxplor\にサンプルがあります。
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum FDELPHIに寄せられる質問の中から、よくある質問への回答を FDELPHIのメンバーがまとめたものです。 したがって、これらの回答はボーランド株式会社がサポートする公式のものではなく、掲示されている内容についての問い合わせは受けられない場合があります。
Copyright 1996-1998 Delphi Users' ForumFAQ編纂委員会
|