TheMaker 0 Denunciar post Postado Dezembro 23, 2004 Olá..., Primeiramente Feliz Natal e um 2005 de muito sucesso p/ todos os membro e moderadores do fórum!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Mudando de assunto.... Preciso de alguma dica sobre como formatar partes do texto em células de um StringGrid... Seguinte : Supondo q fosse para realçar em negrito todas as ocorrências de Imasters no Grid.. ColunaX Forum do Imaster Imaster.com.br Site do Imaster na internet O q Ocorre acima é o resultado q desejo... Agradeceria se alguém pudesse me ajudar!!! Compartilhar este post Link para o post Compartilhar em outros sites
Eduardo Valentim 0 Denunciar post Postado Dezembro 23, 2004 Olá, Coloca a propriedade DefaultDrawing = False, e programa o evento OnDrawCell, mexendo nas propriedades Canvas.Brush, Canvas.Pen, Font.Style, etc..., como no exemplo abaixo: with StringGrid1.Canvas do begin Brush.Color := clBlack; FillRect(Rect); Font.Color := clWhite; TextOut(Rect.Left + 2, Rect.Top + 2, StringGrid2.Cells[ACol, ARow]); end; Abração Compartilhar este post Link para o post Compartilhar em outros sites
TheMaker 0 Denunciar post Postado Dezembro 23, 2004 Oi Eduardo...Esse código q mandou ñ deu certo ou tem algo errado aqui...Pintar células ou textos não tem problema...a questão é como no exemplo q sugeri no inicio é colocar apenas parte do texto de uma célula em negrito ou de outra cor...Se tiver algo aí seria muito bom!!!Um Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Eduardo Valentim 0 Denunciar post Postado Dezembro 23, 2004 Oppss :o ,Não tinha entendido corretamente o problema!!Basicamente você tem que fazer o TextOut de parte do texto com o Font.Style normal e a parte que seria realçada com o Font.Style em negrito... Infelizmente não tenho nada pronto e pra fazer esse algoritmo é chatinho pacas, vou ver se bolo alguma coisa...Boa Sorte!!!!!! :P Compartilhar este post Link para o post Compartilhar em outros sites
TheMaker 0 Denunciar post Postado Dezembro 27, 2004 Valeu!!Qualquer coisa que conseguir aí já será de grande ajuda!!!Estarei aguardando... Compartilhar este post Link para o post Compartilhar em outros sites
julianaleme 0 Denunciar post Postado Dezembro 27, 2004 Ola ... Eu tenho uma solução aqui mais naum sei se é exatamente o que precisa ... espero que ajude .... B) procedure TFrm_Form1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin if SG_Grid.cells[( Coluna a ser pesquisada),ARow] = 'IMaster' then begin StringGrid1.Canvas.Brush.Color := $00FFAA55; StringGrid1.Canvas.Font.Color := clBlack; StringGrid1.Canvas.Font.Style := [fsBold]; end; StringGrid1.Canvas.FillRect(Rect); StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, TStringGrid(Sender).Cells[ACol, ARow]); if gdFocused in State then StringGrid1.Canvas.DrawFocusRect(Rect); end; Feliz 2005 ... com muita paz e amor ... bjos Ju http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
TheMaker 0 Denunciar post Postado Dezembro 28, 2004 Valeu Ju.... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Obrigado pela força...mas o q acontece... esse Codigo q você postou vai alterar todo o conteúdo da célula... O q eu realmente preciso é alterar a cor e o estilo da fonte de apenas uma parte do texto da célula ... EX : Fórum do Imasters é nota 10!! Entendeu? Mas valeu mesmo assim!!! e se caso tiver algo aí q ajude eu agradeço!!! Beijão!!! http://forum.imasters.com.br/public/style_emoticons/default/blush.gif Compartilhar este post Link para o post Compartilhar em outros sites
Aroldo Zanela 0 Denunciar post Postado Dezembro 28, 2004 Colega, Eu utilizo um componente (SynEdit) em várias aplicações que necessito utilizar Syntax Highlighting, porém, o componente tem o estilo de um Richedit/memo. Como é open source, acredito que uma boa estudada no código possa servir de guia para resolver sua necessidade. Compartilhar este post Link para o post Compartilhar em outros sites
TheMaker 0 Denunciar post Postado Dezembro 28, 2004 Xi..... :unsure: Aroldo... esse componente SynEdit é muito extenso e complexo demais...Tudo o q eu preciso mesmo é mexer com algum código que faça StringGrid.Canvas.Font.Style aceitar 2 tipos diferentes fontes ao mesmo tempo....Valeu a força...Qualquer novidade q tiver é só falar!!!Um abraço!! Compartilhar este post Link para o post Compartilhar em outros sites
Thadeu Wagner 0 Denunciar post Postado Dezembro 29, 2004 Olá sr.... Acho q dá pra tomar como base. procedure TForm1.FormCreate(Sender: TObject); begin StringGrid1.Cells[0,0] := 'iMasters Fóruns -> Programação -> Delphi -> Formatando texto em string grids'; end; procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); const str_Bold = 'iMasters'; var str_Find,str_Found: String; int_RectRight,int_StrFound: Integer; begin str_Find := StringGrid1.Cells[ACol,ARow]; int_StrFound := pos(str_Bold,str_Find); str_Found := Copy(str_Find,0,int_StrFound-1); int_RectRight := 0; while (int_StrFound > 0) do begin StringGrid1.Canvas.Font.Style := []; StringGrid1.Canvas.Font.Color := clBlack; StringGrid1.Canvas.TextOut(Rect.Left + int_RectRight + 2, Rect.Top + 2, str_Found); int_RectRight := int_RectRight + StringGrid1.Canvas.TextWidth(str_Found); StringGrid1.Canvas.Font.Style := [fsBold]; StringGrid1.Canvas.Font.Color := clBlack; StringGrid1.Canvas.TextOut(Rect.Left + int_RectRight + 2, Rect.Top + 2, str_Bold); int_RectRight := int_RectRight + StringGrid1.Canvas.TextWidth(str_Bold); str_Find := Copy(str_Find,int_StrFound + Length(str_Bold),Length(str_Find)); int_StrFound := pos(str_Bold,str_Find); str_Found := Copy(str_Find,0,int_StrFound-1); end; StringGrid1.Canvas.Font.Style := []; StringGrid1.Canvas.TextOut(Rect.Left + int_RectRight + 2, Rect.Top + 2, str_Find); end; Compartilhar este post Link para o post Compartilhar em outros sites