Hay comentarios en un programa Delphi. Ejemplo de declaración de variables globales. Plantilla generada por shell de Delphi

Página 5 de 9

Comentarios

El lenguaje Object Pascal admite dos tipos de comentarios: de bloque y de una sola línea. Consideraciones generales el uso de comentarios puede ser el siguiente:

  • Coloque un comentario cerca del comienzo del módulo para explicar su propósito;
  • Coloque un comentario antes de la declaración de clase;
  • Coloque un comentario antes de la declaración del método;
  • Evite comentarios obvios: (i:= i + 1 // suma uno a i);
  • Recuerde que un comentario engañoso es peor que ningún comentario;
  • Evite poner información en un comentario que pueda no ser correcta con el tiempo;
  • Evite decorar comentarios con asteriscos u otros símbolos;
  • Para comentarios temporales (no publicados), utilice "TODO".

Bloquear comentarios

Object Pascal admite dos tipos de comentarios de bloque. El comentario de bloque más utilizado es un par de llaves: { } . El equipo de Delphi prefiere mantener este comentario lo más simple posible y como alternativa. Utilice espacios para dar formato al texto de estos comentarios y no utilice asteriscos "*". Al ajustar líneas, debe mantener la sangría y la alineación.

Ejemplo de DsgnIntf.pas:

( TEditor de propiedades

Edita una propiedad de un componente, o una lista de componentes,
seleccionado en el inspector de objetos. la propiedad
El editor se crea según el tipo de
propiedad que se está editando según lo determinado por los tipos
registrado por...

Obtener valor Xxx
Obtiene el valor de la primera propiedad del
Propiedad de propiedades. Llama al apropiado
Método TProperty GetXxxValue para recuperar el
valor.

SetXxxValue Establece el valor de todas las propiedades.
en la propiedad Propiedades. Llama al apropiado
Métodos TProperty SetXxxxValue para establecer el valor. )

Un comentario de bloque siempre contiene información sobre el módulo: derechos de autor, fecha de modificación, etc. Un comentario de bloque que describe un método debe ir antes de la declaración del método.

Bien

El segundo tipo de comentario de bloque contiene dos caracteres: un paréntesis y un asterisco: (* *) . Este tipo de comentario se utiliza durante el desarrollo. código fuente. Su ventaja es que soporta comentarios anidados, aunque los comentarios deben ser diferentes tipos. Puede utilizar esta propiedad para comentar grandes fragmentos de código que contengan otros comentarios:

(* procedimiento TForm1.Button1Click(Remitente: TObject);
comenzar
Haz esto; // Iniciar el proceso
Haz eso; // Continuar iteración
(Necesitamos una forma de informar errores aquí, tal vez usando
a intentarlo finalmente¿¿¿bloquear??? )
LlamarMásCódigo; // Finaliza el proceso
fin; *)

Comentarios de una sola línea

Un comentario de una sola línea consta de caracteres // seguidos del texto del comentario. Los caracteres // deben ir seguidos de un espacio y luego de texto. Los comentarios de una sola línea deben tener la misma sangría que el código en el que aparecen. Los comentarios de una sola línea se pueden agrupar para formar gran comentario.

Un comentario de una línea puede comenzar con nueva linea y puede continuar el código que comenta. En este caso debe haber al menos un espacio entre el código y el comentario. Si al código le sigue más de un comentario, deben estar alineados en la misma columna.

Ejemplo de un comentario de una línea:

//abre la mesa
Tabla1.Abierta;
Ejemplo de un comentario en el código:
si (no es visible) entonces
Salida; //nada que hacer
Inc(StrLongitud); // reserva espacio para terminador nulo

Debes evitar el uso de comentarios en el código de cada línea del módulo.

Desarrollador de cualquier gran proyecto en Delfos Tarde o temprano, se enfrenta a la necesidad de documentar el código, desde comentarios banales sobre clases/métodos hasta un archivo de ayuda completo (html, chm, hlp o incluso Microsoft Help 2.0). Para aquellos que escriben en Java o C#, esto ya no es un problema: tienen JavaDoc Y Castillo de arena. En Delphi la situación era difícil hasta el lanzamiento. 2005 -ésima versión, que finalmente agregó soporte integrado para documentación XML.

Aunque incluso ahora, si miras los códigos fuente de diferentes proyectos, no verás nada. El estilo javadoc es el más utilizado (aparentemente de forma gratuita). DelphiDoc).

