Preenchendo um Memo
Caros amigos
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
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
Curtidas 0
Respostas
Lindomar.des
27/11/2003
Marconi,
tenta isso:
Memo1.SelStart := 0;
Lindomar Sampaio
Vila Velha-ES
tenta isso:
Memo1.SelStart := 0;
Lindomar Sampaio
Vila Velha-ES
GOSTEI 0
Marconi
27/11/2003
Ok. Funcionou em parte.
O cursor foi, mas a tela ficou parada onde estava.
Obrigado pela dica.
Marconi
O cursor foi, mas a tela ficou parada onde estava.
Obrigado pela dica.
Marconi
GOSTEI 0
Lindomar.des
27/11/2003
Marconi,
o que deve acontecer com a tela?
Lindomar Sampaio
Vila Velha-ES
o que deve acontecer com a tela?
Lindomar Sampaio
Vila Velha-ES
GOSTEI 0
Marcelo Saviski
27/11/2003
talvez esse chuncho funcione:
ActiveControl := nil;
Memo.SetFocus;
ActiveControl := nil;
Memo.SetFocus;
GOSTEI 0
Marconi
27/11/2003
Me espressei mal.
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
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
Marconi
27/11/2003
ActiveControl := nil;
Memo.SetFocus;
Tambem não deu. Ficou na mesma.
Caramba! Nunca pensei que iria apanhar de um Memo.
Marconi
Memo.SetFocus;
Tambem não deu. Ficou na mesma.
Caramba! Nunca pensei que iria apanhar de um Memo.
Marconi
GOSTEI 0
Beppe
27/11/2003
Acho que tem uma função, ScrollToCursor, no memo.
GOSTEI 0
Marconi
27/11/2003
Pessoal
Ainda não consegui.
Alguem tem mais alguma idéia ???
Marconi
Ainda não consegui.
Alguem tem mais alguma idéia ???
Marconi
GOSTEI 0
Lindomar.des
27/11/2003
Marconi,
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
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
Beppe
27/11/2003
Tenta isso:
SendMessage(Memo1.Handle, EM_SCROLLCARET, 0, 0);
GOSTEI 0
Valdir.santos
27/11/2003
Tente isto:
SendMessage(memTexto.Handle, WM_VSCROLL, SB_PAGEUP, 0);
Valdir.
SendMessage(memTexto.Handle, WM_VSCROLL, SB_PAGEUP, 0);
Valdir.
GOSTEI 0
Beppe
27/11/2003
Tenta isso:
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
Marconi
27/11/2003
Obrigado Valdir.Santos
A sua sugestão funcionou legal.
SendMessage(memTexto.Handle, WM_VSCROLL, SB_PAGEUP, 0);
Marconi
A sua sugestão funcionou legal.
SendMessage(memTexto.Handle, WM_VSCROLL, SB_PAGEUP, 0);
Marconi
GOSTEI 0