توضح هذه المقالة بإيجاز كيفية قيام دلفي بتنفيذ العناصر في Listbox لعرض ألوان مختلفة وفقًا للمحتوى. خطوات التنفيذ هي كما يلي:
قم بتغيير خاصية النمط ListBox1 إلى lbOwnerDrawVariable
في الحدث OnDrawItem الخاص بـ ListBox، قم بتغيير خاصية Canvas وفقًا لقيمة العنصر.
رمز العينة كما يلي:
الإجراء TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TownerDrawState);begin // يستخدم الخط اللون الافتراضي الأصلي إذا كان Odd (index) ثم // اللون عندما يكون فهرس العناصر فرديًا يبدأ رقم listbox1 .Canvas.Brush.Color:=clwindow; ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]); end else // يبدأ اللون عندما يكون فهرس العناصر رقمًا زوجيًا listbox1.Canvas.Brush.Color:=clinactivecaptiontext ListBox1 .Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]); odSelected في الحالة ثم يبدأ // اللون عند التحديد listbox1.Canvas.Brush.Color:=clhighlight ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]);