PDA

View Full Version : فونت dbgrid هنگام multiselect



accpascal
جمعه 24 آبان 1387, 16:02 عصر
باور کنید تکراری نیست من خیلی گشتم این مورد را پیدا نکردم
با استفاده از دستور زیر رنگ فونت dbgrid را تعریف کردم ولی در multiselect جواب نمی دهد
If (gdFocused in State) or (gdSelected in State) then
begin
dbgrid.Canvas.Font.Color:=clred;
dbgrid.canvas.brush.color :=clblue;
end
کسی میداند اشکال در کجاست

Answer
شنبه 25 آبان 1387, 19:54 عصر
اول اینکه کدی که نوشتی کامل نیست و برای یک سطر هم جواب نمیده

If (gdFocused in State) or (gdSelected in State) then
dbgrid1.Canvas.Brush.Color :=clCream ;
dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
دوم اینکه اینکار فقط برای سطر فعال انجام میشه و برای چندین رکورد بهتره از خاصیت Bookmark جدول دادهها استفاده بشه

accpascal
شنبه 25 آبان 1387, 21:38 عصر
از تذکر شما ممنونم
من سطر آخر را هم که شما اضافه کردهاید در برنامه اصلی نوشته ام
لطفا برای قسمت اصلی سوال(multiselect) اگر جوابی دارید لطف بفرمایید ممنون می شوم
خاصیت bookmark را چگونه استفاده کنم

Answer
یک شنبه 26 آبان 1387, 11:54 صبح
پس از کلی تلاش یه کد بسیار ساده و جالب
تو خاصیت DrawColumnCell گرید بنویسید

if DBGrid1.Canvas.Brush.Color=clHighlight then
DBGrid1.Canvas.Brush.Color:=clCream;