2012-03-21 7 views
7

मैं को शैली की संपत्ति सेट के साथ एक TComboBox घटक का उपयोग कर रहा csOwnerDrawFixed, मैं OnDrawItem को लागू करने और सब कुछ ठीक काम करता है, अब मैं जो बता गया (csOwnerDrawFixed साथ की तरह जब csDropDown शैली थी व्यवहार करने के लिए चाहते हैं शैली csDropDownList शैली की तरह व्यवहार करती है), मेरा मतलब है एक आंतरिक संपादक के साथ। क्या यह संभव है?csOwnerDrawFixed शैली के साथ एक Combobox कैसे csDropDown शैली की तरह व्यवहार कर सकते हैं?

उत्तर

0

कोई भी मालिक ड्रा शैलियों TComboBox में एक संपादन बॉक्स की उपस्थिति का समर्थन नहीं करता है। आपको इसके बजाय एक अलग TEdit का उपयोग करना होगा।

7

डेल्फी का टीसीम्बोबॉक्स रैपर मालिक को संपादन योग्य शैली को आकर्षित करने का समर्थन नहीं करता है, लेकिन अंतर्निहित विंडोज नियंत्रण करता है, और इसे सक्षम करना आसान है।

तो जैसे एक नया वंशज कक्षा बनाएं:

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; 

StylecsDropDown को निर्धारित करें और OnDrawItem आवंटित की तरह आप पहले से ही कर रहे हैं।

संबंधित मुद्दे