2009-07-28 9 views
2

私はD2009を使用しています。私はTWinControlから派生したマウスパニングを追加したいコンポーネントを持っています。新しいコントロールスタイル、csPannable、新しいコントロールステート、csPanningがあることがわかります。私はそれを理解しようとするためには、VCLのソースを見てきましたが、これまでのところ私は少し失われています。誰もがこれについてのドキュメントを知っていますか?どんな提案やリンクも大変ありがとうございます!Delphi 2009でカスタムコンポーネントのマウスパニングを行う方法

答えて

1

TWinControlを定義するのと同じユニットに、TControlの実装があります。マウスイベントとプロシージャの定義方法を参照してください。あなたのコンポーネントでマウスメッセージをキャプチャしようとすることができます。あなたはこの

procedure TPanControl.WMLButtonDown(var Message: TWMLButtonDown); 
begin 
    Self.Color := clYellow; 
end; 

procedure TPanControl.WMLButtonUp(var Message: TWMLButtonUp); 
begin 
    Self.Color := clbtnFace; 
end; 

procedure TPanControl.WMMouseMove(var Message: TWMMouseMove); 
var 
    State : TKeyboardState; 
begin 
    GetKeyboardState(State); 
    if ((State[VK_LBUTTON] And $80) <> 0) then begin 
    Self.Color := clOlive; 
    end; 
end; 

テストいくつかのバリエーションのような何かを行うことができます実装では

procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN; 
procedure WMMouseMove(var Message: TWMMouseMove); message WM_MOUSEMOVE; 
procedure WMLButtonUp(var Message: TWMLButtonUp); message WM_LBUTTONUP; 

:プライベートな宣言で

はこれを試してみてください。 この簡単なコードを使用すると、マウスイベントを捕捉できます。これらの手順では、マウスイベントを起動するか、何らかの操作を行ってパンエフェクトを作成することができます。

+1

私が述べたように、私は組み込みのパンニングサポートとインターフェースを取ろうとしています。 – MarkF

関連する問題