Fiz um negócio basicão aqui só pra vc entender ok?

1. Crie uma variável BtnDelete do tipo TButton no plublic do formulário.
2. Crie um campo calculado no Fields Editor com um nome qualquer, usei
Temporario. Adicione esse campo ao DBGrid.
3. No evento DrawColumnCell do DBGrid adicione;
procedure TForm3.DBGrid1DrawC

olumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (gdFocused in State) then
begin
if (Column.Field.FieldName = 'Temporario') then
with BtnDeletar do
begin
Left := Rect.Left + DBGrid1.Left + 1;
Top := Rect.Top + DBGrid1.Top + 1;
Width := Rect.Right - Rect.Left + 2;
Width := Rect.Right - Rect.Left + 2;
Height := Rect.Bottom - Rect.Top + 2;
Caption := 'Del';
BtnDeletar.OnClick := Clique;
Visible := True;
end;
end
end;

4. Crie e destrua o componente BtnDelete no OnCreate e OnDestroy do
formulário;
procedure TForm3.FormCreate(Sender: TObject);
begin
BtnDeletar := TButton.Create(Self);
BtnDeletar.Parent := Form3;

DBCheckBox1.Visible := False;
end;

procedure TForm3.FormDestroy(Sender: TObject);
begin
BtnDeletar.Free;
end;

5. Crie uma procedure com a mesma assinatura de um evento de botão e
coloque seu código nela. Assim:

procedure TForm3.Clique(Sender: TObject);
begin
if MessageDlg('Excluir registro?', mtConfirmation, [mbYes, mbNo], 0) =
mrYes then
Table1.Delete;
end;

Pronto. Note que na linha:
BtnDeletar.OnClick := Clique;

Estou atribuindo a procudure criada ao evento OnClick do Botão.
[]s

Adriano Santos
-------------------------------------------------------------
Editor Técnico Revista ClubeDelphi
www.delphitodelphi.blogspot.com
www.devmedia.com.br
www.devmedia.com.br/clubedelphi/pagina.asp




caionmoreno respondeu:
>
> Existe como eu inserir um botão em um dbgrid??
> Eu tava querendo assim, tem um dbgrid que mostra a tabela, e para cada
> item deveria ter um botão, aí quando a pessoa clicar no botão
> excluiria aquele item.
> Tem como eu fazer isso?
>
> ps:eu vo adicionando itens no form, ou
> seja, quando eu abro o form não tem nada na tabela (dbgrid), ai eu vo
> adicionando, e eu queria que a cada linha tivesse um botão.
>
> 
> ------------------------------------------------------------------------
>
> No virus found in this incoming message.
> Checked by AVG Free Edition. 
> Version: 7.5.516 / Virus Database: 269.19.6/1231 - Release Date: 18/01/2008 
> 11:55
>   

Responder a