TPanelコンポーネントからカスタムボタンを作成しようとしています。このために、onmousedownイベントとonmouseupイベントのオーバーライドを提供しました(いくつかの描画を行うために)、私はクリックを処理するためにonclickイベントを使用しました。onmousedown、onmouseup、およびclickイベントを使用しているときに、すべてのクリックを捕捉できない
残念ながら、パネルをすばやくクリックすると、他のクリックはすべて「失われています」が、わかりません。
この点でも最も簡単な例でさえも失敗します。私は、新しいVCLアプリケーションを作成し、1枚のパネルをリストボックスを追加し、次のようにイベントを実装:
procedure TForm1.Panel1Click(Sender: TObject);
begin
listbox1.Items.Add('click');
end;
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
listbox1.Items.Add('mouse down');
end;
procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
listbox1.Items.Add('mouse up');
end;
次のように結果は次のとおりです。
mouse down
click
mouse up
mouse down
mouse up
エトセトラ...各二クリックが無視されますしかし、私は理由を知らない。
これは誰でも説明できますか?