Así es como se ven los comentarios en su formato:

(** Abra todas las tablas marcadas para abrir @param FastOpen Utilice la rutina de apertura rápida @return Devuelve True si está bien @see TMainForm ) function TMainForm.OpenTables(FastOpen: Boolean): Boolean; comenzar... ... terminar; Las ayudas generadas a partir de dichos comentarios parecen más o menos decentes. Pero a diferencia del mismo Eclipse o netbeans esto es salvajismo. Componer tales construcciones sin la ayuda de un IDE es bastante tedioso. No importa cuánto lo intentes, el texto "Abrir todas las tablas marcadas para abrir" no aparecerá en la información sobre herramientas y el programador tendrá que mirar el código fuente o acudir a la ayuda cada vez.

Información de ayuda

Desde la versión 2005 , introducido en Delphi nuevo tipo sugerencias en el editor de código - Help Insight. Ahora ya no son esas patéticas descripciones emergentes que había en versiones anteriores.


Ayuda Insight en acción

Es una pena, por supuesto, que CódigoGear(y después de él embarcadero) no se molestó en hacerlo comentarios detallados para Help Insight a todos los módulos estándar. Probablemente, simplemente les dé pereza entrar en todos los códigos fuente, muchos de los cuales permanecen casi sin cambios con respecto a las versiones más antiguas de Delphi. Pero ese no es el punto. Lo principal es que esta función realmente funciona y, como funciona, la usaremos.

comentarios XML

Este formato probablemente sea familiar para todos los que de una forma u otra se han encontrado con el desarrollo en .NET. Este es exactamente el formato que admite el Help Insight antes mencionado, y así es como se ve:

///

/// Abrir todas las tablas/b marcadas para abrir. Ver también /// clase. /// /// Utilice la rutina de apertura rápida. /// Verdadero si está bien; en caso contrario, Falso. función TMainForm.OpenTables(FastOpen: booleano): booleano; comenzar... ... terminar;

Es fácil adivinar que la etiqueta resumen- Este descripción del método, parámetro— descripción de los parámetros, regresa— descripción del valor de retorno, y ver— enlace a otra descripción. Puede encontrar una lista de todas las etiquetas en MSDN (no pude encontrar ninguna información sobre esto en las páginas de ayuda de Delphi 2007 y 2009). Además, además de las etiquetas estándar, puede utilizar parte del HTML, por ejemplo Pero a diferencia del mismo resaltar comentarios importantes. Para escribir dichos comentarios, es conveniente utilizar una plantilla: escriba "resumen" en el texto del programa y presione la tecla Tab. En Delphi 2009, ni siquiera es necesario que usted mismo escriba las tres barras al principio; presionando Enter se agregan automáticamente como en estudio visual (esto también funciona en Delphi 2007 SP3). Vale la pena mencionar que comentarios XML Se puede escribir en declaraciones de clases, procedimientos, funciones, tipos e incluso variables.

Para ver los comentarios escritos en acción, debe ir a la ventana de configuración del proyecto (Proyecto - Opciones) y en la pestaña Compilación, marcar la casilla (o configurarla en Verdadero en Delphi 2009) Generar documentación XML. Después de cada compilación de proyecto, Delphi generará varios archivos XML(uno por proyecto y uno por módulo) que contendrá todos los comentarios XML. Estos archivos se pueden utilizar para crear sistema de ayuda. Pero lo principal es que ahora esta conveniente miniayuda se mostrará en la información sobre herramientas:

