Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: tyron en Sábado 23 de Abril de 2005, 12:58
Título: Deshacer
Publicado por: tyron en Sábado 23 de Abril de 2005, 12:58
Hola, ¿como puedo deshacer una accion realizada en una caja de texto? Por ejemplo, el bloc de notas, escribes algo y puedes deshacer lo escrito, o borrar algo, y deshacer el borrado. Tengo este codigo:
Declaración de la función API y las constantes:
Código: Text
Private Declare Function SendMessage Lib "User" (ByVal hWnd _
As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Long) As Long
Const WM_USER = &H400
Const EM_CANUNDO = WM_USER + 22
Const EM_EMPTYUNDOBUFFER = WM_USER + 29
Const EM_UNDO = WM_USER + 23
Botón Undo:
Código: Text
Dim ok As Long
ok = SendMessage(Text1.hWnd, EM_UNDO, 0, 0&)
ok = SendMessage(Text1.hWnd, EM_EMPTYUNDOBUFFER, 0, 0&)
Botón Redo:
Código: Text
Dim ok As Long
ok = SendMessage(Text1.hWnd, EM_CANUNDO, 0, 0&)
If ok = 0 Then
MsgBox "No puedo deshacer los cambios", 16, "Error"
End If
ok = SendMessage(Text1.hWnd, EM_UNDO, 0, 0&)
Previamente he realizado cambios de todo tipo en la caja de texo para luego poder probar el codigo (obvio), pero no funciona. ¿Me falta algo? ¿Esta mal este codigo? o ¿Hay alguna otra manera de realizar lo que quiero? Un saludo y gracias de antemano.
Título: Re: Deshacer
Publicado por: _vgt_ en Jueves 28 de Abril de 2005, 23:23
mmmm, xk no haces un vector con x ejemplo 10 elementos y vas introduciendo lo ultimo k escriba el usuario en la caja de texto y si kiere deshacer pues vas reemplazando con lo k tengas en el vector ... cutre pero efectivo ... y funciona xk si mal no recuerdo un compi de clase lo hizo y le funcionaba de cojones :-)
Saludos
:hola:
OtRa CoSa No pErO "PLaNeS B" ... xDDDD
Título: Re: Deshacer
Publicado por: Brroz en Miércoles 4 de Mayo de 2005, 16:25
Hola.
Seguro que mediante funciones del api no hay problemas, pero he aquí una forma simpática de deshacer:
Código: Text
Text1.SetFocus
SendKeys "^Z"
Suerte.
Título: Re: Deshacer
Publicado por: _vgt_ en Miércoles 4 de Mayo de 2005, 23:17
joeee Brroz eres lo máximo!!!! :o nunca se me hubiera ocurrido eso... es un lujo saber k estas x aki !!! :)
Saludos y me apunto eso xk desde luego es cantidad de ingenioso !!! :hola: