Grid com Memo sem cortar linha
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
com a função q criei:
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....
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
Curtidas 0
Respostas
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´.
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
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:
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
10/11/2004
Up. :mrgreen:
GOSTEI 0