¿Alguna vez te has encontrado escribiendo el mismo código una y otra vez para realizar alguna tarea común dentro de los controladores de eventos? ¡Si! Es hora de que aprenda sobre los programas dentro de un programa. Llamemos a esas subrutinas de mini programas.
Las subrutinas son una parte importante de cualquier lenguaje de programación, y Delphi no es una excepción. En Delphi, generalmente hay dos tipos de subrutinas: una función y un procedimiento. La diferencia habitual entre una función y un procedimiento es que una función puede devolver un valor, y un procedimiento generalmente no lo hará. Una función normalmente se llama como parte de una expresión.
Eche un vistazo a los siguientes ejemplos:
procedimiento Di hola(const ¿Qué?cuerda); empezar ShowMessage ('Hola' + sWhat); final; función Añosconst BirthYear: entero): entero; var Año, Mes, Día: Palabra; empezar DecodeDate (Fecha, Año, Mes, Día); Resultado: = Año - Año de nacimiento; final;
Una vez que se han definido las subrutinas, podemos llamarlas una o más veces:
procedimiento TForm1.Button1Click (Remitente: TObject); empezar SayHello ('Usuario de Delphi'); final; procedimiento TForm1.Button2Click (Remitente: TObject); empezar SayHello ('Zarko Gajic'); ShowMessage ('Tú eres' + IntToStr (YearsOld (1973)) + 'años!'); final;
Como podemos ver, tanto las funciones como los procedimientos actúan como miniprogramas. En particular, pueden tener su propio tipo, constantes y declaraciones de variables dentro de ellos.
Eche un vistazo más de cerca a una función SomeCalc (miscelánea):
función SomeCalc (const sStr: cuerda; const iYear, iMonth: entero; var iDay: entero): booleano; empezar ... final;
Cada procedimiento o función comienza con un encabezamiento que identifica el procedimiento o la función y enumera los parámetros la rutina usa si hay alguna. Los parámetros se enumeran entre paréntesis. Cada parámetro tiene un nombre de identificación y generalmente tiene un tipo. Un punto y coma separa los parámetros en una lista de parámetros entre sí.
Se llaman sStr, iYear e iMonth parámetros constantes. Los parámetros constantes no pueden ser cambiados por la función (o procedimiento). El iDay se pasa como un parámetro var, y podemos hacerle cambios dentro de la subrutina.
Las funciones, dado que devuelven valores, deben tener un tipo de retorno declarado al final del encabezado. El valor de retorno de una función viene dado por la asignación (final) a su nombre. Como cada función tiene implícitamente una variable local Resultado del mismo tipo que el valor de retorno de las funciones, la asignación a Resultado tiene el mismo efecto que la asignación al nombre de la función.
Las subrutinas siempre se colocan en la sección de implementación de la unidad. Tales subrutinas pueden ser llamadas (utilizadas) por un controlador de eventos o una subrutina en la misma unidad que se define después.
Nota: la cláusula de usos de una unidad le dice a qué unidades puede llamar. Si queremos que los controladores de eventos o las subrutinas de otra unidad puedan utilizar una subrutina específica en una Unidad1 (por ejemplo, Unidad2), tenemos que: