Nhấp đúp vào TStaticText trên biểu mẫu sao chép chú thích của TStaticText đó vào khay nhớ tạm. Không cần nhấp đúp vào sự kiện.nhấp đúp vào TStaticText trong ứng dụng Delphi XE2 sao chép chú thích vào clipboard
bước để tái sản xuất:
- Sử dụng Win 64 và Delphi XE2 cập nhật 4.
- Tạo một VCL Forms ứng dụng.
- Đặt TEdit trên biểu mẫu.
- Đặt một TStaticText trên biểu mẫu. Thay đổi phụ đề thành "TStaticText1Caption"
- Đặt một TStaticText thứ hai trên biểu mẫu. Thay đổi phụ đề thành "TStaticText2Caption"
- Chương trình chạy (F9)
- Nhập một số văn bản vào TEdit. Chọn tất cả và sao chép nó qua CTRL + C.
- Xóa văn bản trong TEdit. Dán nó vào để xác minh văn bản là những gì bạn đã sao chép.
- Xóa văn bản trong TEdit.
- Nhấp đúp vào TStaticText.
- Dán văn bản vào TEdit. Chú ý nó không phải là văn bản đã sao chép ban đầu mà là chú thích của TStaticText.
Tôi đã gửi báo cáo lỗi cho Embarcadero.
Tôi đã thử chỉ định sự kiện nhấp đúp vào TStaticTexts. Nó vẫn sao chép chú thích vào clipboard ngay cả khi nó thực thi sự kiện nhấn đúp.
procedure TForm1.StaticText1DblClick(Sender: TObject);
begin
Edit1.Text := 'Hello';
end;
procedure TForm1.StaticText2DblClick(Sender: TObject);
begin
Edit1.Text := 'World';
end;
Điều này không xảy ra với TLabel hoặc bất kỳ điều khiển VCL nào khác mà tôi đã thử.
Chúng tôi có rất nhiều TStaticTexts trên biểu mẫu của chúng tôi cho mục đích thiết kế trực quan và thay đổi thành TLabels không phải là một tùy chọn.
Bất kỳ ai có ý tưởng nào về cách ngăn điều này xảy ra?
Theo bài viết bạn đã liên kết, có một giải pháp thay thế: "nếu bạn muốn tắt tính năng * nhấp đúp để sao chép * trên điều khiển tĩnh' SS_NOTIFY', bạn phải phân lớp kiểm soát tĩnh và ăn nhấp chuột bản thân bạn." –
Vâng, đó cũng là một lựa chọn hợp lệ. – RRUZ
Tôi đánh giá cao câu trả lời. Tôi đoán đó là một thay đổi nội bộ của cách điều khiển VCL được tạo ra với Delphi mới hơn so với Delphi cũ hơn. Chúng tôi đã gặp rất nhiều vấn đề nhỏ khi chuyển từ Delphi 6 sang XE2. Chúng ta sẽ phải tìm một giải pháp thay thế, điều này sẽ gây ra vấn đề. –