GARANTIR DESCONTO

Fórum Preenchendo um Memo #197544

27/11/2003

0

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


Marconi

Marconi

Responder

Posts

27/11/2003

Lindomar.des

Marconi,

tenta isso:

Memo1.SelStart := 0;


Lindomar Sampaio
Vila Velha-ES


Responder

Gostei + 0

27/11/2003

Marconi

Ok. Funcionou em parte.

O cursor foi, mas a tela ficou parada onde estava.

Obrigado pela dica.

Marconi


Responder

Gostei + 0

27/11/2003

Lindomar.des

Marconi,

o que deve acontecer com a tela?

Lindomar Sampaio
Vila Velha-ES


Responder

Gostei + 0

27/11/2003

Marcelo Saviski

talvez esse chuncho funcione:

ActiveControl := nil;
Memo.SetFocus;


Responder

Gostei + 0

27/11/2003

Marconi

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


Responder

Gostei + 0

27/11/2003

Marconi

ActiveControl := nil;
Memo.SetFocus;

Tambem não deu. Ficou na mesma.

Caramba! Nunca pensei que iria apanhar de um Memo.

Marconi


Responder

Gostei + 0

27/11/2003

Beppe

Acho que tem uma função, ScrollToCursor, no memo.


Responder

Gostei + 0

28/11/2003

Marconi

Pessoal

Ainda não consegui.

Alguem tem mais alguma idéia ???

Marconi


Responder

Gostei + 0

28/11/2003

Lindomar.des

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


Responder

Gostei + 0

28/11/2003

Beppe

Tenta isso:
SendMessage(Memo1.Handle, EM_SCROLLCARET, 0, 0);



Responder

Gostei + 0

28/11/2003

Valdir.santos

Tente isto:

SendMessage(memTexto.Handle, WM_VSCROLL, SB_PAGEUP, 0);

Valdir.


Responder

Gostei + 0

28/11/2003

Beppe

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);



Responder

Gostei + 0

15/12/2003

Marconi

Obrigado Valdir.Santos

A sua sugestão funcionou legal.

SendMessage(memTexto.Handle, WM_VSCROLL, SB_PAGEUP, 0);

Marconi


Responder

Gostei + 0

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

Aceitar