سلام
درمورد سوالتون:
من درست نمی دونم برنامتون چطوری هست اما یکی از دو راه زیر رو می تونید انجام بدین:
1) اگه رکورد های مورد نظر همشون دارای یک خصوصیت خاص هستند.مثلا همه این رکوردها که میخواهین رنگی بشه نامشون ali هست و باید هر رکوردی که نامش ali هست به رنگ قرمز باشند پس می تونید دستور زیر رو در خاصیت OnDrawDataCell اون DBGrid بنویسید:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect
;(Field: TField; State: TgridDrawState
begin
if TABLE1.FieldByName('NAME').AsString= 'ali' then
;DBGrid1.Canvas.Brush.Color:=clred
;(DBGrid1.Canvas.TextRect(rect,rect.left+2,rect.to p+2,field.AsString
;end
با این کار همه رکورد هایی که فیلد نام آن ali هست به رنگ قرمز در می آیند و اگه رکورد جدیدی هم وارد جدول شود که فیلد نام آن ali هست ،آن رکورد نیز قرمز رنگ می شود.
2) اما اگر این رکورد ها با بقیه رکوردهای جدول فرقی نمی کنند و کلید خاصی برای تشخیص آن وجود ندارد و باید خودتون مشخص کنید که کدام رکورد باید رنگش قرمز باشه،پس باید برنامتون رو طوری بنویسید که اگه یک بار دیگه وارد برنامه شدین اون رکوردهایی که رنگشون رو عوض کردین هنوز به همون رنگ باشند(برای همیشه).
پس به نظر من بهتره که اول برای اون جدولتون یک فیلد جدید اضافه کنید مثلا به نام recordcolor و از نوع number باشه حال در برنامه تون دستور زیر رو در اون دکمه که گفتین بنویسید:
;(procedure TForm1.Button1Click(Sender: TObject
begin
;TABLE1.edit
;TABLE1.FieldByName(' recordcolor').asinteger:=1
;Table1.post
;End
و در خاصیت OnDrawDataCell اون DBGrid بنویسید:
if TABLE1.FieldByName(' recordcolor').asinteger=1 then
;DBGrid1.Canvas.Brush.Color:=clred
;(DBGrid1.Canvas.TextRect(rect,rect.left+2,rect.to p+2,field.AsString
همین.