View Full Version : تغییررنگ dbgrid
a-azad
دوشنبه 19 فروردین 1387, 21:42 عصر
سلام می خواستم وقتی مقدارفیلدwork=انجام شد رنگ رکورد قرمز شود
begin
'انجام شد'=if requestquery.FieldByName('work').aswidestring
then
;tntDBGrid1.Canvas.Font.Color:=clred
;DBGrid1.Canvas.TextRect(rect,rect.left+2,rect.top +2,field.AsString)
مشکل کجاست ;end
vcldeveloper
سه شنبه 20 فروردین 1387, 01:36 صبح
OnDrawColumnCell را جستجو کنید.
delphiprog3000
سه شنبه 20 فروردین 1387, 10:23 صبح
با اجازه جناب کشاورز.
اینم یه لینک در مورد مطلب مورد نظر
http://barnamenevis.org/forum/showthread.php?t=73606&highlight=ondrawcolumn
موفق باشید.............
dana74
جمعه 23 فروردین 1387, 08:49 صبح
سلام می خواستم وقتی مقدارفیلدwork=انجام شد رنگ رکورد قرمز شود
begin
'انجام شد'=if requestquery.FieldByName('work').aswidestring
then
;tntDBGrid1.Canvas.Font.Color:=clred
;DBGrid1.Canvas.TextRect(rect,rect.left+2,rect.top +2,field.AsString)
مشکل کجاست ;end
اینکه دوستان می فرمایند با رویداد OnDrawColumnCell حل میشه را نمیدانم.ولی با روش زیر مشکلت حل میشه:
1.ابتدا خاصیت DefaultDrawing مربوط به DBGrid را false کن.
2.سپس این کد را در رویداد OnDrawDataCell بنویس:
if Field.FieldName = 'work' then
if DBGrid1.DataSource.DataSet.FieldByName('work').AsS tring='انجام شد' Then
(Sender as TDBGrid).Canvas.Font.Color := clRed; { En rojo / in red }
(Sender as TDBGrid).Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2,
Field.AsString);
موفق باشید!
vcldeveloper
جمعه 23 فروردین 1387, 15:31 عصر
2.سپس این کد را در رویداد OnDrawDataCell بنویس
رویداد OnDrawDataCell منسوخ شده، فقط برای backward compatibility در DBGrid باقی مونده و تضمینی وجود نداره که در ورژن های آینده هم پابرجا باشه. همون کد را برای رویداد OnDrawColumnCell بنویسید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.