Gestión de métodos y clases
El código 4D utilizado en todo el proyecto está escrito en métodos y clases.
El IDE de 4D le ofrece varias funcionalidades para crear, editar, exportar o eliminar su código. Por lo general, utilizará el editor integrado de código de 4D para trabajar con su código. También puede utilizar otros editores como VS Code, para el que está disponible la extensión 4D-Analyzer.
Creación de métodos
Un método en 4D se almacena en un archivo .4dm ubicado en la carpeta apropiada de la carpeta /Project/Sources/.
Puede crear varios tipos de métodos:
- Todos los tipos de métodos pueden crearse o abrirse desde la ventana del Explorador (excepto los métodos Objeto que se gestionan desde el editor de formularios).
- Los métodos proyecto también pueden crearse o abrirse desde el menú Archivo o desde la barra de herramientas (Nuevo/Método... o Abrir/Método...) o utilizando los accesos directos de la ventana del editor de código.
- Los Triggers también pueden ser creados o abiertos desde el Editor de estructuras.
- Los métodos formulario también pueden crearse o abrirse desde el editor de formularios.
Crear las clases
User classes
Una clase usuario en 4D está definida por un archivo de método específico (.4dm), almacenado en la carpeta /Project/Sources/Classes/. El nombre del archivo es el nombre de la clase. Por ejemplo, una clase llamada "Polygon" se almacenará en el siguiente archivo:
Project folder Project Sources Classes Polygon.4dm
Puede crear un archivo de clase desde el menú Archivo o la barra de herramientas (Nuevo > Clase...) o en la página Métodos de la ventana Explorador. También puede utilizar el atajo Ctrl+Mayús+Alt+k.
En la página Métodos del Explorador, las clases se agrupan en la categoría Clases.
Para crear una nueva clase, puede:
- seleccione la categoría Clases y haga clic en el botón
.
- seleccione Nueva clase... en el menú de acciones de la parte inferior de la ventana del Explorador, o en el menú contextual del grupo Clases.
- seleccione Nueva > Clase... en el menú contextual de la página de inicio del Explorador.
Al nombrar las clases, debe tener en cuenta las siguientes reglas:
- Un nombre de clase debe cumplir con reglas de denominación de las propiedades.
- .
- No se recomienda dar el mismo nombre a una clase y a una tabla de la base, para evitar conflictos.
ORDA classes
ORDA data model user classes are high-level class functions created above the data model.
An ORDA data model class is defined by adding, at the same location as regular class files (i.e. in the /Sources/Classes folder of the project folder), a .4dm file with the name of the class. Por ejemplo, una clase de entidad para la dataclass Utilities se definirá a través de un archivo UtilitiesEntity.4dm.
4D crea previa y automáticamente las clases vacías en memoria para cada objeto del modelo de datos disponible.

Por defecto, las clases ORDA vacías no se muestran en el Explorador. Para mostrarlas, debe seleccionar Mostrar todas las clases de datos en el menú de opciones del Explorador:
Las clases de usuarios ORDA tienen un icono diferente de las otras clases. Las clases vacías se atenúan:

Para crear un archivo de clase ORDA, basta con hacer doble clic en la clase predefinida correspondiente en el Explorador. 4D creates the class file and add the extends code. Por ejemplo, para una clase Entity:
Class extends Entity
Una vez definida una clase, su nombre ya no aparece atenuado en el Explorador.
Para abrir una clase ORDA definida en el editor de código 4D, seleccione o haga doble clic en el nombre de una clase ORDA y utilice Editar... en el menú contextual/menú de opciones de la ventana del Explorador:
Para las clases ORDA basadas en el datastore local (ds), puede acceder directamente al código de la clase desde la ventana de estructura 4D:

Soporte en IDE 4D
En las diferentes ventanas 4D (editor de código, compilador, depurador, explorador de ejecución), el código de la clase se maneja básicamente como un método proyecto con algunas especificidades:
- En el editor de código:
- una clase no puede ser ejecutada
- una función de clase es un bloque de código
- Ir a la definición en un objeto miembro busca las declaraciones de función de clase; por ejemplo, "$o.f()" encontrará "Function f".
- Buscar referencias en la declaración de función de clase busca la función utilizada como miembro de objeto; por ejemplo, "Function f" encontrará "$o.f()".
- variables typed as a user or ORDA class automatically benefit from autocompletion features. Ejemplo con una variable de clase Entity:

- En el explorador de Ejecución y Depurador, las funciones clase se muestran con el formato
<ClassName>constructor o<ClassName>.<FunctionName>.
Eliminar los métodos o las clases
Para eliminar un método o clase existente, puede:
- en su disco, elimine el archivo .4dm de la carpeta "Sources",
- en el Explorador 4D, seleccione el método y haga clic
o elija Mover a la Papelera en el menú contextual.
Para eliminar un método objeto, seleccione Borrar el método de objeto en el editor de formularios (menú Objeto o menú contextual).
Comandos de acceso a objetos de diseño
You can access the contents and paths of all methods in your applications by programming, thanks to the "Design Object Access" command theme. Este conjunto de herramientas de código fuente facilita la integración en sus aplicaciones de herramientas de control de código y, más concretamente, de sistemas de control de versiones (VCS). It also lets you implement advanced systems for code documentation, for building a custom explorer or for organizing scheduled backups of the code saved as disk files.
Se aplican los siguientes principios:
- Cada método y formulario de una aplicación 4D tiene su propia dirección en forma de nombre de ruta. Por ejemplo, el método de activación de la tabla 1 se encuentra en "[trigger]/tabla_1". Cada nombre de ruta de objeto es único en una aplicación.
- You can access objects in the 4D application using the commands of the "Design Object Access" command theme, for example
METHOD GET NAMESorMETHOD GET PATHS. - Most of the commands in this theme work in both interpreted and compiled mode. Sin embargo, los comandos que modifiquen propiedades o accedan a los contenidos ejecutables a partir de métodos sólo pueden utilizarse en modo interpretado (ver la tabla abajo).
- Puede utilizar todos los comandos de este tema con 4D en modo local o remoto. However, keep in mind that you cannot use certain commands in compiled mode: the purpose of this theme is to create custom development support tools. You must not use these commands to dynamically change the functioning of a database that is running. For example, you cannot use
METHOD SET ATTRIBUTEto change a method attribute according to the status of the current user. - When a command of this theme is called from a component, by default it accesses the component objects. En este caso, para acceder a los objetos del host, basta con pasar un
*como último parámetro.
Uso en modo compilado
For reasons related to the principle of the compilation process, only certain commands in this theme can be used in compiled mode. The following table indicates the available of the commands in compiled mode:
El error -9762 "El comando no puede ejecutarse en una base de datos compilada." se genera cuando el comando se ejecuta en modo compilado.
Creación de rutas
Las rutas generadas para los objetos 4D deben ser compatibles con la gestión de archivos del sistema operativo. Characters that are forbidden at the OS level such as ":" are automatically encoded in method names, so that generated files may be integrated automatically in a version control system.
Estos son los caracteres codificados:
| Caracter | Encoding |
|---|---|
| " | %22 |
| * | %2A |
| / | %2F |
| : | %3A |
| < | %3C |
| > | %3E |
| ? | %3F |
| | | %7C |
| \ | %5C |
| % | %25 |
Ejemplos
Form?1 está codificado Form%3F1
Button/1 está codificado Button%2F1