Tôi có một ứng dụng, được xây dựng trong Delphi 2007, với TDateTimePicker
trên biểu mẫu. Bộ chọn ngày tháng này có thuộc tính ShowCheckbox
được đặt thành True
, bên cạnh ngày hoặc giờ hiển thị hộp kiểm, được chọn tự động bất cứ khi nào người dùng chọn ngày hoặc khi ngày hoặc giờ được thay đổi theo mã. Trạng thái của hộp kiểm này cũng có thể được kiểm soát theo cách thủ công bởi người dùng và trạng thái của nó có thể được xác định bởi thuộc tính Checked
.Tại sao TDateTimePicker.Check trả lại luôn đúng trên Windows 7?
Các mã sau đây cho thấy làm thế nào để xác định trạng thái của hộp kiểm này trong OnChange
sự kiện:
procedure TForm1.FormCreate(Sender: TObject);
begin
DateTimePicker1.ShowCheckbox := True;
end;
procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
ShowMessage('Checked: ' + BoolToStr(DateTimePicker1.Checked, True));
end;
Đoạn mã trên làm việc như mong đợi trên Windows XP, nhưng trên Windows 7, Checked
lợi nhuận bất động sản luôn Đúng bất kể trạng thái thực của hộp kiểm đó.
Tại sao Checked
trả lại thuộc tính luôn đúng, ngay cả khi hộp kiểm không được chọn? Có cách nào để sửa chữa hoặc giải quyết vấn đề này bằng cách nào đó không?
P.S. Ứng dụng của tôi sử dụng các chủ đề Windows
Cảm ơn đã làm việc quyến rũ :) – Re0sless
"Sự cố đã biết" đã được khắc phục trong D2009. –
Có bất kỳ vấn đề nào về hệ điều hành với cách này hay không, nó có hoạt động giống với XP, VISTA và 7 không? – mwhobrey