Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Crear Un Plano De Un Cementerio (https://www.clubdelphi.com/foros/showthread.php?t=29147)

oscarsanta 13-01-2006 12:06:36

Crear Un Plano De Un Cementerio
 
Hola compañeros. Soy bastante novato en delphi y tengo un interesante nuevo reto: informatizar el cementerio de mi pueblo. :eek: :eek:

Para ello he pensado crear un plano del cementerio con todas sus calles, donde los nichos realmente serían botones-imagen con distintos tamaños. ¿Que os parece la idea? Quizá haya otra manera más rapida y eficaz...

También he pensado que cuando un nicho esté ocupado cambie de color. ¿Me podéis explicar como hacerlo?

Acepto todo tipo de sugerncias y comentarios.
Muchisimas gracias. :D :D

Neftali [Germán.Estévez] 13-01-2006 12:25:25

No das muchas explicaciones, simplemente una idea general.

A nivel general, puedes conseguir eso, con un formulario en el que coloques una imagen de fondo con el plano (TImage) y unos cuantos Shapes de colores que crees encima; Puedes utilizar los componentes de mi Web: TSelectOnRuntime para poder mover y redimensionar los Shapes (nichos) y TSaveComps para guardar su tamaño y posición entre ejecuciones.
Con un par de procedimientos que te permitan crear y eliminar un nicho casi lo tienes completo.

Lo que no explicas y posiblemente te de la idea de si con algo así, tienes suficiente o no, es qué necesitas hacer después con esos objetos (= nichos). Las operaciones que necesites realizar con ellos tal vez te den pista de si una impementación como éste te es suficiente.

oscarsanta 13-01-2006 13:47:36

Muchas gracias neftali. Me ha parecido muy interesante tu idea. De hecho el lunes intentaré comenzar con ella.

Con los nichos lo que debo de hacer es que cuando se clickea en alguno de la opción de introducir 'ataud', quitar 'ataud' o ver los datos de los enterrados en es nicho.

Pero al ser mi primer programa en delphi supongo que no me será tan facil como parece...:( :(

ContraVeneno 13-01-2006 16:22:51

¡Tétrico! :D

Al ser tu primer programa, asegurate de conocer exactamente TODO lo que se va a necesitar hacer, que información van a requerir y que reportes van a necesitar.

Lo más seguro es que a tus clientes se les vayan ocurriendo miles de cosas nuevas a mitad del proceso de desarrollo (ejemplo: el día de la junta de revsión el jefe te dice: "Muy bien, pero a mi me gustaría que -inserte idea loca aquí-, ¿lo podrás acomodar?"). Algunas ideas se podrán implementar sin problemas, pero algunas te aseguro que requeriran de muchos cambios y complicaciones. Por esto la recomendación es que tengas todas tus especificaciones y requerimientos bien especificadas desde un principio.

roman 13-01-2006 16:45:05

Cita:

Empezado por ContraVeneno
Lo más seguro es que a tus clientes se les vayan ocurriendo miles de cosas nuevas a mitad del proceso de desarrollo

No, pues yo creo que a sus clientes ya no se les ocurrirá nada.

:D

// Saludos

mamcx 13-01-2006 17:27:22

Pienso que siendo tu primer programa deberias ir por algo mas simple. Entrada y salida de datos planos.

Lo de introducir, ocupar y retirar ataudes es como un sistema de inventarios. Es muy simple de hacer.

Lo de la representacion grafica parece interesante pero personalmente lo dejaria mas como un informe que como una interfaz de entrada de datos, aparte que es mas simple generar la imagen que programarla.

Por otro lado, es muy divertido hacer programas asi, pero quizas deberias irte por lo mas simple primero (y aburridor) pues como dice contraveneno iran levantandose muertos de quien sabe donde, y es alli donde vas a necesitar no solo poder especificar y negociar muy bien las cosas, sino cada minuto que puedas.

Asi que aprende este prinicipio de programacion: KISS (en español: Mantenlo simple, idiota!!!!).

Como un proyecto alterno podrias ir experimentando lo de hacerlo interactivo, pero manten la linea principal del proyecto simple, asi si te quedas corto de tiempo es mejor dejar de lado la interatividad 3d que las funciones indispensables del sistema...

marcoszorrilla 13-01-2006 18:19:47

Lo primero de todo:
Requiescat in pacem qui mortus sunt.

Yo guardaría en una tabla los datos:
1.- Del finado:Nombre, etc
2.- Posición de la tumba y dimensiones

De esta manera al cargar el formulario principal, en el que aparecerían las calles del cementerio y al pulsar en un enlace cargaria la calle xxx cuyos coordenadas etc, estarían guardadas en una tabla....


Un saludo gestual y silente.

OSKR 13-01-2006 18:53:22

Iba a mencionar algo parecido:
Cita:

Asi que aprende este principio de programacion: KISS (en español: Mantenlo simple, idiota!!!!).

oscarsanta 14-01-2006 00:45:43

Contraveneno, tienes toda la razón. Se puede decir que eso ya lo he vivido "en mis carnes", hay jefes de lo mas coñazo!. Tengo experiencia con C++ y access, pero delphi... es otra cosa.

Mamcx, quería decirte que la interfaz gráfica es necesaria porque es lo primero que me han "exigido" (sin interfaz gráfica lo habría exo en Access y sin conmplicarme mucho;)). Así que el plano del cementerio debe de salir sea como sea...:o

Marcoszorrilla no entiendo muy bien tu idea, si me explicas un poquito quizá sea interesante:D

Gracias a todos. Sois geniales. Aquí me tenéis pa lo q qerais.

marcoszorrilla 14-01-2006 17:41:48

Pues te resumo mi idea, como supongo habrá muchas tumbas, presentarlas todas en un formulario y que puedan vers correctamente supongo que no sería factible.

Si consideramos que lo máximo que podemos representar para que se muestre convenientemente el "camposanto", es 1/6 del mismo.

Yo haría algo así.
Divisiones
1. Nordeste -
2. Nordoeste
3. Centroeste
4. Centroeste
5. Suroeste
6. Suresete

Situaciones
1. Hilera izquierda
2. Hilera derecha.

NumOrden
1 . La primera
.....
20 La última

Vertical.
1.- abajo
2.- 1 Piso
3.- 2 piso
4.- 3 Piso

Coordenadas Bloque
1.1.1.1 40,40 (Al cargar el formulario sabríamos donde dibujar los bloques, que pueden hacerse con simples Tpanels. 40,40 serían las coordenadas para dibujar el Tpanel Top y left).

Tumbas
1.2.3.4 - situación( Nordeste, Hilera derecha, Bloque 3, 3 piso)
Pepe Pérez (nombre del finado)

En síntesis porque no tengo tiempo para extenderme mucho más, tendríamos un plano general del cementerio, divido en 6 partes, puede ser un formulario con 6 Tpanels en los que ponga el nombre de cada zona.

Al pulsar en uno de ellos se abrirá un formulario con la disposición de las tumbas de esa zona, como tenemos guardadas sus coordenadas no sería más que crear tantos Tpanels al vuelo como bloques existan, teniendo en cuenta también las alturas hasta donde llegan los nichos.

Al pulsar en un nicho como tenemos la información sobre el mismo, puede cargarse en cada Tpanel aprovechando su propiedad Tag dicha información de tal forma que al pulsar en uno de ellos nos busque en la tabla correspondiente el nombre del finado y otros datos que se hayan guardado previamente.


Se trata de una idea general, queda desarrollarla, completa, en parte, como base o simplemente optar por otra propuesta que te parezca mejor.

Un Saludo.

marcoszorrilla 14-01-2006 17:58:42

En cuanto al principio de programación, hablando en serio, eso es cosa de americanos.

Si a mí alguien se le ocurre hacerme esa observación, me refiero en la vida real, el día a día, por ejemplo un personaje peinado hacia atras, muy hacia atras.

1.- Distinguido señor, dada mi constitución hacer simplezas es algo que me cuesta un gran esfuerzo, no dudo que su pedido provenga de su naturaleza acompleja y acompuesta, si las cosas fueran tal parecen ser, sería gran estulticia pagar a un idiota para que programe y máxime si el trabajo es simple, en definitiva si siguieramos el análisis a tenor de su frase soez y falta de respeto no llegaríamos más que a la triste conclusión que está falto de conocimientos para evaluar la situación y dar respuestas inteligentes y válidas a la misma, por lo que ni el trabajo es simple ni quien lo realiza es idiota. Si optaramos por ingenieria inversa llegaríamos posiblemente al planteamiento contrario y así partiendo del falso final llegaríamos al verdadero principio.

2.-No me gusta la violencia.



Programación KMA = Kiss my ash.

Un Saludo complejo y respetuoso.

oscarsanta 15-01-2006 01:59:33

Perfecto. Creo que lo he entendido...:confused::D. El lunes me pondré a investigar más sobre Tpanels porque estoy un poco verde y ya te cuento...

Delphius 16-01-2006 07:45:42

Espero que te sirva
 
Si eres novato en Delphi, te recomiendo (guau... un novato recomendando a otro:D ) que leas la Cara Oculta de Delphi. Se puede descargar para la versión 4. Si tienes otra versión da igual, es sólo para orientarte. No me acuerdo el link pero si buscas en San Google lo encontrarás muy rápido;) .

Si quieres saber sobre TPanels, ve a la ayuda (no hay que ir muy lejos). Que allí hay algo.

Recuerda, tal como te lo han comentado (indirectamente) varios intenta desarrollar tu aplicación en tres capas:
Capa 1: La que corresponde con la Interfaz.
Capa 2: La que corresponde con la Lógica: se encargará de realizar las operaciones necesarias con los datos. La cual estará formada por ejemplo: los objetos, clases, etc.
Capa 3: La que corresponde con los Datos (léase Estructura de Datos): que mantienen o guardan los datos a usar de acuerdo con una estructura. Por ejemplo: Archivos, BD, etc.

Como mencionas que sabes manejarte con Access lo mas seguro es que te resulte desarrollar una buena BD relacional que refleje el mapa. La idea aportada por marcoszorilla está muy buena.
No está demás aclarar que debes buscar la manera de mantener lo más INDEPENDIENTE a cada capa de la otra.

Según te haces notar (por lo menos así lo entiendo yo) tu prioridad es la capa 1 y debería ser también la capa 2, ya que ambas dependen del lenguaje.

oscarsanta 16-01-2006 09:56:10

Gracias Delphius pero en la reunión de hoy ha habido un cambio de planes (pa variar:eek: :eek: ) y ahora tan sólo introducir, borrar y cambiar nichos de una base de datos y mostrar un nicho determinado en el plano.
Ya no quieren interactuar con el plano (mejor pa mí, no?:D ). Con mostrar un nicho (definido por un bloque, una tramada y una fila) remarcado en el plano es suficiente.

¿Como puedo conectar el plano con la base de datos para que un nicho de uno corresponda a un cuadradito de otro?
¿Con TPanels se puede hacer?

1000 gracias.

Neftali [Germán.Estévez] 16-01-2006 14:02:54

En un mensaje anterior hice referencia a dos componentes que existen en mi Web (SaveComps y SelectOnRuntime) que se pueden utilizar para implementar problemas similares al tuyo.
La verdad es que "nacieron" con la idea de resolver éste mismo problema; En general el que se presenta cuando tenemos un plano y sobre el plano se deben colocar elementos, que luego se "tratan".
En éstos sistemas existen dos modos de funcionamiento:
* Administrador: Sirve para configurar el plano, los objetos y en general el área de trabajo que luego se va a utilizar en el "modo de explotación".
* Modo "Explotación": Es el que se utiliza "día a día"; El modo de trabajo, por decirlo así; Y utiliza el escenario configurado con el modo Administrador.

Durante lo que llevo programando ya me he topado con varias aplicaciones con ésta misma "problemática"; Una planta de hospital y las camas, un restaurante y las mesas, un plano de explanada y los contenedores y finalmente el cementerio y los nichos; La base de todos es la misma...

Todo ésto viene a que hace tiempo que quería realizar un demo con ambos componentes, para mostrar cómo se podían aplicar a éste tipo de problemas. Bien, el otro día tuve un rato y hice una sencilla;
La he subido a mi web, y cuando tenga un rato comentaré y actualizaré la página. Por ahora, tienes el link disponible por si te sirve, aquí.

Espero que te sea útil. Si tienes dudas o comentarios no dudes en hacérmelos (por supuesto, esto es extensible a los demás).

Un saludo.

Neftali [Germán.Estévez] 16-01-2006 19:03:13

Ok, ya he actualizado la página con una leve descripción y los enlaces de descarga; Está disponible aquí.

oscarsanta 17-01-2006 11:11:59

Nefatlí eres un crack macho!! Eso es justo lo que tengo que hacer. Le diré al ayuntamiento que este mes tengo q compartir mi nómina contigo...(es broma ehhh:D :D :D )Estoy investigando sobre tu demo para aprender a hacerlo pero por ahora sin mucho éxito.
Muchas gracias por tu ayuda.
1saludo.


La franja horaria es GMT +2. Ahora son las 07:40:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi