# De proyecto de aplicación

Un proyecto de aplicación contendrá los objetos visuales de una aplicación, o de un módulo de la misma.\
Para crear un proyecto de datos hemos usar la opción **nuevo proyecto de aplicación** del menú **proyectos**. Para ello, previamente, habremos de tener definida una [solución](../soluciones-y-proyectos) en la que se creará la proyecto, si no, no nos permitirá la creación del mismo.

En la pestaña General nos presentará la información sobre la solución y el dominio del [Velneo vServer](../../velneo-vserver/que-es-velneo-vserver) en el que se creará el proyecto. Las propiedades son:

### **Nombre**

Nombre del proyecto que luego servirá de referencia en su [instanciación](../../velneo-vadmin/gestion-de-aplicaciones/instancias).

### **Versión**

Número de versión que mostrará el proyecto al ser presentado.

### **Icono 32×32 e Icono 64×64**

Estas propiedades nos permiten personalizar el icono que identificará al proyecto en el visor de soluciones de Velneo vDevelop. Si no especificamos ninguno, se usará un icono estándar de la plataforma.

### **Alias**

Permite establecer un alias al proyecto. En la programación de [scripts](../scripts) una referencia a un objeto se ha de componer mediante una cadena con el alias de un proyecto más el identificador del objeto, separados por “/”. También se podría usar en lugar del alias el id. del fichero, pero resultará menos legible.

> **Nota**: es muy importante tener el cuenta que el alias debe ser único. En un mismo servidor no pude haber alias repetidos en distintos proyectos. Por lo tanto, debemos ser muy cuidadosos a la hora de establecer un criterio para crear nuestros alias y tener en cuenta que si heredamos soluciones de otros desarrolladores, éstos también podrán tener alias.

### Id. fichero

Muestra el identificador que el sistema asigna automáticamente al proyecto para referenciarlo. Este identificador es único, e identifica a un proyecto de forma única y exclusiva. No puede haber dos proyectos con un mismo identificador. Este es el motivo por el que no debemos copiar físicamente en el disco ficheros correspondientes a un proyecto en distintas soluciones, ya que provocará errores. Este identificador no puede ser modificado.

Si quisiésemos duplicar un proyecto en distintas soluciones lo que tendremos que hacer será, con Velneo vDevelop, copiar los objetos del proyecto de origen, crear un nuevo proyecto en la solución de destino y pegar los objetos copiados.

### Guardada

El contenido de esta propiedad no puede ser editado. En ella se mostrará la fecha y hora en que el proyecto fue guardado por última vez.

### Nº de historia

El contenido de esta propiedad no puede ser editado. Es un contador que se incrementará en una unidad cada vez que guardemos el proyecto.

### Protección contra edición

Nos permite establecer una contraseña para proteger el proyecto en edición. Si se ha establecido alguna, será solicitada cada vez que un usuario intente cargar el proyecto en Velneo vDevelop.

En la pestaña **herencia** definiremos la [herencia ](../herencia)correspondiente al proyecto, escogiendo de entre los proyectos de datos o de aplicación cargados aquellos cuyos objetos queramos heredar. De esta forma, desde el proyecto de aplicación que hemos creado accederemos a reutilizar los objetos de los proyectos heredados. Debemos hacer doble clic sobre los **proyectos heredables** para establecer una herencia del proyecto seleccionado y doble clic en los **proyectos heredados** para anular la herencia establecida.

En la pestaña **colores** definiremos las paletas de colores que aplicaremos en las propiedades de los objetos de nuestro proyecto. Esta opción nos permite modificar la paleta de colores de tal manera que se actualice en todas las propiedades de los objetos donde se use.

Pulsando la opción "añadir paleta" nos mostrará el cuadro de diálogo de selección de un color que nos permite seleccionar el color base de la paleta.

Una vez aceptamos, nos genera la paleta de forma automática a partir del color base, pudiendo asignar el nombre a la paleta rellenando el control de edición de **paleta**. Este nombre será el que referenciaremos en las propiedades de los objetos de tal forma que se asignarán de forma automática los colores según la propiedad que estemos definiendo y en el caso de modificar la paleta, los colores usados serán actualizados en las propiedades que hagan uso de la paleta.

Haciendo doble clic sobre un color de la paleta podemos modificar el color seleccionado, apareciendo para ello de nuevo el cuadro de diálogo de Selección de un color.

En la pestaña **fuentes** definiremos los tipos de letra que aplicaremos en las propiedades de los objetos de nuestro proyecto. Esto nos permitirá, al igual que sucede con las paletas de colores, modificar en esta opción un tipo de letra que usemos en nuestro proyecto, actualizándolo en todas las propiedades de los objetos donde se use.

Para añadir una fuente pulsaremos el botón “añadir fuente” y se abrirá la ventana de selección de fuentes, en la que seleccionaremos la fuente y atributos que deseemos. Al aceptar, la fuente seleccionada será añadida a la lista de fuentes.

Y le asignaremos un nombre. A partir de este momento, en cualquier propiedad en la que haya que especificar una fuente, ésta aparecerá en la lista de fuentes seleccionables. Ver el capítulo dedicado al [selector de fuentes](editores/selector-de-fuentes) para ampliar información al respecto.

Las fuentes establecidas podrán ser usadas tanto en el proyecto actual como en los proyectos que lo hereden.

