Botão dentro de um dbgrid
Como faço para inserir um botão dentro de uma coluna no dbgrid?
Frederico Brigatte***
Curtidas 0
Respostas
Frederico Brigatte***
17/04/2011
Como faço para inserir um botão dentro de uma coluna no dbgrid?
Achei esse código que até funciona mais ou menos:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
// if DBGrid1.SelectedField.FieldName = 'Teste' then
// begin
form2.show;
form2.Edit1.text:='oi';//Variavel global mandando os dados para o form2
// end;
end;
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 = 'Teste' then
begin
DBGrid1.Canvas.FillRect(Rect);
BUTTON := 0;
R:=Rect;
SCapt := 'Alterar';
InflateRect(R,-2,-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;
TextRect(Rect, (Rect.Left + Rect.Right - TextWidth(SCapt)) div 2, (Rect.Top + Rect.Bottom - TextHeight(SCapt)) div 2, SCapt);
end;
end;
end;
Gostaria que em vez de escrever alterar no botão, escrevesse horas, assim que quero:
07:00
07:30
08:00
e assim por diante.
GOSTEI 0
Frederico Brigatte***
17/04/2011
Como faço para inserir um botão dentro de uma coluna no dbgrid?
Achei esse código que até funciona mais ou menos:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
// if DBGrid1.SelectedField.FieldName = 'Teste' then
// begin
form2.show;
form2.Edit1.text:='oi';//Variavel global mandando os dados para o form2
// end;
end;
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 = 'Teste' then
begin
DBGrid1.Canvas.FillRect(Rect);
BUTTON := 0;
R:=Rect;
SCapt := 'Alterar';
InflateRect(R,-2,-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;
TextRect(Rect, (Rect.Left + Rect.Right - TextWidth(SCapt)) div 2, (Rect.Top + Rect.Bottom - TextHeight(SCapt)) div 2, SCapt);
end;
end;
end;
Gostaria que em vez de escrever alterar no botão, escrevesse horas, assim que quero:
07:00
07:30
08:00
e assim por diante.
Parecido com a imagem abaixo quero que fique:
GOSTEI 0