掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
自作コンポーネントの parent プロパティ (ID:44372)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>次はCreate時点のマウス位置から下のコンポーネントを判断して >みたいと考えている最中です。 設計時のマウスイベントは,IDE が管理しています. したがって,マウスのイベント,メッセージはとらえることはできません. 設計時にこれらの機能を使用するには,先に述べた CM_DESIGNHITTEST で Result に 0 以外の値を返します. ただし,そうすると,全てのマウス関係のメッセージを自前で処理しなければなりません. 自分自身が使うコンポーネントであれば,切り取り,貼り付けでいいのではないと思うのですが, どうなんでしょう ? 実行時に Parent を変更するのであれば,比較的簡単ですけどね. unit plMyPanel; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TplMyPanel = class(TPanel) 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 } //----------------------------------------------------------------------------------- // Resultに0以外の値を返すと,設計時にマウスメッセージの処理が可能 // ただし,IDE のメッセージは処理できなくなる // つまり,設計時にマウスでのコントロールの移動もサイズ変更もできなくなる //----------------------------------------------------------------------------------- procedure TplMyPanel.CMDesignHitTest(var Message: TCMDesignHitTest); begin inherited; Message.Result := 1; end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.