Tôi đang cố tạo nút tùy chỉnh trong thành phần TPanel. Đối với điều này, tôi đã cung cấp một ghi đè cho các sự kiện onmousedown và onmouseup (để làm một số bản vẽ), và tôi đã sử dụng sự kiện onclick để xử lý các nhấp chuột.Không thể nhận tất cả các nhấp chuột khi sử dụng các sự kiện onmousedown, onmouseup và nhấp chuột
Thật không may, nếu tôi nhấp nhanh vào bảng điều khiển của mình, mọi nhấp chuột khác đều bị "mất", nhưng tôi không thể hiểu tại sao.
Ngay cả những ví dụ dễ nhất cũng không thành công trong vấn đề này. Tôi tạo ra một ứng dụng VCL mới, thêm một ListBox, một bảng điều khiển, và thực hiện các sự kiện như sau:
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;
Kết quả như sau:
mouse down
click
mouse up
mouse down
mouse up
etcetera ... Mỗi lần nhấp thứ hai được bỏ qua , nhưng tôi không biết tại sao.
Ai đó có thể giải thích điều này không?