Tôi đang sử dụng một thành phần TComboBox với các thiết lập sở hữu phong cách để csOwnerDrawFixed, tôi thực hiện OnDrawItem Và tất cả mọi thứ hoạt động tốt, Bây giờ tôi muốn mà combobox để hành xử như thế nào khi có csDropDown phong cách (với csOwnerDrawFixed phong cách hoạt động như phong cách csDropDownList), tôi có nghĩa là với một trình soạn thảo nội tại. điều này có thể không?Làm thế nào một Combobox với Style csOwnerDrawFixed có thể hoạt động giống như phong cách csDropDown?
7
A
Trả lời
0
Không ai trong số các phong cách OwnerDraw hỗ trợ sự hiện diện của một hộp chỉnh sửa trong TComboBox
. Bạn sẽ phải sử dụng một riêng biệt TEdit
để thay thế.
7
TComboBox wrapper Delphi không hỗ trợ chủ sở hữu vẽ theo phong cách thể chỉnh sửa, nhưng cơ bản điều khiển Windows không, và thật dễ dàng để kích hoạt nó.
Tạo một lớp hậu duệ mới như vậy:
TComboBox = class(StdCtrls.TComboBox)
public
procedure CreateParams(var Params: TCreateParams); override;
end;
procedure TComboBox.CreateParams(var Params: TCreateParams);
begin
inherited;
if Assigned(OnDrawItem) then
Params.Style := Params.Style or CBS_OWNERDRAWFIXED
end;
Đặt Style
-csDropDown
và gán OnDrawItem
như bạn đã làm.