|
|
|
|
|
- Presentación
- ¿Cómo proceder?
- Ejemplo
- Funciones WLanguage
Gestión de acciones con Deshacer/Rehacer
WINDEV le permite gestionar fácilmente la función Deshacer/Rehacer 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 gestionar la función Deshacer/Rehacer en sus aplicaciones WINDEV: - Declarar las acciones a guardar en el apilamiento de acciones realizadas por ActionDo. Esta función espera como parámetro el nombre del procedimiento que corresponde a la acción. Este procedimiento puede ser local, global o interno.
- En el código del procedimiento correspondiente a la acción a realizar, utilice ActionDeclareUndo para definir el código que se ejecutará para cancelar la acción. Esta función espera como parámetro el nombre del procedimiento a ejecutar. Este procedimiento puede ser local, global o interno.
- Utilice las siguientes funciones si es necesario:
- ActionRedo para ejecutar la última acción cancelada.
- ActionUndo para cancelar 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 MISMA.
- En el menú contextual de un control, la opción "Cancelar" propuesta por defecto no tiene el mismo efecto que ActionUndo o Ctrl + Z.
Ejemplo El siguiente ejemplo se utiliza para modificar el color de fondo de dos controles de edición. Esta acción puede deshacerse pulsando Ctrl + Z: ActionDo(FEN_ACTION, Colorie)
INTERNAL PROCEDURE Colorie
SAI_Nom.CouleurFond = PastelGreen
SAI_Prénom.CouleurFond = PastelRed
ActionDeclareUndo(RetourArriere)
INTERNAL PROCEDURE RetourArriere
SAI_Nom.CouleurFond = DefaultColor
SAI_Prénom.CouleurFond = DefaultColor
END
END
Para que el usuario pueda deshacer varias acciones, basta con llamar varias veces a ActionDo con procedimientos diferentes. Por ejemplo: ActionDo(FEN_ACTION, Colorie)
ActionDo(FEN_ACTION, MemoriseValeur)
INTERNAL PROCEDURE Colorie
SAI_Nom.CouleurFond = PastelGreen
SAI_Prénom.CouleurFond = PastelRed
ActionDeclareUndo(RetourArriere)
INTERNAL PROCEDURE RetourArriere
SAI_Nom.CouleurFond = DefaultColor
SAI_Prénom.CouleurFond = DefaultColor
END
END
INTERNAL PROCEDURE MemoriseValeur()
SAI_Nom.Note = SAI_Nom
SAI_Prénom.Note = SAI_Prénom
ActionDeclareUndo(RetourArriere)
INTERNAL PROCEDURE RetourArriere
SAI_Nom = SAI_Nom.Note
SAI_Prénom = SAI_Prénom.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. Para gestionar las acciones se utilizan las siguientes funciones de WLanguage:
| | ActionDeclareUndo | Declares how to cancel an action that was added by ActionDo. This function MUST be called when running the procedure supplied to ActionDo. | ActionDo | Creates and runs a custom action (defined through programming) with support of "Undo/Redo". | ActionRedo | Ejecuta la última acción cancelada. | ActionUndo | Cancela la última acción realizada por el usuario final. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|