16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"WndProcの差し替え"
コンポを派生してパレットに載せるのがうっとおしくなってきたあなたへ(^^;
実行時インスタンスのWndProc(コールバック)を差し替えてちょろちょろと仕事を
済ましてしまいましょう.
イベントがないメッセージについては,普通ならコンポを派生してメッセージ
ハンドラを新設するところですが,下記のようにしてとりあえず同様の効果を
上げることが出来ます.
(00400の蒸し返しではある)
TMyFm2 = class(TMyFm)
protected
OldProc1: TWndMethod;
procedure NewWndProc1(var Msg: Tmessage);
............
procedure TMyFm2.FormCreate(Sender: TObject);
begin
inherited;
OldProc1 := Chart1.WindowProc; // 派生するのが面倒なコンポ
Chart1.WindowProc := NewWndProc1;
end;
procedure TMyFm2.NewWndProc1(var Msg: Tmessage);
begin
case Msg.Msg of
CM_MOUSELEAVE:
Screen.Cursor := crDefault;
else
end;
OldProc1(Msg)
end;
TN(CQJ01721)
- FDELPHI MES(16):玉石混淆みんなで作るSample蔵【見本蓄積】 00/08/24 -
Original document by TN 氏 ID:(CQJ01721)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|