2011-12-19 19 views
12

एक TListBox में आइटम चयन फोकस रंग और टेक्स्ट रंग बदलने के लिए संभव है?मैं चयनित सूची-बॉक्स आइटम को एक अलग रंग में कैसे आकर्षित करूं?

जब प्रोजेक्ट में थीम सक्षम नहीं हैं, या सूची बॉक्स शैली मालिक-ड्रा पर सेट की गई है, तो आइटम के चारों ओर चयन नीले चित्रित किया गया है, जो मुझे विश्वास है कि वैश्विक रूप से सिस्टम की उपस्थिति सेटिंग्स द्वारा परिभाषित किया गया है।

मैं चयनित वस्तुओं का रंग कस्टम रंग में बदलना चाहता हूं।

enter image description here

नोट उदाहरण वर्णन करने के लिए पिछले लिस्टबॉक्स पेंट में संशोधित किया गया है:

तो एक उदाहरण है, परिणाम कुछ इस तरह होगा।

उत्तर

18

इस प्रयास करें:

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; 
    Rect: TRect; State: TOwnerDrawState); 
begin 
    with (Control as TListBox).Canvas do 
    begin 
    if odSelected in State then 
     Brush.Color := $00FFD2A6; 

    FillRect(Rect); 
    TextOut(Rect.Left, Rect.Top, (Control as TListBox).Items[Index]); 
    if odFocused In State then begin 
     Brush.Color := ListBox1.Color; 
     DrawFocusRect(Rect); 
    end; 
    end; 
end; 
+0

काम करता है lbOwnerDrawFixed हो गया है उत्कृष्ट धन्यवाद @SimaWB –

+4

@Craig - सुनिश्चित करें कि उपयोगकर्ताओं को समान खिड़की पाठ का रंग न करना पड़े। –

+0

धन्यवाद @ सर्टैक मैं उस पर विचार करूंगा। –

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

  • कोई संबंधित समस्या नहीं^_^