Títulos com mais de uma linha no DBGrid
Um dos problemas do TDbGrid é que ele não contem uma propriedade para poder colocar o título das colunas em várias linhas. Umas de suas classes ancestrais possui várias propriedades protegidas que possibilitam alterar algumas características do TDbGrid. Esta classe é a TCustomGrid.
Vamos começar;
type
TAccessDBGrid = class(TCustomGrid);
end;
No evento de OnDrawColumnCell
var
wDescricao01, wDescricao02: string;
begin
with TAccessDBGrid(DBGrid1) do begin
RowHeights[0] := 32;
Canvas.Brush.Style := bsSolid;
Canvas.Brush.Color := clBtnFace;
Canvas.FillRect(Rect);
case Column.Index of
0: begin
Column.Title.Caption := EmptyStr;
wDescricao01 := FormatDateTime('dd/mm/yyyy', Date);
wDescricao02 := FormatDateTime('dddd', Date);
end;
1: begin
Column.Title.Caption := EmptyStr;
wDescricao01 := 'Linha 01';
wDescricao02 := 'Linha 02';
end;
end;
Canvas.TextOut(Rect.Left + 2, 2, wDescricao01);
Canvas.TextOut(Rect.Left + 2, 16, wDescricao02);
Canvas.Brush.Color := clWhite;
end;
end;
Qualquer duvida ou sugestão de próxima postagem no meu e-mail ana.paulanovello@hotmail.com
Exemplo: Download do exemplo
Ana, tudo bem?
ResponderExcluirAtravés deste deste exemplo, apliquei em meu projeto e deu tudo certo.
Agora eu gostaria de saber se você sabe me dizer o pq que quando eu passo o mouse por cima dos títulos, as descrições dos títulos somem.
Obrigado.
Marlon!
Ana, encontrei o motivo, mas só resolveu em partes...
ResponderExcluirNo "OntitleClick" do meu DBGrid, eu tenho uma função que uso p/ ordenar as colunas do DBGrid, quando eu removo esta função, eu consigo o que quero, mas deixo de ter a ordenação por coluna...
Vou continuar na luta aqui kkkk
Opa! Obrigada por reportar, vou verificar aqui com a ordenação no "Title" como se comporta
ExcluirAh, eu uso o Windows 10 no momento.
ResponderExcluir