نوشته شده توسط
amirtofighi
سلام
در ابزار dbgrid چطور میشه سطر و ستون سلول انتخاب شده رو هایلایت کرد؟
ممنون
برای هایلایت کردن سطر و ستون سلول انتخابشده در DBGrid، میتوانید از تکه کد زیر استفاده کنید:
1. ابتدا یک رویداد OnDrawColumnCell برای DBGrid تعریف کنید:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
// بررسی اینکه آیا این سلول انتخاب شده یا خیر
if (gdSelected in State) then
begin
with DBGrid1.Canvas do
begin
// تنظیم رنگ پسزمینه و پیشزمینه برای هایلایت کردن سلول
Brush.Color := clHighlight;
Font.Color := clHighlightText;
// رسم مستطیل برای هایلایت کردن سلول
FillRect(Rect);
end;
end;
end;
2. تعریف یک رویداد OnDrawDataCell برای DBGrid شما.
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
// بررسی اینکه آیا این سلول انتخاب شده یا خیر
if (gdSelected in State) then
begin
with DBGrid1.Canvas do
begin
// تنظیم رنگ پسزمینه و پیشزمینه برای هایلایت کردن سلول
Brush.Color := clHighlight;
Font.Color := clHighlightText;
// رسم مستطیل برای هایلایت کردن سلول
FillRect(Rect);
end;
end;
end;
3. تعریف یک رویداد OnDrawColumnCell برای DBGrid شما.
procedure TForm1.DBGrid1DrawRowDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
// بررسی اینکه آیا این سطر انتخاب شده یا خیر
if (gdSelected in State) then
begin
with DBGrid1.Canvas do
begin
// تنظیم رنگ پسزمینه و پیشزمینه برای هایلایت کردن سطر
Brush.Color := clHighlight;
Font.Color := clHighlightText;
// رسم مستطیل برای هایلایت کردن سطر
FillRect(Rect);
end;
end;
end;
این تکه کد به شما کمک میکند تا در DBGrid شما، ستون و سطر مورد نظر را هایلایت کنید و رنگ پسزمینه و پیشزمینه را به رنگ مد نظر خود تغییر دهید.