Ir para conteúdo
Fórum Script Brasil
  • 0

duvida com undo\redo


vms

Pergunta

ola pessoal

queria colocar no editor de texto 2 botoes undo e redo

no botao undo eu coloco este codigo, mas ele volta apenas uma vez

como faço pra voltar varias vezes?

procedure TForm.BTundoClick(Sender: TObject);

begin

RichEdit.Perform(EM_UNDO,0,0) ;

end;

da mesma forma com botao redo.

alguém pode me ajudar com essas 2 duvidas

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
no botao undo eu coloco este codigo, mas ele volta apenas uma vez

como faço pra voltar varias vezes?

procedure TForm.BTundoClick(Sender: TObject);

begin

RichEdit.Perform(EM_UNDO,0,0) ;

end;

Experimente adicionar esta linha no OnShow da sua aplicação:

RichEdit.Perform(EM_SETUNDOLIMIT, 10, 0);

Isto irá permitir 10 níveis de undo/redo. "Não é feitiçaria, é tecnologia" (lembram da Feiticeira dizendo isso em um comercial?! :D)

Eu já postei recentemente 2 vezes esta referência, mas vou por aqui também: About Rich Edit Controls - Tudo que precisar saber sobre RichEdit, é aí que você encontra.

Especificamente sobre EM_SETUNDOLIMIT, e se for necesspario EM_SETTEXTMODE.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Experimente adicionar esta linha no OnShow da sua aplicação:

RichEdit.Perform(EM_SETUNDOLIMIT, 10, 0);

Micheus como uso esse codigo com DBRichedit?

vms, como lhe disse no outro tópico, ambos são basicamente a mesma coisa. Logo, o procedimento é o mesmo: use o método Perform do componente TDBRichEdti (eu diria que tem que funcionar).

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

ola micheus

a dica que voce deu no outro post, tinha que alterar uma procedure mas essa dica eu apenas adicionei isso

Experimente adicionar esta linha no OnShow da sua aplicação:

RichEdit.Perform(EM_SETUNDOLIMIT, 10, 0);

e continua do mesmo jeito, voltando apenas 1

iai tem alguma tecnologia tambem pra esse caso :rolleyes:

Link para o comentário
Compartilhar em outros sites

  • 0
e continua do mesmo jeito, voltando apenas 1

iai tem alguma tecnologia tambem pra esse caso :rolleyes:

vms, acho que sujou... :rolleyes:

Lendo a referência que citei (no msdn):

"Edit controls and Rich Edit 1.0: An undo operation can also be undone. For example, you can restore deleted text with the first EM_UNDO message, and remove the text again with a second EM_UNDO message as long as there is no intervening edit operation.

Rich Edit 2.0 and later: The undo feature is multilevel—so sending two EM_UNDO messages will undo the last two operations in the undo queue. To redo an operation, send the EM_REDO message."

Daí, conferindo no código da unit ComCtrls, tá lá no TCustomRichEdit.CreateParams: RichEditModuleName = 'RICHED32.DLL'

o que significa que está sendo carregada justamente a versão 1.0:

Rich

Edit version DLL

1.0 Riched32.dll

2.0 Riched20.dll

3.0 Riched20.dll

4.1 Msftedit.dll

Talvez seja interessante considerar as sugestões neste outro tópico do colefa Greed - post#7

Quando eu tiver um tempinho, vou dar uma olhada na proposta do artigo que cito, do forum Expert-Exchange.

Abraços

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...