Fórum Preenchendo um Memo #197544
27/11/2003
0
Em determinado momento um dos meus programas preenche um TMemo para fornecer algumas instruções. Até aí tudo bem.
Porém quando chega ao fim, o cursor fica em baixo, não aparecendo a parte superior do memo, a menos que o usuário leve até lá com a scroolbar ou com o botão [page Up].
Tentei emular o botão mas nada acontece. Nem ´refresh´, nem ´repaint´ conseguiram resolver.
Como faço para voltar o cursor, dentro do memo, para a primeira linha ???
Mais uma vez obrigado a todos que enviarem sugestões.
Marconi
Marconi
Curtir tópico
+ 0Posts
27/11/2003
Lindomar.des
tenta isso:
Memo1.SelStart := 0;
Lindomar Sampaio
Vila Velha-ES
Gostei + 0
27/11/2003
Marconi
O cursor foi, mas a tela ficou parada onde estava.
Obrigado pela dica.
Marconi
Gostei + 0
27/11/2003
Lindomar.des
o que deve acontecer com a tela?
Lindomar Sampaio
Vila Velha-ES
Gostei + 0
27/11/2003
Marcelo Saviski
ActiveControl := nil;
Memo.SetFocus;
Gostei + 0
27/11/2003
Marconi
O cursor foi para o inicio, mas preciso ainda movimentar a scrollbar ou usar a [page-up] para mostrar o inicio do texto.
Após preencher o memo, fica aparecendo o final dele.
Marconi
Gostei + 0
27/11/2003
Marconi
Memo.SetFocus;
Tambem não deu. Ficou na mesma.
Caramba! Nunca pensei que iria apanhar de um Memo.
Marconi
Gostei + 0
27/11/2003
Beppe
Gostei + 0
28/11/2003
Marconi
Ainda não consegui.
Alguem tem mais alguma idéia ???
Marconi
Gostei + 0
28/11/2003
Lindomar.des
parece grotesco, mas tente isso:
memo1.SetFocus;
memo1.SelStart := 0;
memo1.Lines.Move(memo1.Lines.Count,0);
memo1.Lines.Delete(0);
talvez exista uma forma melhor...
Lindomar Sampaio
Vila Velha-ES
Gostei + 0
28/11/2003
Beppe
SendMessage(Memo1.Handle, EM_SCROLLCARET, 0, 0);
Gostei + 0
28/11/2003
Valdir.santos
SendMessage(memTexto.Handle, WM_VSCROLL, SB_PAGEUP, 0);
Valdir.
Gostei + 0
28/11/2003
Beppe
SendMessage(Memo1.Handle, EM_SCROLLCARET, 0, 0);
O código acima faz o scroll para a areá que tiver o caret, então você também precisa colocá-lo no final. O código correto:
Memo1.SelStart := Length(Memo1.Text); SendMessage(Memo1.Handle, EM_SCROLLCARET, 0, 0);
Gostei + 0
15/12/2003
Marconi
A sua sugestão funcionou legal.
SendMessage(memTexto.Handle, WM_VSCROLL, SB_PAGEUP, 0);
Marconi
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)