Кнопки в StringGrid

можно-ли возле каждой записи поставить какую-то кнопку?просто надо чтоб возле каждой записи был какой-то баттон,чтоб нажать,и по нему открылась новая форма,с возможностью манипулирования записью.вобщем все это понятно как делать,интересует сама возможность подпихнуть баттоны в StringGrid,есть-ли таковая?
3 ответа

z006, Можно конечно... Но я бы на твоем месте рисовал кнопку при попадании на ячейку фокуса или клика...Выглядит лучше и кнопка не загараживает содержимое... А что бы не генерить убойное количество кнопок создаем одну и показываем когда необходимо..
type   TForm1 = class(TForm)//...................    procedure BtnClick(Sender: TObject);  private    Btn: TButton;//...................rocedure TForm1.FormCreate(Sender: TObject);begin  with Sender as TForm1 do begin    Btn:= TButton.Create(Self);    Btn.Parent := Self;    Btn.Height := StringGrid1.DefaultRowHeight;    Btn.Width := StringGrid1.DefaultRowHeight;    Btn.Caption := '*';    Btn.Hint := 'Hint';    Btn.ShowHint := true;    Btn.OnClick := BtnClick;    Btn.Visible := false;  end;end;//onSelectCellprocedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;  var CanSelect: Boolean);var  CR: TRect;begin  with (Sender as TStringGrid) do begin    if ACol = 3 then begin //номер столбца в которм надо показывать кнопу      CR := StringGrid1.CellRect(ACol, ARow);      Btn.Left := CR.Right - BOpen.Width+3;      Btn.Top := CR.Top+Top+2;      Btn.Visible := true;    end //if    else Btn.Visible := false;  end;end;procedure TForm1.BtnClick(Sender: TObject);begin  with (Sender as TButton) do begin     // обработчик кнопки  end;end;


ооо,это уже интересно,спасибо.а что такое BOpen(33 строка)?у меня на него ругается....


Btn.Left := CR.Right - Btn.Width+3;