Dar el paso:prog.consola-->prog.gráfica

Buenas!

Tanto tiempo sin postear y de repente vuelvo con dos mensajes dando el coñazo...

Hay una duda de programación que siempre he tenido, jeje! Amo a vé. Se supone que ya sé C/C++ y que aprenderé VB.NET como muchos otros lenguajes durante la carrera, ok. Hasta aquí todo bien. Pero es que de momento y exceptuando ahroa que empiezo con VB.NET toda la programación que he hecho es para ejecutar en modo consola. Mi pregunta es la siguiente... ¿cómo pasar de programación orientada a consola a hacer programas con ventanitas y esas cosas?

Puede parecer estúpido, pero es que no tengo ni idea de cómo va el tema. Sé que C y C++, como otros lenguajes, valen para ello, pero no sé qué ingrediente añadir. ¿Dónde puedo buscar información y aprender algo? Supongo que después de horas programando, siempre me apetecería ver el resultado en un bonito programa con ventanitas y colores que en una consola. Que no me quejo, si la consola me gusta, pero es por seguir aprendiendo ;).

Gracias.

Un saludo.
No se si la definicion es la mejor, pero la "gráfica" trabajas con objetos, los cuales tienen propiedades y son llamados por diferentes "eventos"

A ver si hay por aqui algun guru de la programacion lo define mejor.

Por cierto, si quieres sacar el máximo provecho, mirate Delphi, de lo mejor

saludos !!!
¿VB en una carrera? Que cosa más rara :?

Lo mejor es que cojas documentación de alguna librería gráfica como las Qt, y que revises software libre ;)
Bueno, voy a intentar ayudarte (en vista del exito hasta ahora :D )..

Antes una nota para los que no lo sepan: VB.Net no tiene mucho que ver con VB, precisamente el sufijo .Net lo distingue.. es un lenguaje orientado a objetos y completamente integrado en los tiempos actuales.. de hecho, optar por él o por C# es solo una cuestión de gustos..

Bien, vamos al otro tema.. La programación en entornos gráficos no tiene que ver con los objetos.. de hecho si sabes C++ sabrás que está orientado a objetos y puedes definirlos sin que necesariamente tenga que interactuar con la parte gráfica...

Lo que sí es cierto es que, al menos en Windows, todo se mueve mediantes mensajes... tanto entre el sistema operativo y las aplicaciones, como entre las aplicaciones en sí mismas... de todas formas a ti te da igual, porque el lenguaje de programación hará todo esto bastante transparente para ti..

En realidad cuando empieces a programar en un entorno gráfico, deberás ir arrastrando componentes del tipo: Ventana, campo de texto, lista de valores, botones, etc... y luego asociarás código a distintos eventos que pueden ser disparados.. tanto de manera automática como provocados por otras acciones.. por ejemplo la pulsación de un boton, o el haber escrito en un campo de texto...

Al principio te resultará extraño, pero verás que en realidad y siempre y cuando no empieces a profundizar mucho... está chupado.. Yo pasé por lo mismo que tu, cuando acabé la carrera no había hecho una aplicación windows decente.. lo más fue en informática gráfica, pero nos montamos el entorno nosotros mismos :D ... claro que a lo mejor es porque cuando yo estudiaba no existían esas cosas [+risas]... ains.. disculpa al abuelo, que se emociona :P

En cuanto al lenguaje, ya te he dicho que VB.Net está bien.. estaría mejor el C# ya que te abriría el conocimiento de manera paralela a Java.. pero bueno, al menos conseguirás hacer cosas chulas...

Suerte..
Gracias por todas las respuestas, ahora otra tandita más, si no es abusar de la generosidad...

Ok, ya he entendido, aunque sí tenía cierta idea, de cómo va lo de los eventos y demás... pero mi duda, que puede parecer muy absurda pero prefiero preguntarla y aprender, es: ¿cómo relaciono el código con lo gráfico? Churly supongo que se referirá a eso con las Qt, supongo que habrá un entorno de desarrollo mediante el cual se diseñará esa parte gráfica y luego de alguna forma te permitirá definir el código... no sé.

