Grid com Memo sem cortar linha

Delphi

10/11/2004

Ola Galera!!!

Estou tentando fazer com q minha DBGrid mostra todo o conteúdo de um campo Memo na grid mesmo.

Estou usando esse codigo para pegar o texto do campo memo

procedure Tfrmordem6.Qordem6TIP_NOMEGetText(Sender: TField; var Text: String; DisplayText: Boolean); begin Text := GridMemo(Sender.AsString); end;


com a função q criei:

function GridMemo (Texto : String) : String; var PTexto : String; begin if pos(#13, Texto) 0 then PTexto := copy (Texto, 1, pos(13, Texto) - 1) else PTexto := Texto; Result := PTexto; end;


Mas isso soh faz com q mostre na linha até o enter, mas gostaria de mostrar todo o conteúdo do Memo sem pular de linha, sendo q quando chegar no enter ele dexe tipo um enter na linha e mostrasse como se dentro de uma linha tivesse um memo ou texto...

Naum sei se compliquei mas pra vcs do q ja tah mas esse seria minha tentativa de fazer algo funcional....


Zunker

Zunker

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

10/11/2004

Colega,

Crie um campo calculado para receber o conteúdo do Memo e ao invés de exibir o Memo, exiba o campo calculado. O melhor mesmo é utilizar uma CtrlGrid para exibir o mesmo de forma ´mais elegante´.


GOSTEI 0
Zunker

Zunker

10/11/2004

O q seria essa CtrlGrid?

eu encontrei um outro meio mas eu tenho q aumentar o tamanho da linha da grid sendo q depois naum tenho como voltar ao normal se por acaso um memo ocupa soh uma linha.

o esquema eh esse:

procedure Tfrmordem6.gradeDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var R : TRect; begin R := Rect; Dec(R.Bottom,2); if Column.Field = Qordem6TIP_NOME then begin if not (gdSelected in State) then grade.Canvas.FillRect(Rect); DrawText(grade.Canvas.Handle, pchar(Qordem6TIP_NOME.AsString), length(Qordem6TIP_NOME.AsString), R, DT_WORDBREAK); end; end;



GOSTEI 0
Zunker

Zunker

10/11/2004

Up. :mrgreen:


GOSTEI 0
POSTAR