掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
不特定多数のフォームを、APIを使わずにサブクラス化できますか?? (ID:2998)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> >?TListの方の関数を呼び出し、処理してもらうのはどうでしょうか? > なるほど、Selfパラメータですか…。 これですけど、SelfパラメータはTListクラスになってしまいます。 Delphiの方法のサブクラス化では、メッセージとwParamとlParamと戻り値しか使えません。 なので、ウィンドウハンドルや、Selfパラメータを引数として、他の関数を呼び出すことはできないんですけど…。 Kenjiさんはどういうイメージで考えているんでしょうか? もしかしたら、わたしのやり方が違うだけで、 Kenjiさんのイメージどおりのやり方なら、うまくいくのかもしれません。 type PWindowData = ^TWindowData; TWindowData = record Form : TCustomForm; PrevWndProc : TWndMethod; end; ……………… function TWindowList.Add(Form:TCustomForm): Integer; var p: PWindowData; begin New(p); p^.Form := Form; if Running then begin // サブクラス化 p^.PrevWndProc := Form.WindowProc; Form.WindowProc := ChildWndProc; end; Result := inherited Add(p); end; ……………… procedure TWindowList.ChildWndProc(var Message:TMessage); begin (*いろいろな処理…*) //ここで、TWindowDataに格納した、PrevWndProcを呼び出したい end; 今のところ、こういう風に書いています。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.