Aleksander Postado Fevereiro 13, 2008 Denunciar Share Postado Fevereiro 13, 2008 Boa tarde amigos, tenho o Memo1 com altura suficiente para exibir 10 linhas, neste Memo1 tenho um texto com mais de 50 linhas, desejo copiar para o Memo2 somente a parte do texto que está sendo exibida no Memo1. Como devo fazer?Grato pela atenção. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Fevereiro 13, 2008 Denunciar Share Postado Fevereiro 13, 2008 Boa tarde amigos, tenho o Memo1 com altura suficiente para exibir 10 linhas, neste Memo1 tenho um texto com mais de 50 linhas, desejo copiar para o Memo2 somente a parte do texto que está sendo exibida no Memo1. Como devo fazer?Aleksander, de uma forma simplista, usando a informação que você passou, bastaria que você copiasse as 10 linhas como você mesmo disse. A propriedade Lines é um objeto do tipo TStrings. Assim sendo, basta indexar as 10 primeiras linhas do seu memo1.Algo assim:var Idx: integer; begin Memo2.Lines.Clear; // limpa memo2 Idx := 0; while (Idx < 10) and (Idx < Memo1.Lines.Count) do begin Memo2.Add(Memo1.Lines[Idx]); Inc(Idx); end; end;Dê uma experimentada e veja se era isso.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aleksander Postado Fevereiro 14, 2008 Autor Denunciar Share Postado Fevereiro 14, 2008 Boa tarde amigos, tenho o Memo1 com altura suficiente para exibir 10 linhas, neste Memo1 tenho um texto com mais de 50 linhas, desejo copiar para o Memo2 somente a parte do texto que está sendo exibida no Memo1. Como devo fazer?Aleksander, de uma forma simplista, usando a informação que você passou, bastaria que você copiasse as 10 linhas como você mesmo disse. A propriedade Lines é um objeto do tipo TStrings. Assim sendo, basta indexar as 10 primeiras linhas do seu memo1.Algo assim:var Idx: integer; begin Memo2.Lines.Clear; // limpa memo2 Idx := 0; while (Idx < 10) and (Idx < Memo1.Lines.Count) do begin Memo2.Add(Memo1.Lines[Idx]); Inc(Idx); end; end;Dê uma experimentada e veja se era isso.AbraçosMicheus, este seu codigo copia as 10 primeiras linhas do Memo1, mas o que prentendo é copiar o trecho que está sendo exibido, digamos que estou lendo o texto de 50 linhas e que estão sendo exibidas as linhas 15 a 25 porque o Memo1 tem a altura para exibir 10 linhas, desejo copiar só aquelas linhas que estou visualizando no momento independente da posição do cursor. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Fevereiro 14, 2008 Denunciar Share Postado Fevereiro 14, 2008 Micheus, este seu codigo copia as 10 primeiras linhas do Memo1, mas o que prentendo é copiar o trecho que está sendo exibido, digamos que estou lendo o texto de 50 linhas e que estão sendo exibidas as linhas 15 a 25 porque o Memo1 tem a altura para exibir 10 linhas, desejo copiar só aquelas linhas que estou visualizando no momento independente da posição do cursor.Aleksander, como tinha dito, era um exemplo simplista - não estava certo do que você realmente queria - agora ficou mais claro. :blush: Façamos uso da mensagem EM_GETFIRSTVISIBLELINE. Ela retorna o índice, baseado em 0 (zero), da primeira linha visível. O exemplo ficaria assim:var Idx, IdxFinal: integer; begin Memo2.Lines.Clear; // limpa memo2 Idx := Memo1.Perform(EM_GETFIRSTVISIBLELINE, 0, 0); IdxFinal := Idx +10; while (Idx < IdxFinal) and (Idx < Memo1.Lines.Count) do begin Memo2.Add(Memo1.Lines[Idx]); Inc(Idx); end; end;Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aleksander Postado Fevereiro 14, 2008 Autor Denunciar Share Postado Fevereiro 14, 2008 (editado) Micheus, muito obrigado, ficou ótimo!!!Grande abraço! Editado Fevereiro 14, 2008 por Aleksander Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Aleksander
Boa tarde amigos, tenho o Memo1 com altura suficiente para exibir 10 linhas, neste Memo1 tenho um texto com mais de 50 linhas, desejo copiar para o Memo2 somente a parte do texto que está sendo exibida no Memo1. Como devo fazer?
Grato pela atenção.
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.