Problema ao inserir linha em RichEdit
Olá, estou tendo um erro ao inserir uma linha no RichEdit, eis meu codigo:
Onde está o erro?
Desde já agradeço,
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
Curtidas 0
Respostas
Maxwell_monteiro
05/05/2004
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
GOSTEI 0
Nildo
05/05/2004
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:
Concluindo, sua função está correta. Que erro dá quando você tenta adicionar a linha?
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?
GOSTEI 0
Titanius
05/05/2004
Isto nildo.... da erro no richedit na hora de inserir a string
[]s
[]s
GOSTEI 0
Titanius
05/05/2004
Isto nildo.... da erro no richedit na hora de inserir a string
[]s
O erro que da eh este: ´ RichEdit line insertion Error ´
GOSTEI 0
Nildo
05/05/2004
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
GOSTEI 0
Titanius
05/05/2004
Nildo, estou tentando passar a seguinte string: linha1<EOF>linha2, somente isso...
GOSTEI 0
Nildo
05/05/2004
Sem computador está com memória suficiente? Se sim, compila ele e envia o .EXE no meu email pra mim testar
GOSTEI 0
Titanius
05/05/2004
nildo, consegui resolver da maneira nao muito ´bonita´
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
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
GOSTEI 0
Nildo
05/05/2004
Depois que você atribuir o .TEXT para ele, coloque o seguinte comando:
RichEdit1.Perform( EM_ScrollCaret, 0, RichEdit1.Lines.Count );
RichEdit1.Perform( EM_ScrollCaret, 0, RichEdit1.Lines.Count );
GOSTEI 0
Titanius
05/05/2004
beleza nildo... valeu...
GOSTEI 0