掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
KeyDownイベントを持たないコンポーネントで、Ctrl+Aを検出するには (ID:30689)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんな感じ? TChartEx = class(TChart) private FCTRL: Boolean; procedure WMKEYDOWN(var Message: TWMKEYDOWN);message WM_KEYDOWN; procedure WMKEYUP(var Message: TWMKEYUP);message WM_KEYUP; procedure WMLBUTTONDOWN(var Message: TWMLBUTTONDOWN);message WM_LBUTTONDOWN; protected public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure CreateWnd;override; published property OnKeyDown; property OnKeyPress; property OnKeyUp; end; procedure Register; implementation constructor TChartEx.Create(AOwner: TComponent); begin inherited; FCTRL := False; end; procedure TChartEx.CreateWnd; begin inherited CreateWnd; SetFocus; end; destructor TChartEx. Destroy; begin inherited end; procedure TChartEx.WMLBUTTONDOWN(var Message: TWMMouse); begin inherited; //TCharクリックでフォーカス移動 SetFocus; end; procedure TChartEx.WMKEYUP(var Message: TWMKEYUP); begin inherited; if Message.CharCode = VK_CONTROL then FCTRL := False; end; procedure TChartEx.WMKEYDOWN(var Message: TWMKEYDOWN); begin inherited; if Message.CharCode = VK_CONTROL then FCTRL := True; if (FCTRL = True) and (Message.CharCode = 65) then begin //CTRL + A が押された end; Exit; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.