PC Shop — Aplicación de gestión desarrollada con Delphi 12

Aplicaciones, juegos y utilidades desarrolladas en Delphi Heaven, con capturas, avances, código fuente y versiones compiladas para Windows.
Responder
jaoj
Site Admin
Mensajes: 15
Registrado: Mar Jun 30, 2026 10:27 am

PC Shop — Aplicación de gestión desarrollada con Delphi 12

Mensaje por jaoj »

💻 PC Shop – semana 1-1 31/07/2026

🚀 Inicio del desarrollo

Hoy comienzo el desarrollo de PC Shop, una aplicación de escritorio para Windows desarrollada con Delphi 12 Community Edition.

El objetivo del proyecto no es crear un ERP complejo, sino construir paso a paso una aplicación sencilla, bien estructurada y completamente funcional que sirva como demostración técnica y como base para futuros desarrollos.

En esta primera jornada se ha realizado:

✅ Creación del proyecto VCL.
✅ Configuración del formulario principal.
✅ Diseño del menú principal de la aplicación.
✅ Creación del primer módulo: Gestión de Productos.
✅ Implementación de una primera interfaz con campos de edición, botones y una tabla para visualizar los productos.

La filosofía del proyecto será desarrollar pequeñas funcionalidades completamente operativas antes de pasar a la siguiente fase, documentando todo el proceso de forma pública.

🎯 Próximo objetivo

Separar la lógica de negocio de la interfaz mediante la creación de la clase TProducto, preparando una arquitectura más limpia y la futura persistencia de datos.

🚧 Estado: En desarrollo
🖥️ Tecnología: Delphi 12 Community Edition (VCL)
💻 Plataforma: Windows 10/11

#Delphi #Delphi12 #ObjectPascal #WindowsDevelopment #SoftwareDevelopment #InformatOli #PCShop #GitHub
jaoj
Site Admin
Mensajes: 15
Registrado: Mar Jun 30, 2026 10:27 am

Re: PC Shop — Aplicación de gestión desarrollada con Delphi 12

Mensaje por jaoj »

# PC Shop — Semana 1-3
## TProducto: comenzando la arquitectura del proyecto

Continuamos avanzando en el desarrollo de **PC Shop**, una aplicación de escritorio para Windows desarrollada con **Delphi 12 Community Edition**.

En esta sesión se da un paso importante en la arquitectura del proyecto. Hasta ahora el formulario de productos trabajaba directamente con los controles de la interfaz (`TEdit` y `TStringGrid`). A partir de este momento se comienza a separar la lógica de negocio de la presentación mediante la creación de la clase **TProducto**.

Durante la sesión se ha realizado el siguiente trabajo:

- Creación de la unidad `uProducto`.
- Definición de la clase `TProducto`.
- Incorporación de las propiedades básicas:
- Código
- Descripción
- Categoría
- Precio
- Stock
- Implementación del constructor `Create`.
- Creación del primer objeto `FProducto`.
- Modificación del botón **Guardar** para copiar los datos introducidos en el formulario al objeto `TProducto`.
- Actualización del `TStringGrid` para mostrar la información obtenida desde el objeto, en lugar de leer directamente los controles de la interfaz.

Aunque visualmente la aplicación apenas cambia, internamente se produce una mejora importante. La interfaz deja de ser la responsable de almacenar los datos y comienza a trabajar con un modelo de objetos, una base fundamental para mantener un código más limpio, organizado y fácil de ampliar.

Este cambio permitirá que en las próximas sesiones el proyecto evolucione de forma natural hacia la gestión de múltiples productos, la utilización de listas de objetos y, posteriormente, el almacenamiento permanente de la información mediante archivos JSON.

### Próxima sesión

En la **Semana 1-4** se sustituirá el único objeto `TProducto` por una colección `TObjectList<TProducto>`, permitiendo gestionar varios productos simultáneamente y preparando la aplicación para la futura persistencia de datos.

---

**Proyecto:** PC Shop
**Tecnología:** Delphi 12 Community Edition (VCL)
**Plataforma:** Windows 10/11
jaoj
Site Admin
Mensajes: 15
Registrado: Mar Jun 30, 2026 10:27 am

Re: PC Shop — Aplicación de gestión desarrollada con Delphi 12

Mensaje por jaoj »

💻 PC Shop — AGOSTO, Semana 1-1 — #POST 1

En esta primera jornada de agosto se incorpora una colección TObjectList<TProducto> para gestionar los productos de la aplicación.

La colección se configura como propietaria de los objetos que contiene. De esta forma, cada instancia de TProducto se libera correctamente cuando se elimina de la lista o cuando se destruye la colección al cerrar el formulario.

Trabajo realizado:

✅ Creación de TObjectList<TProducto>.
✅ Configuración de la colección como propietaria de los objetos.
✅ Integración de la colección con el alta de productos.
✅ Eliminación del objeto correspondiente al borrar una fila.
✅ Liberación correcta de la colección al cerrar el formulario.
✅ Sincronización entre los índices del TStringGrid y los índices de TObjectList.

