Vivendo&Aprendendo Postado Abril 13, 2006 Denunciar Share Postado Abril 13, 2006 E ae galera tuda na Santa Paz!!!Como eu faço para que algumas palavras do meu DBGrid fiquem em negrito?Exemplo:------------------------------------------------------------------------------------------------Histórico do Aluno------------------------------------------------------------------------------------------------Serviço: 1º CNH - Categoria: AB - Valor Total: 800,00 - Sendo: 1 + 3 - De: 170,00------------------------------------------------------------------------------------------------Gostaria que as palavras Serviço, Categoria, Valor Total, Sendo e De ficassem em negrito, mas somente elas.Alexandre Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Abril 16, 2006 Denunciar Share Postado Abril 16, 2006 Bom, o grosso do serviço tá aqui, já que pode ser melhorado:// Procedimento genérico - pode ser colocado em uma unit para reaproveitamento procedure DrawBold(Canvas :TCanvas; Rect :TRect; Text :string; StrBold :array of string); var Idx, IdxPos :Integer; SubStr :string; begin Idx := 0; Inc(Rect.Left, 2); while Idx < High(StrBold) do begin IdxPos := Pos(StrBold[Idx], Text); case IdxPos of 0 :; // não encontrou, avança próxima StrBold 1 : begin // trata StrBold na 1ª posição Canvas.Font.Style := Canvas.Font.Style +[fsBold]; SubStr := StrBold[Idx]; Canvas.TextRect(Rect, Rect.Left, Rect.Top+2, SubStr); Inc(Rect.Left, Canvas.Textwidth(SubStr)+1); Delete(Text, 1, Length(SubStr)); end; else // todo o resto begin Canvas.Font.Style := Canvas.Font.Style -[fsBold]; SubStr := Copy(Text, 1, IdxPos -1); Canvas.TextRect(Rect, Rect.Left, Rect.Top+2, SubStr); Inc(Rect.Left, Canvas.Textwidth(SubStr)+1); Delete(Text, 1, IdxPos -1); Continue; end; end; Inc(Idx); end; Canvas.Font.Style := Canvas.Font.Style -[fsBold]; if Text <> '' then // sobrando alguma coisa... Canvas.TextRect(Rect, Rect.Left, Rect.Top+2, Text); end; procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if Column.FieldName = 'Descricao' then begin if gdSelected in State then begin DBGrid1.Canvas.Brush.Color := clHighLight; DBGrid1.Canvas.Font.Color := clHighLightText; end else begin DBGrid1.Canvas.Brush.Color := clWindow; DBGrid1.Canvas.Font.Color := clWindowText; end; DrawBold(DBGrid1.Canvas, Rect, Column.Field.AsString, ['Serviço', 'Categoria', 'Valor Total', 'Sendo', 'De']); end else DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; pela lógica, no seu DBGrid, você deveria precisar modificar a propriedade DefaultDrawing para False, mas a certa altura observei que sem mudá-la também está funcionando - dê uma olhada.No mesmo DBGrid, crie o evento OnDrawColumnCell e insira o código como acima trocando o FieldName (no meu caso era Descricao).[]s Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Vivendo&Aprendendo
E ae galera tuda na Santa Paz!!!
Como eu faço para que algumas palavras do meu DBGrid fiquem em negrito?
Exemplo:
------------------------------------------------------------------------------------------------
Histórico do Aluno
------------------------------------------------------------------------------------------------
Serviço: 1º CNH - Categoria: AB - Valor Total: 800,00 - Sendo: 1 + 3 - De: 170,00
------------------------------------------------------------------------------------------------
Gostaria que as palavras Serviço, Categoria, Valor Total, Sendo e De ficassem em negrito, mas somente elas.
Alexandre
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.