Desafortunadamente, las etiquetas HTML en Help Insight no funcionan, pero todos los enlaces funcionan perfectamente.

Generando documentación usando Delphi

En Delphi 2005-2009 hay 2 formas de crear documentación. Probaremos ambos en la práctica. El primero, y el más sencillo, se implementa utilizando el IDE integrado. Juntos. Guarde el proyecto y haga clic en el elemento del menú Ver - Vista de modelo . Delphi puede preguntar si desea agregar soporte de modelado al proyecto; seleccione sí. Se abrirá una ventana de Movel View en la que deberá seleccionar el proyecto y menú contextual prensa Generar documentación . Aparecerá una pequeña ventana con configuraciones (sorprendentemente hay pocas), en la que le recomiendo inmediatamente que desmarque la casilla Incluir diagramas Y Incluir árbol de navegación

. Delphi hará un pequeño esfuerzo y después de un par de segundos generará varias páginas HTML. Inesperadamente, el resultado fue una ayuda clásica que copia completamente javadoc. Al principio hubo alegría, pero luego decepción. Tras un examen más detenido, resulta que contiene muchos enlaces oscuros innecesarios como por defecto o globales , y es extremadamente incómodo trabajar con él. Todas las etiquetas Pero a diferencia del mismo estúpidamente recortado, al igual que . Las descripciones de clases y métodos utilizan conceptos que son extraños para Delphi como Reintroducir