Resultado:

Cada producto se almacena como un objeto independiente dentro de la colección. La tabla continúa mostrando los datos, pero la información comienza a gestionarse desde el modelo y no exclusivamente desde los controles visuales.

Próximo objetivo:

Se crea un procedimiento encargado de actualizar completamente el TStringGrid a partir de la colección de productos. Con este cambio, TObjectList<TProducto> se convierte en la fuente principal de información de la aplicación.

🚧 Estado: En desarrollo
🖥️ Delphi 12.1 Community Edition
💻 VCL para Windows 10/11
jaoj
Site Admin
Mensajes: 15
Registrado: Mar Jun 30, 2026 10:27 am

Re: PC Shop — Aplicación de gestión desarrollada con Delphi 12

Mensaje por jaoj »

💻 PC Shop — AGOSTO, Semana 1-2 — #POST 2

En esta segunda jornada de agosto se modifica la forma en la que el formulario actualiza el TStringGrid.

Hasta ahora, determinadas operaciones modificaban directamente las filas de la tabla. En esta sesión se crea el procedimiento ActualizarTablaDesdeColeccion, que reconstruye completamente el contenido del TStringGrid utilizando los objetos almacenados en FProductos.

Trabajo realizado:

✅ Se declara e implementa ActualizarTablaDesdeColeccion.
✅ Se ajusta automáticamente el número de filas.
✅ Se recorre TObjectList<TProducto>.
✅ Se muestran en la tabla las propiedades de cada producto.
✅ Guardar deja de escribir directamente en el TStringGrid.
✅ Eliminar deja de desplazar manualmente las filas.
✅ La tabla se actualiza después de añadir o eliminar productos.
✅ Se eliminan variables y código que dejan de ser necesarios.

Resultado:

FProductos constituye la fuente principal de información. El TStringGrid deja de almacenar o gestionar directamente los datos y se limita a representar visualmente el contenido de la colección.

Flujo actual:

Formulario

TProducto

TObjectList<TProducto>

ActualizarTablaDesdeColeccion

TStringGrid

Dificultad resuelta:

Al declarar ActualizarTablaDesdeColeccion sin implementar el método, Delphi muestra el siguiente error:

E2065 Unsatisfied forward or external declaration

El error se resuelve implementando el procedimiento correspondiente dentro de la sección implementation.

Próximo objetivo:

Permitir seleccionar un producto desde el TStringGrid, cargar sus propiedades en los campos del formulario y preparar la edición de productos existentes.

Commit conceptual:

refactor(productos): actualizar TStringGrid desde la colección de productos

🚧 Estado: En desarrollo
🖥️ Delphi 12.1 Community Edition
💻 VCL para Windows 10/11
jaoj
Site Admin
Mensajes: 15
Registrado: Mar Jun 30, 2026 10:27 am

Re: PC Shop — Aplicación de gestión desarrollada con Delphi 12

Mensaje por jaoj »

💻 PC Shop — AGOSTO, Semana 1-4 — #POST 4/4

Se completa la cuarta jornada de desarrollo de la semana reforzando el módulo de Productos mediante nuevas validaciones y un control más claro de los estados de alta y edición.

Trabajo realizado:

✅ Se validan todos los campos obligatorios.
✅ Se refuerza la validación numérica de Precio y Stock.
✅ Se impiden códigos de producto duplicados.
✅ Durante una modificación se permite conservar el código del propio producto.
✅ Se añade desde el diseñador VCL el indicador lblModo.
✅ El formulario diferencia visualmente Modo: Alta y Modo: Edición.
✅ Nuevo cancela correctamente una edición.
✅ Guardar devuelve el formulario al modo Alta.
✅ Eliminar limpia los campos y reinicia la selección.
✅ Se comprueba el funcionamiento conjunto de altas, modificaciones y eliminaciones.

Resultado:

El módulo Productos dispone ya de un flujo básico completo de alta, selección, modificación y eliminación.

FProductos continúa siendo la fuente principal de información y el TStringGrid únicamente representa visualmente el contenido de la colección.

Flujo actual:

ALTA

Validación

TProducto

FProductos

ActualizarTablaDesdeColeccion

TStringGrid

La edición sigue el mismo modelo:

Selección

Objeto TProducto

Modificación

FProductos

ActualizarTablaDesdeColeccion

Dificultades resueltas:

- Se evita utilizar un código perteneciente a otro producto.
- Se permite conservar el código del producto que se modifica.
- El formulario vuelve correctamente al modo Alta después de guardar, eliminar o pulsar Nuevo.
- Las nuevas validaciones mantienen operativas las funcionalidades anteriores.

Próximo objetivo:

Incorporar persistencia para almacenar FProductos en disco y recuperar los productos al iniciar nuevamente PC Shop.

Commit conceptual:

feat(productos): reforzar validaciones y estados de alta y edición

📊 AGOSTO — SEMANA 1: 4/4 jornadas completadas.
Responder