Fórum Botão Dentro do DBGrid para consulta de Produtos #427798
01/11/2012
0
Galera eu estou tentando colocar um botão dentro da celular do meu dbgrid de itens, ou seja,ao clicar na célula onde eu tenho o código do produto eu quero acrescentar um botão no canto direito para o usuário clicar e consultar o produto caso ele não saiba o código do produto que esta inserindo no momento.
imagem de exemplo:
[url]http://www.7master.com.br/grid.gif[/url]
imagem de exemplo:
[url]http://www.7master.com.br/grid.gif[/url]
Sidney Abreu
Curtir tópico
+ 0
Responder
Posts
01/11/2012
Gilvanio Gonçalves
na verdade o mais correto não seria botão na grid, mas sim clique do mouse
do lado direto na celula e abre um caixa para pesquisa ao campo selecionado,porém neste metodo
tem que usar componente, e sql.
mas vamos lá no que vc quer:
lembrado que cada botão, e o caption criado é apenas uma imagem .
codigo no evento onDrawColumnCell:
como o botão é só uma imagem vc terá que criar um rotina com codigo para
para relizar a pesquisa na coluna selecinada, vou usra um exemplo por um form
observe que na ultima linha do codigo é chamado uma varivem global para enviar o valor do campo para o form2, em um edit.
esta variavel vc que vai criar ok.
agora é só vc adaptar ao seu aplicativo.
At+
do lado direto na celula e abre um caixa para pesquisa ao campo selecionado,porém neste metodo
tem que usar componente, e sql.
mas vamos lá no que vc quer:
lembrado que cada botão, e o caption criado é apenas uma imagem .
codigo no evento onDrawColumnCell:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
BUTTON: Integer;
R: TRect;
SCapt : string;
begin
if Column.FieldName = 'Codigo' then
begin
DBGrid1.Canvas.FillRect(Rect);
BUTTON := 0;
R:=Rect;
SCapt := '...';// caption do botão
InflateRect(R,-24,-2); //Diminue o tamanho do Botão
DrawFrameControl(DBGrid1.Canvas.Handle,R,BUTTON, BUTTON or BUTTON);
with DBGrid1.Canvas do
begin
Brush.Style := bsClear;
Font.Color := clBtnText;// cor normal do botão
TextRect(Rect, (Rect.Left + Rect.Right - TextWidth(SCapt)) div 2, (Rect.Top + Rect.Bottom - TextHeight(SCapt)) div 2, SCapt);//posicionamentodo botão
end;
end;
end;como o botão é só uma imagem vc terá que criar um rotina com codigo para
para relizar a pesquisa na coluna selecinada, vou usra um exemplo por um form
procedure TForm1.DBGrid1CellClick(Column: TColumn); begin if DBGrid1.SelectedField.FieldName = 'Codigo' then begin form2.show; form2.Edit1.text:=vdadosdbgrid;//Variavel global mandando os dados para o form2 end; end;
observe que na ultima linha do codigo é chamado uma varivem global para enviar o valor do campo para o form2, em um edit.
esta variavel vc que vai criar ok.
agora é só vc adaptar ao seu aplicativo.
At+
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)