Fórum Problema ao inserir linha em RichEdit #230088

05/05/2004

0

Olá, estou tendo um erro ao inserir uma linha no RichEdit, eis meu codigo:
function Quebra(Texto: string): string;
var
 i: Integer;
 Teste: string;
const
 Fim = ´<EOF>´;
begin
 i := 1;
 while i <= Length(Texto) do
 begin
  if Texto[i] = ´<´ then
  begin
   Teste := Copy(Texto, i, 5);
   if TeSTE = ´<EOF>´ then
   begin
    result := result + Chr(13);
    i := i + 5;
   end;
  end;
  result := result + Texto[i];
  i := i + 1;
 end;
end;

............

var
s: string;
begin
s := ´linha1<EOF>linha2´;
RichEdit1.Lines.Add(Quebra(s));





Onde está o erro?

Desde já agradeço,


Titanius

Titanius

Responder

Posts

05/05/2004

Maxwell_monteiro

Bem o tipo string em Object Pascal é um vetor de caracteres que na primeira posição guarda o numeros de bytes do vetor e na ultima posição tem um finalizador que é o 13. ou seja a sua suposta string ´linha1<EOF>linha2´´ é invalida já que ela tem um 13 bem no meio dela! logo deve ser por isso que o metodo Add deve estar falhando! tente usar o Add apos cada EOF


Responder

Gostei + 0

05/05/2004

Nildo

Maxell, quando você adiciona uma String quebrada em um RichEdit, ele separa corretamente.

Titanius, sua função está correta (pode ser melhorada) mas o resultado foi 100¬ positivo. Copiei e Colei o resultado que saiu no meu RichEdit utilizando a sua função e seu próprio exemplo:

linha1
linha2


Concluindo, sua função está correta. Que erro dá quando você tenta adicionar a linha?


Responder

Gostei + 0

05/05/2004

Titanius

Isto nildo.... da erro no richedit na hora de inserir a string
[]s


Responder

Gostei + 0

05/05/2004

Titanius

Isto nildo.... da erro no richedit na hora de inserir a string []s


O erro que da eh este: ´ RichEdit line insertion Error ´


Responder

Gostei + 0

05/05/2004

Nildo

Provavelmente você está tentando inserir uma linha Muito grande ou então uma quatidade enorme de linhas. Tenta debuggar o programa para ver porque ocorre isto


Responder

Gostei + 0

05/05/2004

Titanius

Nildo, estou tentando passar a seguinte string: linha1<EOF>linha2, somente isso...


Responder

Gostei + 0

05/05/2004

Nildo

Sem computador está com memória suficiente? Se sim, compila ele e envia o .EXE no meu email pra mim testar


Responder

Gostei + 0

05/05/2004

Titanius

nildo, consegui resolver da maneira nao muito ´bonita´

s := Richedit1.Text + Quebra(d);
Richedit1.Text := s;


Funcionou.. o problema agora e que quando tem mais linhas do que aparecem a barra de rolagem nao rola pra ultima.. sabes como arrumo isto?

[]s


Responder

Gostei + 0

05/05/2004

Nildo

Depois que você atribuir o .TEXT para ele, coloque o seguinte comando:

RichEdit1.Perform( EM_ScrollCaret, 0, RichEdit1.Lines.Count );


Responder

Gostei + 0

06/05/2004

Titanius

beleza nildo... valeu...


Responder

Gostei + 0

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

Aceitar