PDA

View Full Version : نمایش دکمه داخل DBGrid خیلی لنگم



hamid_massaelly
جمعه 03 آبان 1392, 08:31 صبح
سلام بر همه اعضاء محترم سایت من نیازمند یک روش برای نمایش یک دکمه در هر ردیف DBGrid هستم همانند datalist در c# یکسری گفته اند خاصیت buttonstyle ستون DBGrid را بگذار cbsEllipsis ولی فقط یک دکمه ... نمایش می دهد من می خواهم caption داشته باشه بشه اندازه به آن داد خواهش می کنم هر کس راه حلی می داند مرا راهنمایی کنید متشکرم.

hadisalahi2
شنبه 04 آبان 1392, 17:33 عصر
اولا که سوالت رو توی بد تالاری پرسیدی
دوما کافیه فقط یک سزچ کوچول توی گوگل بزنی

hamid_massaelly
دوشنبه 06 آبان 1392, 16:48 عصر
سلام جستجو کردم ولی گفتم همه چی هست به غیر از button ممکنه یک لینکی مثالی راهنمایی بیشتر کنید.

gholami146
پنج شنبه 09 آبان 1392, 17:37 عصر
const
ActionColIndex = 3;
type
THackedDBGrid = class(TDBGrid);
procedure TForm1.FormCreate(Sender: TObject);
begin
Button := TButton.Create(Self);
with Button do
begin
Parent := self;
Visible := False;
Caption := 'Do Action';
TabStop := True;
OnClick := GridActionBtnClick;
end;
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
GridCurrentRow,
DbCurrentRow : integer;
begin
GridCurrentRow := THackedDBGrid(Sender).Row;
DbCurrentRow := AdoTable1.RecNo;
if DataCol = ActionColIndex then
if GridCurrentRow = DbCurrentRow then
begin
with Button do
begin
Left := Rect.Left + DBGrid1.Left + 2;
Top := Rect.Top + DBGrid1.top + 2;
Height := Rect.Bottom - Rect.Top;
Width := Rect.Right - Rect.Left;
Visible := True;
end;
end;
end;
procedure TForm1.GridActionBtnClick(Sender: TObject);
begin
ShowMessage('Button is clicked');
end;

ولی بهتر از کامپوننت DBGrid Ehlib استفاده کنید کار امد تر و بهتر است