Fórum Exibir Campo Memo em DbGrid...de novo #333722
25/11/2006
0
eu estou com uma aplicação em Delphi 7 Enterprise, Banco PostGreSql 8 e paleta Zeos 6.5.1. Eu tinha colocado no fórum uma pesquisa deste tipo e fui atendido porém agora me deparo com um problema. Na unit que estou criando agora tenho 4 campos memo (que são dois campos concatenados que geram um único campo). Quando jogo o código para o OnDrawnColumnCell, ele só realiza a exibição do primeiro campo memo, os outros continuam do mesmo jeito. Vai aí o código:
R := Rect; Dec(R.Bottom, 2); if Column.Field = ZQybusca.FieldByName(´cnome_contabildb´) then begin if not (gdSelected in State) then begin DBGrid1.Canvas.FillRect(Rect); DBGrid1.Canvas.TextRect(R,R.Left,R.Top, ZQybusca.FieldByName(´Cnome_contabildb´).AsString); end;
Detalhe, já utilizei um laço for para as colunas do DbGrid, não deu erro mas tb não funcionou.
Agradeço toda a ajuda.
Zooropa
Curtir tópico
+ 0Posts
27/11/2006
Zooropa
será que preciso escrever um bloco desse para cada campo?
Necessito de ajuda pois só falta isso pra eu passar para outro módulo.
Agradeço a ajuda.
Gostei + 0
29/11/2006
Zooropa
Gostei + 0
08/12/2006
Zooropa
eu sei que este caso é simples de resolver...só não estou conseguindo fazer para os quatro campos de uma vez. Por favor, alguém me ajude...
Gostei + 0
08/12/2006
Emerson Nascimento
if Column.Field.DataType in [ftBlob, ftMemo] then begin if not (gdSelected in State) then begin DBGrid1.Canvas.FillRect(Rect); DBGrid1.Canvas.TextRect(R,R.Left,R.Top, Column.Field.AsString); end;
(certifique-se do tipo correto do campo)
Gostei + 0
06/01/2007
Zooropa
seu código funcionou, porém estou utilizando isto num campo Valor (está com máscara, por isso ficou com o texto MEMO na Grid). O seu código só funciona se eu tirar a máscara do valor. Tem como exibir o campo Valor com máscara sem que a grid exiba o MEMO?
Muito obrigado.
Gostei + 0
06/01/2007
Zooropa
consegui resolver. Modifiqei o código que vc me enviou e implementei uma função para substituir os caracteres (vírgula e ponto). Segue o OnDrawColumnCell depois da implementação:
var R : TRect; Valor : string; begin R := Rect; Dec(R.Bottom, 2); if Column.Field.DataType in [ftMemo] then begin if not (gdSelected in State) then DBGrid1.Canvas.FillRect(Rect); Valor := AjustaMascara(Column.Field.AsString); DBGrid1.Canvas.TextRect(R,R.Left-7,R.Top + 2, Valor); end;
Muito obrigado pela ajuda.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)