Básicamente mi estúpida duda es esa. Veamos un ejemplo "real". Imaginemos un juego que sea un manager de fútbol, sin partidos reales ni nada que necesiten de un motor gráfico ni nada similar. Yo sé que hará falta diseñar todos los componentes gráficos de la interfaz, que el juego, por ejemplo, se desarrollará en C++, y que para la intelifencia artificial del juego se suele utilizar LISP. Vale, pero... ¿cómo leches se une todo eso?

Obviamente, no necesito que explayeis y os matéis en una aplicación. Es sólo que es algo que no sé por donde coger, y con una pequeña guía ó indicación ya puedo empezar a buscarme la vida.

Ains... qué duro esto de la ignorancia.

Muchas gracias a todos.

Un saludo!
Es que normalmente todo se programa en el mismo lenguaje, es decir, tu no diseñas con un lenguaje o aplicación y programas con otro diferente...no es lo habitual (aunque hay maneras de hacerlo), por tanto y cuando arrastras un elemento tipo gráfico, en la asociación de código lo referencias por su nombre directamente e interactuas con él mediante sus métodos, propiedades y eventos..

En cuanto a la integración de diferentes módulos, hay maneras de hacerlo, por ejemplo puedes encapsular funciones hechas con C++ en objetos COM y acceder a ellos desde tu código VB, por ejemplo...

De todas formas para eso la .Net es cojonuda, ya que todos los lenguajes que soportan .Net acaban generando el mismo código intermedio (IL).. que será más o menos optimo en función del lenguaje que hayamos usado.. pero como puedes ver, simplifica mucho el concepto de integración de diferentes lenguajes ya que los proyectos soportan directamente todo tipo de código sin preocuparte de meterlos en DLL's ni nada..

En cuanto a una guía para empezar, pues en el otro hilo te he pasado un link que te servirá para moverte por muchos sitios y acceder a muchos ejemplos de código..

Ánimo :D
Hola de nuevo sapison que no me había olvidado.

Mmm... lo que dices del lenguaje de diseño y que no se implementa con otro diferente, no lo acabo de pillar muy bien. Digo yo que el proyecto de un programa se realizará en UML especificando todo y demás, ¿me equivoco? Es que no tengo mucha idea, pero tengo entendido que es así. Luego eso ya lo implementas con el lenguaje que consideres.

Pero mi ejemplo era el de un juego. Hasta donde yo sé (y éste es otro tema que nunca he tocado) se suelen programar en C++ prácticamente todo, pero para la parte de inteligencia artificial creo que se usa LISP. Si hay otra forma de hacerlo, no lo sé. Pero en ese caso, mi duda es ¿cómo se relacionan los módulos de LISP y de C++? ¿Para eso sirven las DLL? Puede sonarte muy tonto ó muy básico, pero es que no tengo ni idea de qué técnicas se utilizan para combinar todas esas cosas. Si supieras decirme más o menos el nombre que tiene eso en programación, yo ya me busco la vida.

Y al igual que eso, luego todo el código lo relacionas con una interfaz gráfica, que es mi gran duda. Supongo que eso depende de con qué lo vayas a implementar, si con Windows.Forms ó qué. Supongo que en función de la interfaz que elijas el código variará. Windows.Forms tendrá un código para relacionarlo con C, y en otros el código será distinto.

Ay dios... lo dejo porque me estoy haciendo un lío, y estoy haciendo un lío a todo el mundo. Qué desastre, jajaja!

Gracias.

Un saludo.

P.D: Gracias por la dirección, ya le empecé a echar un vistacillo el otro día. Creo que aprenderé lo básico de VB.NET que me pueda servir para la universidad y luego ya iré a por C# más en serio.
Dió mio, que "cacao" que llevas XD

