|
|
|
|
- Presentación
- ¿Cómo proceder?
- Ejemplo
- Funciones WLanguage
Gestión de acciones con Deshacer/Rehacer
WINDEV le permite manejar fácilmente la función Deshacer/Reiniciar en sus aplicaciones con las funciones ActionXXX. Para ello, el usuario puede pulsar Ctrl + Z y Ctrl + Y para deshacer o rehacer fácilmente una acción.. Para administrar la función Deshacer/Rehacer en sus aplicaciones WINDEV: - Declarar las acciones a guardar en la pila de acciones realizadas por ActionDo. Esta función espera como parámetro el nombre de la Procedure que corresponde a la acción. Este procedimiento puede ser local, global o interno.
- En el código de la Procedure correspondiente a la acción a realizar, utilice ActionDeclareUndo para definir el código que se ejecutará para Cancel la acción. Esta función espera como parámetro que el nombre de la Procedure se ejecute. Este procedimiento puede ser local, global o interno.
- Utilice las siguientes funciones si es necesario:
- ActionRedo para ejecutar la última acción cancelada.
- ActionUndo a Cancel la última acción realizada.
Observaciones: - No se pueden apilar varias veces las MISMAS acciones definidas por ActionDo. Cada acción solicitada por ActionDo borra la acción idéntica anterior. Por lo tanto, sólo se puede cancelar la última acción SAME.
- En el menú contextual de un control, la opción "Cancel" propuesta por Default no tiene el mismo efecto que ActionUndo o Ctrl + Z.
Ejemplo El siguiente ejemplo sirve para modificar el fondo color de dos controles de edición. Esta acción se puede deshacer con Ctrl + Z: ActionDo(WIN_ACTION, Color) INTERNAL PROCEDURE Color EDT_LastName.BackgroundColor = PastelGreen EDT_FirstName.BackgroundColor = PastelRed ActionDeclareUndo(GoBack) INTERNAL PROCEDURE GoBack EDT_LastName.BackgroundColor = DefaultColor EDT_FirstName.BackgroundColor = DefaultColor END END
Para permitir al usuario deshacer varias acciones, basta con llamar a ActionDo varias veces con diferentes procedimientos. Por ejemplo: ActionDo(WIN_ACTION, Color) ActionDo(WIN_ACTION, StoreValue) INTERNAL PROCEDURE Color EDT_LastName.BackgroundColor = PastelGreen EDT_FirstName.BackgroundColor = PastelRed ActionDeclareUndo(GoBack) INTERNAL PROCEDURE GoBack EDT_LastName.BackgroundColor = DefaultColor EDT_FirstName.BackgroundColor = DefaultColor END END INTERNAL PROCEDURE StoreValue() EDT_LastName.Note = EDT_LastName EDT_FirstName.Note = EDT_FirstName ActionDeclareUndo(GoBack) INTERNAL PROCEDURE GoBack EDT_LastName = EDT_LastName.Note EDT_FirstName = EDT_FirstName.Note END END
En este ejemplo, el primer Ctrl + Z deshará el almacenamiento de valores y el segundo deshará la coloración de los controles. Las siguientes funciones de WLanguage se utilizan para gestionar las acciones:
| | ActionDeclareUndo | Declara cómo Cancel una acción que fue añadida por ActionDo. Esta función MUST debe ser llamada cuando se ejecuta el Procedure suministrado a ActionDo. | ActionDo | Crea y ejecuta una acción personalizada (definida mediante programación) con soporte de "Deshacer/Rehacer". | ActionRedo | Ejecuta la última acción cancelada. | ActionUndo | Cancela la última acción realizada por el usuario final. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|