掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
自作コンポーネントの parent プロパティ (ID:44366)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>どうしたら Panel にドラッグしたことを感知することができますか。 設計時にですよね. これは,かなり難しいと思います. 個人的には,素直に,切り取り,貼り付けがいいと思いますが. ヒントだけを. 設計時にマウスイベントを受け取るには,DesignWndProc か CM_DESIGNHITTEST を実装します. (Delphi XE2 なら使用可能です) もちろん,コンポーネントにです. 以下のようなコンポーネントを作成して,フォームに配置すると, すぐに赤い色になります.なぜなら,通常はマウスクリックでコンポを配置しますから, 当然マウスイベントが発生します (これは設計時の動作ですから,実行時は元に戻ります) コンポーネントエディタ側でコーディングするのか,Parent プロパティのオーバライド が必要なのか.やったことがないので,確実なことが言えません.申し訳ないです. unit plMyPanel; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TplMyPanel = class(TCustomPanel) private { Private 宣言 } protected { Protected 宣言 } procedure CMDesignHitTest(var Message: TCMDesignHitTest); message CM_DESIGNHITTEST; public { Public 宣言 } end; procedure Register; implementation procedure Register; begin RegisterComponents('plXRAY', [TplMyPanel]); end; { TplMyPanel } procedure TplMyPanel.CMDesignHitTest(var Message: TCMDesignHitTest); begin inherited; Self.ParentBackground := False; Self.Color := clRed; end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.