A ver, vamos por partes: UML. UML se utiliza para representar modelos de aplicaciones o sistemas orientados a objetos (Normalmente, aunque puede representar en su nivel más alto de abstracción, cualquier sistema). Hay plugins para .Net (por ejemplo) que son capaces de generar desde un digrama UML, las clases que se corresponden, con sus métodos, propiedades, etc... UML se suele emplear en la parte de análisis y diseño, pero no en la programación necesariamente. También muchas veces se obtiene el diagrama de clases cuando ya has generado la aplicación para hacer un poco de Reingeniería (Inversa, en este caso)... De todas formas llegar al nivel de especificarlo todo el UML, que además es superabierto, es bastante complicado y muchas veces incluso innecesario...

En cuanto a los distintos lenguajes, ya te lo expliqué.. se trata de encapsular las funciones dentro de librerías accesibles desde otros lenguajes.. en el caso de .Net, es muy sencillo, pero hay que hacerlo.. una vez encapsulado, se referencian en tu proyecto y llamas a los métodos que tengas ahí. Yo estuve metido hace tiempo en temas de videojuegos (como hobby más que nada) y la verdad, jamás me enteré que nadie utilizara LISP para la parte de inteligencia artificil. LISP es un lenguaje funcional muy apto para matemáticas y sobre todo para aprendizaje de este tipo de lenguajes.. dentro de este tipo tenemos PROLOG y algún otro.. De todas formas aunque alguien lo programara, dudo que pudieras encapsularlo en alguna DLL para ser utilizado por otros programas.. Los juegos se escriben normalmente de manera íntegra en C++

Ya para finalizar, no es que se relacione de manera alguna C con la parte gráfica.. es que si utilizas un lenguaje tipo C++, C#, Delphi, VB.Net, etc.. ya tienes los objetos de tipo gráfico disponibles para ser utilizados en tu aplicación... entiendes?.. Lo mejor será que vayas haciendo ejemplos y lo veas por ti mismo...
Wenas otra vez!

Lo de UML, sí, sé para lo que sirve y que sólo es para el análisis y diseño, no para la programación. Lo que no sabía es que existían esa clase de plug-ins, pueden ahorrar bastante trabajo al menos para empezar, no?

Bueno, quitando eso, por lo demás... ya te dije que lo del LISP es algo que yo tenía como cierto, pero para nada fundamentado. Sólo es algo que creía que era así, vete tú a saber por qué. Si los juegos están escritos íntegramente en C++, por ejemplo, ¿cómo se desarrolla la IA? Me interesa mucho este tema. Es que yo, por hobby y aprender un poco, quería ir haciendo como te dije, un manager de fútbol (porque es un tipo de juego que no necesito motor gráfico ni nada, no?). Obviamente sin ningún objetivo más que para ir aprendiendo, pero me fallaban las dos cosas: la intelifgencia artificial, y la interfaz gráfica. ¿Sabes cómo podría aprender a programar IA en C++?
Aparte, lo de la interfaz, que sé que soy un coñazo... pero a ver. En cualquier juego la interfaz y eso, supongo uqe está creada por los diseñadores de la empresa que creen el juego. En un manager, los menús, las opciones y todo eso... los botoncitos y demás te van llevando a distintas partes del juego y puedes hacer unas cosas u otras. Bien, pues... cómo se hace para que al darle a ese gráfico creado por ti, ejecute el código C++? ¿Qué programas se utilizan para ello?

Por otra parte, lo de la encapsulación de .NET está más que interesante! Precisamente de todo eso hablaba de Icaza (el creador del proyecto mono, como te he puesto en el otro post), aludiendo el gran juego que da eso a un programador.

En fin, sapison, menuda losa te ha caído conmigo. De verdad que lo siento. Si puedes responder cuando no te sature, pues adelante y si no lo entiendo, que es un coñazo tantas preguntas, de verdad.

Muchas gracias por todo.

Un saludo.
8 respuestas