PDA

View Full Version : در DBGrid سطر strikeout (خط روي سطر موردنظر كشيده شود).



ali_abbasi22145
شنبه 24 مرداد 1388, 09:57 صبح
سلام
من دستور ONDrawColumnCell نوشتم و حال مي خواهم بجاي رنگي شدن آن سطر strikeout (خط روي سطر موردنظر كشيده شود).

if ((Sender as tdbgrid).DataSource.DataSet.FieldByName('tag').AsS tring)= '1' then
(Sender as tdbgrid).Canvas.Brush.Color := $00FFCCFF ; // red or any color

if not(GDSelected in State) Then
(Sender as tdbgrid).DefaultDrawColumnCell(rect, datacol, column, state);

به شكل مورد نظر نگاه كنيد:

ali_abbasi22145
سه شنبه 27 مرداد 1388, 13:48 عصر
من اين را مي خواهم كه در شكل زير است:

Saeed_m_Farid
چهارشنبه 28 مرداد 1388, 12:02 عصر
من اين را مي خواهم كه در شكل زير است:
سلام
این کد تقریباً اون کاری که شما می خواهید انجام میده، ولی نه اینکه رو کل row خط بکشه! فونت مقادیر فیلدهای رکورد موردنظر رو StrikeOut میکنه :


procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
if (Sender as TDBGrid).DataSource.DataSet.FieldByName('tag').AsS tring = '1' then
with (Sender as TDBGrid).Canvas do begin
FillRect(Rect);
Font.Style := Font.Style + [fsStrikeOut];
if (Field.DataType = ftFloat) then
TextOut(Rect.Right-TextWidth(Field.AsString)-3,
Rect.Top+3, Field.AsString)
else
TextOut(Rect.Left+2,Rect.Top+3,Field.AsString);
end;
end;