ورود

View Full Version : هایلایت کردن سطر و ستون فعال در Dbgrid



amirtofighi
دوشنبه 28 فروردین 1402, 21:15 عصر
سلام
در ابزار dbgrid چطور میشه سطر و ستون سلول انتخاب شده رو هایلایت کرد؟
ممنون

دلفــي
سه شنبه 20 تیر 1402, 08:48 صبح
سلام
در ابزار 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 شما، ستون و سطر مورد نظر را هایلایت کنید و رنگ پس‌زمینه و پیش‌زمینه را به رنگ مد نظر خود تغییر دهید.