PDA

View Full Version : رنگی کردن با یک شرط خاص



parhizkar2000
شنبه 24 اردیبهشت 1384, 22:38 عصر
سلام
من یکسری رکورد از توی بانک با یک شرط تاریخی استخراج می کنم . حالا یک فیلد از تعداد رکورد رو می خواهم تو چیزی مثل لیست باکس نشون بدم . حالا یکسری از این رکوردها یه شرط دیگه دارند چطوری میشه اونها رو با رنگ دیگه نشون بدم .حالا تو لیست باکس هم نباشه تو چیزی دیگه هم باشه مهم نیست .

vcldeveloper
یک شنبه 25 اردیبهشت 1384, 03:51 صبح
ListBox رو در حالت lbOwnerDrawFixed قرار بده (Style = lbOwnerDrawFixed) و از کدی شبیه به کد زیر استفاده کن.


procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with TListBox(Control) do
begin
//Clear Rect
Canvas.FillRect(Rect);

if (Items[Index] = '1'){Put your own condition} then
Canvas.Font.Color := clRed
else
Canvas.Font.Color := clblack;
//Draw Text
Canvas.TextOut(Rect.Left,Rect.Top, Items[Index]);
end;
end;

parhizkar2000
دوشنبه 26 اردیبهشت 1384, 00:23 صبح
خیلی خیلی ممنون
((((پرروی)))
آیا میشه این کد رو طوری تغییر داد که ایتمهای که دارای شرط مورد نظر هستند غیر فعال بشن یعنی enablead رو false تنظیم بشه.

vcldeveloper
دوشنبه 26 اردیبهشت 1384, 08:11 صبح
آیا میشه این کد رو طوری تغییر داد که ایتمهای که دارای شرط مورد نظر هستند غیر فعال بشن یعنی enablead رو false تنظیم بشه.
در ListBox امکان غیرفعال کردن گزینه ها وجود نداره.

parhizkar2000
دوشنبه 26 اردیبهشت 1384, 23:10 عصر
با تشکر از شما آقای کشاورز
البته میشه هر گاه کار بر بر روی گزینه مورد نظر که دارای شرط مشخص باشد دابل کلیل کند برای انتخاب یک پیغام نشان داد که امکان انتخاب این آیتم نیست.

hr110
سه شنبه 27 اردیبهشت 1384, 06:53 صبح
بله :

procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
if ListBox1.Items[ListBox1.ItemIndex]='hr110' then
ShowMessage('here ..');
end;