none
Realizar Croquis de Asientos o Butacas de Onmibus en .NET

    General discussion

  • Hola buenas tardes. Amigos me encuentro desarrollando un Sistema de Venta de Pasajes.

    Es una aplicacion de escritorio en C# y SQL 2000.

    Lo que me resulta un poco complicado es la forma en realizar el croquis que simule los asientos o butacas de un Omnibus. basicamente eh visto algunos sistemas y lo que lo hacen es colocar botones dependiendo del bus es decir si el bus es de dos pisos o si esque tiene 50 asientos en el croquis sale reflejado eso.

     

    Alguna idea que me puedan dar.. links . articulos les estare muy agradecido.

    Si esque alguien tiene experiencia en el desarrollo de este tipo de aplicacion me gustaria compartir experiencias.

     

    Saludos desde Perú.

    Monday, October 17, 2011 12:09 AM

All replies

  • hola

    no has evaluado ir a WPF ? o Silverlight

    ocupacion-butacas

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Monday, October 17, 2011 3:00 AM
  • Prueba este projecto, en si no representa un sistema completo o una solución pero te podria orientar.

    Venta Boletos Omnibus

    para este pequeño ejemplo he creado un control llamdo "Asiento" que vendria a representar el asiento en el omnibus, tambien he creado un UserControl llamado "Omnibus" el cual contrendra el control "Asiento", en este los puedes colocar como quieras

    ejemplo:

    y este controlo lo inserto en un formulario con el cual interactuara el usuario de la aplicación "ipoteticamente hablando"

     

    recuerda que solo es un ejemplo... nada aplicado a la vida real, pero te puede servir para orientarte en como hacer...

    por lo  menos así lo comenzaria yo, pero ya pensando un poco más, lo idea seria dejar todo esto a que el usuario lo pueda diseñar ¿Como así?, crear un formulario donde un usuario definira los asientos que tendra el omnibus y como estos estaran colocados y hasta podrias tener asientos de 1era. clase el cual seria representado por otro control con otra apariencia.

    así no tendrias que estar tu creando controles cada vez que cambie el bus, ya que la aplicación podria tener una opción para crear estos y estos los guardas en la base de datos para que el cuando crees horarios de viaje puedas seleccionar entre los modelos de omnibus disponibles y la configuración de asientos de estos....

    bueno!!!!... primero, lo primero... diseñar la aplicación y los posibles caso necesarios, luego vas adaptandola hasta que esta quede auto modificable....

    Salu2,

     

     


    Marvin E. Pineda

      ComboBoxMultiColumns

      NetBarControl

      TextEditor



    Monday, October 17, 2011 6:45 PM
  • Hola Marvin,

    Buen Trabajo,pero unas sugerencias:) 

    1. Cuando Ejecutes SetStyles llama después a UpdateStyles

    2. Esta bien que  preguntes por IsHandleCreated más seguro estás, pero no te hace falta.

    3. Cuando llames a Invalidate llama a Update

    4. Si puedes no heredes de control.

    4. Y Mas importante cuando crees SolidBrusch, Pen etc utiliza Using para garantizar que se hace Dispose.Fijate a que api se llama cuando se ejecuta Dispose en Brusch.

    [DllImport("gdiplus.dll", EntryPoint="GdipDeleteBrush", CharSet=CharSet.Unicode, SetLastError=true, ExactSpelling=true)]
    private static extern int IntGdipDeleteBrush(HandleRef brush);
    

    No he hecho test en .Net sobre que pasa con estas cosas y si el Recolector de memoria lo hace perfecto, pero hace unos años no hacer DeleteObject era un motivo de grandes fugas de memoria.

    Saludos,




    phurtado
    Monday, October 17, 2011 7:20 PM
  • Hola Marvin,

    Buen Trabajo,pero unas sugerencias:) 

    1. Cuando Ejecutes SetStyles llama después a UpdateStyles

    2. Esta bien que  preguntes por IsHandleCreated más seguro estás, pero no te hace falta.

    3. Cuando llames a Invalidate llama a Update

    4. Si puedes no heredes de control.

    4. Y Mas importante cuando crees SolidBrusch, Pen etc utiliza Using para garantizar que se hace Dispose.Fijate a que api se llama cuando se ejecuta Dispose en Brusch.

     

    [DllImport("gdiplus.dll", EntryPoint="GdipDeleteBrush", CharSet=CharSet.Unicode, SetLastError=true, ExactSpelling=true)]
    private static extern int IntGdipDeleteBrush(HandleRef brush);
    

     

    No he hecho test en .Net sobre que pasa con estas cosas y si el Recolector de memoria lo hace perfecto, pero hace unos años no hacer DeleteObject era un motivo de grandes fugas de memoria.

    Saludos,




    phurtado

    Hola Pedro,

    entiendo,

    hay algunas cosas que depende en que estas trabajando las aplicas... por ejemplo el IsHandleCreated... como acostumbro a trabajar con controles anidados en ocaciones es mejor ponerlo así que se hace costumbre, luego comienzan a rebotar los errores y ni tienes idea de porque y ya me ha pasado...

    Invalidate... lo prefiero mas que update... según la experiencia que he tenido con estos...

    ¿no heredar de control? Why, Because, porque? si todos los controles de .Net heredan de este?

    con respecto a usar Using pos nunca he tenido la necesidad ni he tenido errores sobre liberar los recursos....

    pero gracias por los consejos, los tomare en cuenta...

    Salu2,


    Marvin E. Pineda

      ComboBoxMultiColumns

      NetBarControl

      TextEditor



    Monday, October 17, 2011 7:27 PM
  • Hola Marvin,

    hay algunas cosas que depende en que estas trabajando las aplicas... por ejemplo el IsHandleCreated... como acostumbro a trabajar con controles anidados en ocaciones es mejor ponerlo así que se hace costumbre, luego comienzan a rebotar los errores y ni tienes idea de porque y ya me ha pasado...

    En los controladores de eventos del Mouse no lo necesitas y en las propiedades yo nunca lo he utilizado, pero ya te he dicho que esta bien que lo hagas.

    Invalidate... lo prefiero mas que update... según la experiencia que he tenido con estos...

    Simplemente ejecuta los dos.

    ¿no heredar de control? Why, Because, porque? si todos los controles de .Net heredan de este?

    Sí, pero te ahorra un montón de problemas que te resuelve UserControl y la verdad que poco ahorras a día de hoy.

    con respecto a usar Using pos nunca he tenido la necesidad ni he tenido errores sobre liberar los recursos....

    Esto hazlo siempre de verdad, que cuesta poco.

    Saludos,



    phurtado
    Monday, October 17, 2011 7:37 PM
  • deberas que en los eventos MouseEnter y MouseLeave coloque el IsHandleCreated... jejejeje...  a saber en que andaba pensando... creo que tenia prisa por ir a almorzar....

    Marvin E. Pineda

      ComboBoxMultiColumns

      NetBarControl

      TextEditor



    Monday, October 17, 2011 7:44 PM
  • Hola Marvin,

    Espero te haya sentado bien el almuerzo:) pero acuérdate del using por favor.

    Saludos,


    phurtado
    Monday, October 17, 2011 8:01 PM