Comprender las constantes mecanografiadas en Delfos

Cuando Delphi invoca un controlador de eventos, los valores antiguos de las variables locales se borran. ¿Qué sucede si queremos hacer un seguimiento de cuántas veces se ha hecho clic en un botón? Podríamos hacer que los valores persistan utilizando una variable de nivel de unidad, pero generalmente es una buena idea reservar variables de nivel de unidad solo para compartir información. Lo que necesitamos generalmente se llaman variables estáticas o constantes escritas en Delphi.

Variable o constante

Las constantes escritas se pueden comparar con variables inicializadas-variables cuyos valores se definen al ingresar a su bloque (generalmente controlador de eventos). Dicha variable se inicializa solo cuando el programa comienza a ejecutarse. Después de eso, el valor de una constante escrita persiste entre llamadas sucesivas a sus procedimientos.

El uso de constantes escritas es una forma muy limpia de implementar variables inicializadas automáticamente. Para implementar estas variables sin constantes escritas, necesitaremos crear una sección de inicialización que establezca el valor de cada variable inicializada.

instagram viewer

Constantes de tipo variable

Aunque declaramos constantes escritas en la sección constante de un procedimiento, es importante recordar que no son constantes. En cualquier momento de su aplicación, si tiene acceso al identificador para una constante escrita, podrá modificar su valor.

Para ver constantes escritas en el trabajo, coloque un botón en un formulario en blanco y asigne el siguiente código al controlador de eventos OnClick:

procedimiento TForm1.Button1Click (Remitente: TObject); const clics: entero = 1; // no es una constante constanteempezar Form1.Caption: = IntToStr (clics); clics: = clics + 1; final; 

Tenga en cuenta que cada vez que hace clic en el botón, los títulos de los formularios se incrementan constantemente.
Ahora prueba el siguiente código:

procedimiento TForm1.Button1Click (Remitente: TObject); var clics: entero; empezar Form1.Caption: = IntToStr (clics); clics: = clics + 1; final; 

Ahora estamos usando una variable no inicializada para el contador de clics. Observe ese valor extraño en el título de los formularios después de hacer clic en el botón.

Constantes tipificadas constantes

Tienes que aceptar que la idea de constantes modificables suena un poco extraña. En las versiones de 32 bits de Delphi, Borland decidió desalentar su uso, pero los admite para el código heredado de Delphi 1.

Podemos habilitar o deshabilitar constantes escritas asignables en la página del compilador del cuadro de diálogo Opciones de proyecto.

Si ha deshabilitado las constantes escritas asignables para un proyecto determinado, cuando intente compilar el código anterior, Delphi le dará el error 'No se puede asignar el lado izquierdo' al compilar. Sin embargo, puede crear una constante de tipo asignable declarando:

{$ J +}const clics: entero = 1; {$ J-}

Por lo tanto, el primer código de ejemplo se ve así:

procedimiento TForm1.Button1Click (Remitente: TObject); const{$ J +} clics: entero = 1; // no es una constante constante{$ J-}empezar Form1.Caption: = IntToStr (clics); clics: = clics + 1; final; 

Conclusión

Depende de usted decidir si desea que las constantes escritas sean asignables o no. Lo importante aquí es que, además de ideal para contadores, las constantes escritas son ideales para hacer componentes alternativamente visibles o invisibles, o podemos usarlos para cambiar entre cualquier booleano propiedades. Las constantes escritas también se pueden usar dentro del controlador de eventos de TTimer para realizar un seguimiento de cuántas veces incluso se ha activado.

instagram story viewer