GARANTIR DESCONTO

Fórum Quebra de linha em campo Memo... #262483

17/12/2004

0

Boa tarde,

estou queimando neuronios p/ efetuar uma quebra de linha manual, pois com a opcao do campo Memo WordWrap:=True a quebra de linha ocorre de forma automatica, mas esse tipo de quebra esta interferindo no label de um relatorio(QReport) pois se o usuario nao usa CTRL+ENTER p/ quebrar o texto, no label nao apresenta quebra, caso contrario aparece...portanto estou com o seguinte codigo no envento OnChange do Componente:

[b:aca43af34e]procedure TFGRIndividual.ETextoChange(Sender: TObject);
var linha,coluna:integer;
begin
ActiveControl:=ETexto;
With ETexto do
begin
linha:= Perform(EM_LINEFROMCHAR,SelStart, 0);
coluna:= SelStart - Perform(EM_LINEINDEX, linha, 0);
if coluna=70 then
begin
// aqui esta minha duvida:qual comando utilizaria p/ posicionar o cursor na linha abaixo
end;
end;
end;[/b:aca43af34e]

Att, Maiki Perin.


Maikiperin

Maikiperin

Responder

Posts

17/12/2004

Dopi

Nesse caso acho que é mais fácil tratar o Memo.Text....

Quais são os caracteres que são inseridos no Memo.Text quando o usuário dá um ENTER ou CTRL-ENTER ?

Analisando isso... vc pode usar o StringReplace e trocar todos os ENTER por CTRL-ENTER antes de gravar o memo, ou antes de apresenta-lo no Relatorio

Geralmente a quebra de linha é: #13+10


Responder

Gostei + 0

17/12/2004

Maikiperin

Nesse caso acho que é mais fácil tratar o Memo.Text.... Quais são os caracteres que são inseridos no Memo.Text quando o usuário dá um ENTER ou CTRL-ENTER ? Analisando isso... vc pode usar o StringReplace e trocar todos os ENTER por CTRL-ENTER antes de gravar o memo, ou antes de apresenta-lo no Relatorio Geralmente a quebra de linha é: #13+10


nao sao inseridos nenhum caractere, o CTRL+ENTER e somente uma tecla q quando solicitada da uma quebra de linha....


Responder

Gostei + 0

17/12/2004

Dopi

Mas para o Delphi saber que há uma quebra de linha ele tem que sinalizar com um caracter NAO visivel como #10 , 13 ou 13+10

Um Enter consume 1 byte do memo, portanto é um caracter...

Veja:
Insira no seu programa ShowMessage( Memo1.Text )
Faça um breakpoint nessa mesma linha.
Pare com o mouse sobre a palavra TEXT
Vece verá a String Resultante do Memo... os caracteres que iniciam com $ como $D10 (ou algo parcido) são os caracteres NAO visiveis..

Deve haver distinçao no caracter inserido quando há CTR-ENTER ou ENTER.... O que estou sugerindo é vc usar o StringReplace e transformar todos os SoftLineBreak por HardLineBreak


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar