PDA

View Full Version : سوال: ListBox با سطهایی با رنگ متفاوت



skmkh6056
شنبه 08 تیر 1387, 11:42 صبح
من تو برنامم از ListBox استفاده میکنم که میخوام رنگ سطرهای آن متفاوت باشه و با اضافه یا کم کردن رنگ سطرهای آن آپدیت بشه. احتمالا سطر دوم کم بشه یا هر سطری از آن در حالت RunTime منظورمه.

Hsimple11
دوشنبه 10 تیر 1387, 18:33 عصر
از متد Fillrect برای رنگ آیتمهای Listbox استفاده کنید. جستجو کنید. بحث شده.

موفق باشید...

skmkh6056
سه شنبه 11 تیر 1387, 08:12 صبح
از متد Fillrect برای رنگ آیتمهای Listbox استفاده کنید. جستجو کنید. بحث شده.

موفق باشید...

میشه نمونه کد برام بذارین؟

Hsimple11
سه شنبه 11 تیر 1387, 10:45 صبح
این مثال در runtime، آیتمها را بصورت رنگی اضافه میکند. فرض کنید دو دکمه داریم که یکی آیتم سبز و یکی آیتم قرمز اضافه میکند.


procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with Control as TListBox do
begin
Canvas.FillRect(Rect);
Canvas.Font.Color := TColor(Items.Objects[Index]);
Canvas.TextOut(Rect.Left + 2, Rect.Top, Items[Index]);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.AddObject('Red Item', Pointer(clRed));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ListBox1.Items.AddObject('Green Item', Pointer(clGreen));
end;

در ضمن خاصیت Style مربوط به Listbox خود را در وضعیت lbOwnerDrawFixed قرار دهید.
فکر کنم بتوانید کد را به موارد مشابه تعمیم دهید. اگر چیز دیگری مد نظتان است بفرمایید.

موفق باشید...

Hsimple11
شنبه 15 تیر 1387, 14:04 عصر
میتوانید از همین متد برای رنگ کردن Item ها مختلف ListBox خود استفاده کنید.

موفق باشید...