PDA

View Full Version : مشکل با رنگ آمیزی سلولهای dbgrid



vjp
دوشنبه 04 اردیبهشت 1385, 12:06 عصر
باسلام به دوستان:
من جدولی دارم که دارای سه فیلد boolean میباشد و یک dbgrid هم به آن متصل است. میخواهم در صورتیکه فیلدی دارای مقدار true میباشد با رنگ خاصی در dbgrid نمایش داده شود. تا اینجای کار برای یک فیلد هیچ مشکلی ندارم اما وقتی که برای سه فیلد میخواهم این کار صورت بگیرد رنگ آمیزی فیلدها آن طور که میخواهم نمیشود کد نوشته شده در رویداد Ondrawcolumncell برای dbgrid به این شکل است:



if (Aadotable1.FieldByName('bim').AsBoolean) then // bim: سومین فیلد در دی بی گرید
dbgrid1.Canvas.Font.Color:=clred;
if (datacol=3) then
dbgrid1.DefaultDrawColumnCell(Rect,DataCol,Column, State);

if Aadotable1.FieldByName('tax').AsBoolean then //tax: چهارمین فیلد در دی بی گرید
dbgrid1.Canvas.Font.Color:=clred;
if (datacol=4) then
dbgrid1.DefaultDrawColumnCell(Rect,DataCol,Column, State);

خواهشمندم در صورت امکان کمک کنید با تشکر

m-khorsandi
دوشنبه 04 اردیبهشت 1385, 13:34 عصر
اگه میخواید زمانی که هر سه تا فیلدتون مقدار True دارند ، سه ستون با سه رنگ مختلف نمایش
داده بشه میتونید از کد زیر استفاده کنید:


case DataCol of
1: if Adotable1.FieldByName('bim').AsBoolean then
DBGrid1.Canvas.Font.Color := clRed;

2: if Adotable1.FieldByName('tax').AsBoolean then
DBGrid1.Canvas.Font.Color := clGreen;

3: if Adotable1.FieldByName('col4').AsBoolean then
DBGrid1.Canvas.Font.Color := clBlue;
else
DBGrid1.Canvas.Font.Color := clBlack;
end;

dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

vjp
سه شنبه 05 اردیبهشت 1385, 06:51 صبح
متشکرم آقای خرسندی