khoshblagh
جمعه 17 مهر 1394, 13:15 عصر
با سلام خدمت دوستان
من با کد زیر کلامات داخل دی بی گرید را با توجه به پارامترهای اطلاعات داده ها تغییر میدهم. لذا در زمان ساخت فرم رنگ مورد نظر تنظیم میشود. مشکل اینجاست که اگر بعد از باز شدن فرم مقادیر داده ها تغییر نماید ، رنگهای مورد نظر مجددا تنظیم نمیشود. یعنی حتما باید فرم بسته و باز شود تا رنگ مورد نظر تنظیم گردد. به نظر شما چکاری برای تنظیم رنگ در حین تغییر داده باید انجام داد؟ البته من سعی کردم که از متد رفرش گرید استفادم نمایم ، ولی تغییری حاصل نشد. متشکرم
procedure TfrmSabtKarkart.dbgGharardadDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
var
xValue : Variant;
begin
if gdSelected IN State then begin
if Column.Field.Value = Null then
xValue := ' '
else
xValue := Column.Field.Value;
dbgGharardad.Canvas.Brush.Color := clYellow ;
dbgGharardad.Canvas.FillRect(Rect);
dbgGharardad.Canvas.TextRect(Rect, Rect.Left, Rect.Top, xValue);
end;
if qryGharardad.FieldByName ('MahSal').Asstring =strMahSal
then
dbgGharardad.Canvas.Font.Color := clRed
Else
dbgGharardad.Canvas.Font.Color := clBlack;
dbgGharardad.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
من با کد زیر کلامات داخل دی بی گرید را با توجه به پارامترهای اطلاعات داده ها تغییر میدهم. لذا در زمان ساخت فرم رنگ مورد نظر تنظیم میشود. مشکل اینجاست که اگر بعد از باز شدن فرم مقادیر داده ها تغییر نماید ، رنگهای مورد نظر مجددا تنظیم نمیشود. یعنی حتما باید فرم بسته و باز شود تا رنگ مورد نظر تنظیم گردد. به نظر شما چکاری برای تنظیم رنگ در حین تغییر داده باید انجام داد؟ البته من سعی کردم که از متد رفرش گرید استفادم نمایم ، ولی تغییری حاصل نشد. متشکرم
procedure TfrmSabtKarkart.dbgGharardadDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
var
xValue : Variant;
begin
if gdSelected IN State then begin
if Column.Field.Value = Null then
xValue := ' '
else
xValue := Column.Field.Value;
dbgGharardad.Canvas.Brush.Color := clYellow ;
dbgGharardad.Canvas.FillRect(Rect);
dbgGharardad.Canvas.TextRect(Rect, Rect.Left, Rect.Top, xValue);
end;
if qryGharardad.FieldByName ('MahSal').Asstring =strMahSal
then
dbgGharardad.Canvas.Font.Color := clRed
Else
dbgGharardad.Canvas.Font.Color := clBlack;
dbgGharardad.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;