Si deseamos editar las propiedades de una fuente haremos doble clic sobre ella.

Si deseamos eliminar una fuente pulsaremos el botón “eliminar fuente”.

> Nota: no debemos cambiar el nombre de una fuente cuando es usada por algún objeto/sub-objeto ya que el cambio de identificador no se replicará en el objeto u objetos afectados.

En la pestaña **idiomas** configuraremos los idiomas que podremos definir en el proyecto y que se podrán seleccionar en ejecución para mostrar la información de los objetos. Debemos seleccionar un idioma y un país al que se aplica el idioma. Usando las opciones"subir" y "bajar" podremos ordenar los idiomas del proyecto. El primero de la lista será el idioma por defecto del proyecto. Los países se presentan en función del idioma seleccionado.

Los textos que aparecen en una aplicación realizada con Velneo pueden ser internos (menús en stock, textos del sistema, etc.) o del proyecto Velneo.

En la ventana de propiedades del proyecto podemos definir los idiomas que se usarán en la aplicación. Las propiedades de los objetos que admiten idiomas (por ejemplo el nombre del objeto) tienen un editor que permite definir la propiedad en los diferentes idiomas del proyecto.

Los idiomas de los proyectos tienen un orden de carga en ejecución. Primero será el que coincida con la selección de Idioma y País. Si seleccionamos el valorDefault para País, el idioma será aplicable para cualquier selección de país. En el caso de que el país del sistema no esté representado y de que haya de un idioma varias opciones de país, se tomará primero el definido como **default**, si no, el primero del proyecto que coincida con el idioma. Si no existe el idioma del sistema se tomará el idioma por defecto del proyecto que es el primero que esté definido en el proyecto.

En cualquier caso, podemos dar opción al usuario para que seleccione de entre los idiomas del proyecto aquél que desee usar.

El listado de países seleccionables sigue la norma [ISO 3166-1](https://es.wikipedia.org/wiki/ISO_3166-1).

Listado de idiomas seleccionables sigue la norma [ISO 639-1](https://es.wikipedia.org/wiki/ISO_639-1).

Los ejecutables de los componentes de Velneo (Velneo vClient, Velneo vDevelop, etc.) se suministran en inglés y español. A esto se añade la opción de incluir en el directorio de aplicación los ficheros de traducción de otro idioma, con lo que los textos de Velneo se podrán visualizar en dicho idioma.

Estos ficheros tienen el formato vClient\_IDIOMA\_PAIS.qm, donde IDIOMA es el identificador del idioma en formato ISO ISO 639 y PAIS es el identificador del país en formato 3166 (por ejemplo vClient\_CA\_ES.qm es el fichero de traducción en catalán). Iremos publicando en el Centro de soporte de Velneo los ficheros de traducción realizados por otros suscriptores según los vayan aportando.

En la pestaña **comentarios** podremos incluir todos aquellos datos que veamos necesarios para documentar nuestra aplicación.

Es posible **borrar un proyecto** cargado en Velneo vDevelop, para ello situaremos el cursor sobre el mismo, pulsaremos el botón derecho del ratón y, en el menú de contexto que se abre, seleccionaremos la opción “Eliminar”.

Si existen proyectos que hereden el proyecto seleccionado, éste no podrá ser eliminado.

## Objetos de proyecto de aplicación

Los objetos de proyecto de aplicación que existen en Velneo son:

* [Acción](proyecto-de-aplicacion/accion).
* [Alternador de lista](proyecto-de-aplicacion/alternador-de-lista).
* [Arbol visor de tablas](proyecto-de-aplicacion/arbol-visor-de-tablas).
* [Bloc de formularios](proyecto-de-aplicacion/bloc-de-formularios).
* [Casillero](proyecto-de-aplicacion/casillero).
* [Cesta](proyecto-de-aplicacion/cesta).
* [Comboview](proyecto-de-aplicacion/comboview).
* [Control SVG](proyecto-de-aplicacion/control-svg).
* [Dispositivo serie](proyecto-de-aplicacion/dispositivo-serie).
* [Formulario](proyecto-de-aplicacion/formulario).
* [Formulario QML](proyecto-de-aplicacion/formulario-qml).
* [Gráfico](proyecto-de-aplicacion/grafico).
* [Imagen SVG](proyecto-de-aplicacion/imagen-svg).
* [Impresora lógica](proyecto-de-aplicacion/impresora-logica).
* [Informe](proyecto-de-aplicacion/informe).
* [Informe personalizable](proyecto-de-aplicacion/informe-personalizable).
* [ListView](proyecto-de-aplicacion/listview).
* [Lista QML](proyecto-de-aplicacion/lista-qml).
* [Localizador](proyecto-de-aplicacion/localizador).
* [Marco](proyecto-de-aplicacion/marco).
* [Menú](proyecto-de-aplicacion/menu).
* [Multivista](proyecto-de-aplicacion/multivista).
* [Protocolo TCP/IP](de-aplicacion-y-datos/proceso/comunicacion/protocolo-tcp).
* [Rejilla](proyecto-de-aplicacion/rejilla).
* [Rejilla avanzada](proyecto-de-aplicacion/rejilla-avanzada).
* [Toolbar](proyecto-de-aplicacion/toolbar).
* [ViewFlow](proyecto-de-aplicacion/viewflow).