, los nombres de los parámetros desaparecen en alguna parte. Y en general, la ayuda resultante resulta prácticamente ilegible: (Parece que los desarrolladores simplemente no terminaron esta función, sino que la iniciaron y la dejaron como está. El segundo método, como muchas cosas en Delphi, no es del todo obvio: utilizamos la utilidad suministrada con el IDE. XMLDoc . Se puede encontrar en la carpeta.<версия Delphi>Mis documentos\RAD Studio\\Demostraciones\XMLDoc . Además, necesitarás instalar Java SDK (1.4.2 o superior), Python (mínimo 2.3) y (versión 6.5.5 para Java). Después de la instalación necesitará agregar a la variable del sistema “ Camino ” rutas donde están instalados Python y Saxon, por ejemplo “ C:\Python23\;C\Saxon655\” (esto se hace a través de “Mi PC”, y en él - “ Variables de entorno ", las rutas deben agregarse separadas por punto y coma). En la carpeta donde extrajiste Saxon, crea archivo BAT con nombre saxon.bat

@con el siguiente contenido: "<путь к папке с Saxon>tarro java

\saxon.jar" %1 %2 %3 No es necesario ejecutarlo. Cree un archivo BAT en la carpeta con XMLDoc inicio.bat para no perder el tiempo con línea de comando

, y escribe lo siguiente en él:<путь к папке с проектом>Cls xmldoc.py "

Una ruta de ejemplo es “C:\Projects\TestProject”. Importante: Todas las rutas utilizadas no deben contener cirílico; de lo contrario, XMLDoc tendrá problemas con él. Entonces, ahora todo está listo y puede ejecutar el archivo start.bat. Si todo va bien, aparecerá una carpeta en la carpeta del proyecto. doc , y en él - final en el que serán almacenados archivos HTML

documentación generada. Esto es lo que obtuve (usando el método OpenTables como ejemplo): Por evaluación subjetiva esta opción Se ve más bonito que el primero. Todo parece ir genial, pero se ve agravado por el hecho de que XMLDoc también cortó el enlace por descuido. . Cabe señalar que estos archivos HTML no son la versión final; pueden (y, en teoría, deberían) convertirse al formato Ayuda 2.0 (luego se pueden ver a través de Explorador de documentos

, lo mismo que la ayuda en Delphi o Visual Studio). Para hacer esto, necesitará el kit de integración de ayuda de Visual Studio y luego el kit de ayuda CodeGear. Como ya no tenía nervios y el resultado ya estaba en principio claro, no fui más lejos. Quizás seas más fuerte :)

Generando documentación usando Doc-O-Matic Express Doc-O-Matic - suficiente poderosa utilidad para crear documentación para basado en XML y comentarios de JavaDoc en formatos HTML

, CHM y Ayuda 2.0. Pero, lamentablemente, su versión completa es de pago. Pero no todo es tan malo: hay una versión Express (probablemente tomaron el nombre de Microsoft) y tiene casi todo lo que necesitas. Probémoslo. Con Doc-O-Matic no tendrás que bailar tanto con pandereta como con XMLDoc, pero tampoco te las arreglarás con un par de clics. Ejecute la utilidad en la sección. Archivos de proyecto haga clic en el botón Agregar , en el filtro de diálogo seleccione Proyecto Delphi 2007 y abierto archivo requerido proyecto. en la pestaña HTML presta atención a la sección Archivos y carpetas

— en él puede especificar la carpeta donde se colocará el archivo de documentación. Guarde la configuración en algún lugar conveniente, por ejemplo en el archivo C:\mydoc.dox-express. Ahora cierre la utilidad y vaya a la carpeta donde está instalado Doc-O-Matic. Cree un archivo BAT con la siguiente línea:<путь к файлу *.dox-express>"

Domexpress.exe -config "HTML"

Después de ejecutar este comando, los archivos de documentación se colocan en la carpeta especificada anteriormente y el navegador se inicia automáticamente. Por ejemplo, así es como se verá la descripción del método: Nuevamente, subjetivamente, esa ayuda produce la impresión más favorable. Sin puntos extra

En lugar de un epílogo. La compatibilidad con comentarios XML en el nivel del editor de código en Delphi es una característica excelente y conveniente, y debería usarla. Pero con la generación de documentación la situación es más complicada: medios estándar demasiado crudo (y, para ser honesto, torcido =) para ser usado fácilmente. Pero existe una alternativa: Doc-O-Matic Express, que hace este trabajo bastante bien. Esperemos que pronto (tal vez con el lanzamiento de nuevas versiones de Delphi) aparezcan utilidades nuevas y más flexibles.

Idioma Programación Delphi Bastante simple de aprender, pero muy efectivo y poderoso. Lo primero que debe conocer son los comentarios.

Los comentarios son cualquier texto que no tiene ningún efecto en el código del programa. Nunca compila ni pega en archivo ejecutable, pero se utiliza sólo para explicaciones de código.

Los comentarios se pueden formatear de dos maneras:

  1. todo lo que viene después de la doble barra // , se percibe como un comentario
    (sólo puedes formatear una línea de comentario de esta manera);
  2. Todo lo que esté entre llaves (y) también es un comentario.
    (en este caso, puedes incluir tantas líneas como quieras en el comentario).

Ejemplo de comentario

// Este es un comentario.

Esto ya no es un comentario.

(Este es un comentario nuevamente
Y esto también)

Este artículo utilizará constantemente comentarios para explicar el código de los programas descritos. Por eso teníamos que conocerlos antes de empezar a analizar el código.

Ahora estás listo para aprender el lenguaje de programación Delphi. Crear nuevo proyecto. Después de eso, ve al editor de código. El esquema del futuro programa ya está escrito aquí.

Echemos un vistazo más de cerca a lo que está escrito aquí. A continuación se muestran comentarios detallados para cada línea de la plantilla creada. Sin embargo, aquí falta algo para facilitar el estudio del código del programa.

Plantilla generada por shell de Delphi

unidad Unidad; //Nombre del módulo

interfaz

usos //Después de esto las palabras estan llegando listado de módulos conectados.
Windows, Mensajes, SysUtils, Variantes, Clases, Gráficos, Controles, Formularios,
Diálogos;

tipo //Después de esto viene la declaración de tipos
TForml = clase(Formulario T) //Comienza la descripción de un nuevo objeto TForm. Los componentes y eventos del formulario se describen aquí.
privado //Después de esta palabra puedes describir los datos privados del objeto.
(Declaraciones privadas)
disponible sólo para el objeto TForml

público //Después de esta palabra puedes describir los datos abiertos del objeto.
(Declaraciones públicas) //Pista generada por Delphi. Aquí puede describir variables y métodos,
accesible desde cualquier otro módulo

fin; //Fin de la declaración de tipo

var //Declarando variables globales
Formulario: TForml; //Esto describe la variable Forml del tipo de objeto TForml

implementación

($R *.dfm) //Archivo Connect.dfm (archivo con datos sobre objetos visuales)

fin. // termina con un punto - fin del módulo

Si algo no está claro, entonces en el proceso de creación programas reales todo encajará. No intentes recordar todo a la vez porque es imposible. Demasiado nueva información, no respaldado por la práctica. Trate de comprender sólo el significado del programa escrito.

Casi todas las líneas terminan en " ; " (punto y coma). Este signo indica el final de una declaración. Solo se usa después de declaraciones y nunca después de palabras clave como

usos, tipo, inicio, implementación, privado, público

Etc. Posteriormente, te familiarizarás con todas las palabras clave, la mayoría de las cuales destacan en negrita. La excepción es inmediatamente visible: la última en el módulo. fin, seguido de un punto en lugar de un punto y coma.

Entonces, veamos la estructura del código. Al principio está el nombre del módulo. Puede ser cualquier cosa, pero es igual que el nombre del archivo (sin tener en cuenta su extensión). No es recomendable cambiar el nombre del módulo manualmente. Si aún necesita cambiarlo, primero guarde el módulo con el nombre anterior. Para hacer esto, seleccione el comando de menú: Archivo | Guardar como(Archivo | Guardar como).

Es recomendable dar módulos. nombres claros. En este caso, puede determinar por el nombre qué hay dentro del módulo del mismo nombre. Es difícil adivinar qué hay en el archivo llamado Unitl.pas. También es recomendable dar nombres a los archivos que se relacionen con su contenido. Por ejemplo, formulario principal Es mejor guardar los programas en un archivo llamado MainUnit.pas o MainModule.pas. En este caso, el módulo y el archivo se denominarán MainUnit o MainModule, y podrá determinar inmediatamente que este es el formulario principal.

Luego viene la conexión de módulos globales. Todos los procedimientos, funciones y constantes se describen en algún módulo y antes de utilizar estos procedimientos es necesario conectarlos. Es posible que sepa que existe una función. Pero para que el compilador sepa esto, debe especificar el módulo donde se describe esta función en un lenguaje comprensible para el compilador. Por ejemplo, necesitas convertir un número en una cadena. Delphi ya tiene la función IntTostr para esto. Se describe en el módulo Sysutils. Si desea utilizar esta función, debe conectar este módulo a su módulo de Formularios (escriba el nombre Sysutils en la sección de usos).

Hay cuatro tipos de particiones:

  1. Privado- Las propiedades y métodos de esta sección están disponibles sólo para este objeto. Otros objetos no pueden llamar a estos métodos ni leer/escribir propiedades;
  2. Protegido- estas propiedades y métodos están disponibles sólo para este objeto y sus descendientes (objetos que descienden del nuestro y heredan sus propiedades). Los objetos de terceros no pueden acceder a las propiedades y métodos almacenados aquí;
  3. Público- todo lo aquí descrito está disponible para todos;
  4. Publicado- cuando orinarán componentes propios aplicación, en esta sección describiremos las propiedades y eventos que deben mostrarse en el inspector de objetos. Estas propiedades están disponibles para todos.
Cabe señalar que si se declaran dos objetos en el mismo módulo, se consideran amigables y ven absolutamente todos los métodos y propiedades, incluso si la declaración se realiza en la sección privado.

Después de la declaración del objeto y sus componentes, hay una descripción de las variables globales. Comienza después de la palabra clave. var y siempre viene después de la declaración de tipos. Debes recordar esto ahora, porque primero viene la sección. tipo, donde se describen los tipos, y luego var, donde se describen las variables.

Las variables globales son variables que se almacenan en la pila, se crean cuando se inicia el programa y se destruyen cuando el programa sale. Esto significa que están disponibles en cualquier momento y en cualquier lugar mientras se ejecuta el programa.

ejemplo de declaración de variable global

var//Declarando variables globales
Formulario: TForml; //Esto describe la variable Forml del tipo de objeto TForml

Este ejemplo declara una variable, Forml, de tipo TForml. Cuando se crea el objeto TForml, su puntero se escribirá en la variable Form1. Esta variable es global y existe mientras el programa se está ejecutando, lo que significa que siempre se puede acceder a ella.

Palabra clave implementación Tampoco lo tocaremos por ahora, pero lo dejaremos para el futuro, cuando nuestro conocimiento de Delphi se amplíe un poco. Lo último que queda por cubrir en este capítulo es la clave ($R * dfm).

Las llaves pueden contener no solo comentarios, sino también modificadores del compilador. Se diferencian en que se parecen ($Parámetro de letra]. Letra: indica el tipo de clave. En nuestro caso, se utiliza la letra. R. Esta clave indica que necesita incluir el archivo de recursos en en este caso .dfm archivo (archivo con datos sobre objetos visuales) con el mismo nombre que el nombre del módulo. Si el nombre del módulo Unidad principal, entonces necesitas cambiar esta clave a ($R Unidad principal.dfm). Llave R- esta es la única clave que será necesaria por ahora.

Cualquier código de programa en Delphi está entre el principio y el final. Palabra clave comenzar significa el comienzo del código, un fin- fin. Por ejemplo, cuando escribe un procedimiento, primero debe escribir su nombre (hablaremos sobre cómo hacerlo más adelante) y luego encerrar su código entre los corchetes del operador de inicio y fin.

Basado en materiales del sitio.

Página 7 de 12

Clases

Estructura del cuerpo de clase

El cuerpo de la clase, cuando se declara, se sujeta a la siguiente estructura:

  • Declaración de campos;
  • Declaración de métodos;
  • Declaración de propiedades.
Los campos, propiedades y métodos de su clase deben estar ordenados en orden alfabético.

Niveles de acceso

Excluyendo el código insertado por el IDE, las directivas de visibilidad deben declararse en el siguiente orden:
  • Miembros de clase privados (ocultos) ( privado);
  • Miembros de la clase protegida ( protegido);
  • Miembros de la clase pública ( público);
  • Miembros de la clase publicada ( publicado)

Por lo tanto, en Object Pascal hay cuatro niveles de acceso para los miembros de la clase: publicado, público, protegido y privado, en orden de visibilidad decreciente. De forma predeterminada, el nivel de acceso está publicado. En general, a los miembros del grupo se les debe dar el nivel más bajo de acceso que sea apropiado para ese miembro. Por ejemplo, un miembro al que pueden acceder clases desde el mismo módulo debe tener el nivel de acceso privado. Además, al declarar a los miembros de la clase con nivel más bajo acceso, usted permite que el compilador use características adicionales para optimización. Por otro lado, si planeas generar en el futuro clases infantiles de tu clase, entonces necesitas usar el nivel acceso protegido.

Nunca especifique el nivel de acceso público a los datos. Los datos siempre deben declararse en una sección privada y accederse a ellos mediante métodos o propiedades.

Declaración del constructor

Todos los métodos de clase deben estar ordenados alfabéticamente. Sin embargo, puede colocar declaraciones de constructor y destructor antes que todos los demás métodos. Si una clase tiene más de un constructor y tienen el mismo nombre, entonces deben organizarse en orden creciente de parámetros.

Métodos de declaración

Si es posible, la declaración del método debe estar en una línea:
Por ejemplo:
procedimiento ImageUpdate(Image img, infoflags: Integer,
x: entero, y: entero, w: entero, h: entero)


Arriba