Autor Tema: Consultas, comentarios y ejercicios del curso de C# (Deitel)

0 Usuarios y 1 Visitante están viendo este tema.

18 Enero, 2010, 04:30 am
Respuesta #30

argentinator

  • Consultar la FIRMAPEDIA
  • Administrador
  • Mensajes: 7,277
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
  • Vean mis posts activos en mi página personal
    • Mis posts activos (click aquí)
Avalo, te voy a pedir algunas cosas, pero te pido paciencia, porque estoy descubriendo estas cosas junto con vos.

Primero crearemos un proyecto "test", y después probamos una posible solución.

1ro: crear proyecto. Pasos:

* Abrí el programa en Monodevelop.
* Creá el proyecto de la aplicación dentro de monodevelop (si te parece: test_Gtk).
* En el explorador de soluciones, clic secundario en el nombre del proyecto test_Gtk, y allí "Agregar nuevo elemento". Elegir "Archivo en blanco" o "Empty file". Le ponés el nombre, por ejemplo, test_gtk.cs.
* Ahora escribís esto en ese archivo

class Test_GTK
{
    static void Main(string[] args)
    {
        Gtk.Application.Init();
    }
}



* Guardás todo.

* Ahora vas al explorador de soluciones, clic botón secundario, y vas a "Opciones"
  Ahí se pueden ajustar las opciones de la plataforma.


2do paso. Ver si se arregla:

Probemos suerte con esto:

* En la lista de la izquierda hay varias opciones: General, Construcción, Ejecutar, etc.

* Andá revisando esas pestañas, y buscá las opciones en las que diga "Plataforma". Fijate que opción es la que está elegida. La única que yo tengo es "x86" y me funciona. Creo que esa es la que arregla todo. Si tenés algo como Itanium, o algo por el estilo, cambialo a x86.

Por ejemplo, veo esas opciones de "plataforma" en "Construcción/Compilador": En esta prestá atención a la opción que dice "Platform target", y fijate las opciones. Creo que ahí tenés que elegir "x86". O bien probá con "Cualquier CPU".

También aparece en otras pestañas, como en "General/Comandos personalizados", o en "Ejecutar", etc. Pero me parece que obedecen a la de "Construcción/Compilador".

Después clic en OK.

Y por último: Guardar todo, así se guarda el proyecto con la nueva plataforma.

Acordate también de agregar todas las Referencias de las librerias de gtk que te vaya pidiendo. La principal que hay que agregar es la de gtk-sharp.
Las otras no sé si hacen falta para el test.


Fijate si con eso te funciona.

Supongo que en el Visual Studio hay opciones parecidas, pero no las encuentro en este momento.
Debieran estar en el menú Generar...
Pero lo importante es que en al menos uno de los dos IDEs te funcione.
Después vemos con más tiempo cómo se hace en el Visual.


18 Enero, 2010, 10:17 pm
Respuesta #31

argentinator

  • Consultar la FIRMAPEDIA
  • Administrador
  • Mensajes: 7,277
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
  • Vean mis posts activos en mi página personal
    • Mis posts activos (click aquí)
¿Y Avalo?

¿Te siguen tirando error los proyectos con este "cambio de plataforma" hacia x86 que te sugerí?
¿O se arregla con eso?

Yo estuve probando el ejemplo que habiamos llamado Bienvenido_GUI_GTK.
Me fui al proyecto, en la parte de "Opciones", y estuve tocando las opciones de plataforma en "Construcción/Compilador".
Cuando puse "Itanium" me dio error. Al parecer compilé para un sistema distinto al que tengo.

Luego cambié a x86, y todo bien.

Tendrías que probar las distintas opciones, y ver cuál es la que funciona en tu máquina.
La plataforma x86 tendría que funcionarte bien.
Si no, probá alguna de las otras.

18 Enero, 2010, 11:45 pm
Respuesta #32

Avalo

  • $$\Large \color{red}\pi\,\pi$$
  • Mensajes: 40
  • Karma: +0/-0
  • Sexo: Masculino
Hola, no sé  :( ,¿Cómo añado el texto al documento vacío, una ves creado esta en el explorador de soluciones pero no me sale 'en blanco' para empezar a escribir o editar, ¿Cómo hago para editar? o sea es distinto al Visual C#, que al crearla ya te sale en blanco.

Además las opciones al comenzar son: Nuevo:
Archivo
Solución
Workspace

No Nuevo:Proyecto pero elegí Solución para trabajar.

Luego haciendo click der, no me sale: Agregar nuevo elemento sino Añadir (supuse que era esa). Y seguido a eso las opciones par indexar son:
a)Añadir nuevo proyecto...
b)Add existing Project
c)Añadir carpeta de solución

Allí escojí la primera es aquí que aparece entre las tantas opciones de plantillas, proyecto vacío.

¿Es así o no?¿Y cómo hago para editar el documento vacío? Saludos y Gracias ;)

"Se habla espaÑol"

19 Enero, 2010, 12:15 am
Respuesta #33

argentinator

  • Consultar la FIRMAPEDIA
  • Administrador
  • Mensajes: 7,277
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
  • Vean mis posts activos en mi página personal
    • Mis posts activos (click aquí)
Hola.

En los ejemplos estuve explicando cómo se trabaja en Monodevelop

Pero no hay problema. Acá vamos de nuevo.

Archivo/Nuevo/Solución...

Ahi se abre una ventana con opciones.
En la lista de la izquierda seleccionar la de más arriba que dice C#.
A la derecha aparece la opción "proyecto vacio" o "empty project".

Marcás esa, y en la misma ventana abajo le ponés un nombre, por ejemplo: "testgtk".
Finalmente, clic en "Forward"
Luego clic en "OK".

Ahí se terminó de crear el proyecto.

Ahora viene el archivo en blanco:

Vas a la parte izquierda, y está la ventana "Solución" con el nuevo proyecto listado.
Ahí hacés clic con el botón derecho sobre el nombre de proyecto "testgtk", y aparece un menú: vas a "Agregar.../Nuevo archivo".
Aparece un panel. A la izquierda hay que elegir "General" y a la derecha luego "Empty File" o "Archivo en blanco".
Abajo se escribe un nombre de archivo, como "test.cs", y después clic en "New".

Ya debiera estar listo para editar.
Ahí dentro de la ventana de "test.cs" podés insertar el código que te pasé acá, o si preferís, el código del ejemplo GUI_GTK de la teoría.
A lo mejor convenga que pruebes este directamente, así no damos tantas vueltas.
Pegás el código del ejemplo, y guardás todo. "Archivo/guardar todo".



Ahora viene lo del cambio de plataforma.
Vas de nuevo al nombre del proyecto, botón secundario, y vas hasta abajo donde dice:."Opciones".

Se abre uha ventana. En el panel izquierdo hay una lista de cosas.
Vas a "Construcción/Compilador", o "Build/Compiler"y te fijás en las opciones que aparecen en el panel de la derecha.

Fijate qué dice en la opción "Platform target" en el panel derecho.
Tratá de elegir la opción "x86",

Después andá arriba, en donde dice "Configuraciones", y a la derecha, clic en "Add".
Ahí habría que agregar Debug/x86 y también Release/x86.

Esto por las dudas, por si no está en la lista.

Después abajo clic en "OK".

De nuevo "Guardar Todo" y ahora para probar el programa: "Ejecutar/Ejecutar"


19 Enero, 2010, 01:32 am
Respuesta #34

Avalo

  • $$\Large \color{red}\pi\,\pi$$
  • Mensajes: 40
  • Karma: +0/-0
  • Sexo: Masculino
Por fin,  ;D gracias, por "el paso a paso" ahora solo falta que haga lo mismo en el Visual C#.
"Se habla espaÑol"

19 Enero, 2010, 01:39 am
Respuesta #35

argentinator

  • Consultar la FIRMAPEDIA
  • Administrador
  • Mensajes: 7,277
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
  • Vean mis posts activos en mi página personal
    • Mis posts activos (click aquí)
Bien, pero ¿el programa se ejecutó bien? ¿Sin errores? ¿Mostró el cartelito?

En el Visual no sé cómo es.
Si lo encontrás avisame.

Lo único malo es que me parece que esto de cambiar la plataforma habrá que hacerlo en cada nuevo proyecto.
No conozco la forma de dejarlo predetarminado... debiera haber una.
Voy a seguir investigando, pero ya me va a llevar más tiempo, supongo.

19 Enero, 2010, 02:15 am
Respuesta #36

Avalo

  • $$\Large \color{red}\pi\,\pi$$
  • Mensajes: 40
  • Karma: +0/-0
  • Sexo: Masculino
Sí, en el mensaje anterior esta adjunto el screenshot.  :D
"Se habla espaÑol"

19 Enero, 2010, 02:24 am
Respuesta #37

Avalo

  • $$\Large \color{red}\pi\,\pi$$
  • Mensajes: 40
  • Karma: +0/-0
  • Sexo: Masculino
En mi configuración por Default aparce ya x86, así que por eso no te preocupes y en el Visual c# pues si no sabemos.
"Se habla espaÑol"

19 Enero, 2010, 02:36 am
Respuesta #38

argentinator

  • Consultar la FIRMAPEDIA
  • Administrador
  • Mensajes: 7,277
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
  • Vean mis posts activos en mi página personal
    • Mis posts activos (click aquí)

28 Enero, 2010, 10:03 pm
Respuesta #39

Flashtk

  • $$\Large \color{red}\pi\,\pi$$
  • Mensajes: 37
  • Karma: +0/-0
  • Sexo: Masculino

Aqui un Avance del Proyecto: "La otra" calculadora.

Código: [Seleccionar]

using System;
using System.Drawing;
using System.Windows.Forms;

static class Calcu
{
    static void Main()
    {
        Application.Run(new Formulario_principal());
    }
}
public class Formulario_principal : Form
{
    //Declaracion de las variables
    private Button b0;
    private Button b1;
    private Button b2;
    private Button b3;
    private Button b4;
    private Button b5;
    private Button b6;
    private Button b7;
    private Button b8;
    private Button b9;
    private Button punto;
    private Button suma;
    private Button igual;
    private Button resta;
    private Button multi;
    private Button division;
    private Button resto;
    private Label l1;
    private Boolean operador = false;
    private int acumulador = 0;
    private string cadenaoperacion = "";
   
    public Formulario_principal()
    {
        iniciarwidgets();
        this.b0.Click+= new EventHandler(this.teclapulsada);
        this.b1.Click += new EventHandler(this.teclapulsada);
        this.b2.Click += new EventHandler(this.teclapulsada);
        this.b3.Click += new EventHandler(this.teclapulsada);
        this.b4.Click += new EventHandler(this.teclapulsada);
        this.b5.Click += new EventHandler(this.teclapulsada);
        this.b6.Click += new EventHandler(this.teclapulsada);
        this.b7.Click += new EventHandler(this.teclapulsada);
        this.b8.Click += new EventHandler(this.teclapulsada);
        this.b9.Click += new EventHandler(this.teclapulsada);
        this.suma.Click += new EventHandler(this.operadorpulsado);
        this.resta.Click += new EventHandler(this.operadorpulsado);
        this.multi.Click += new EventHandler(this.operadorpulsado);
        this.division.Click += new EventHandler(this.operadorpulsado);
        this.resto.Click += new EventHandler(this.operadorpulsado);
        this.igual.Click += new EventHandler(this.operadorpulsado);
    }
    public void iniciarwidgets()
    {
        //Iniciando Widgets
        this.b0 = new Button();
        this.b1 = new Button();
        this.b2 = new Button();
        this.b3 = new Button();
        this.b4 = new Button();
        this.b5 = new Button();
        this.b6 = new Button();
        this.b7 = new Button();
        this.b8 = new Button();
        this.b9 = new Button();
        this.punto = new Button();
        this.suma = new Button();
        this.igual = new Button();
        this.resta = new Button();
        this.multi = new Button();
        this.division = new Button();
        this.resto = new Button();
        l1 = new Label();


        // Ancho y alto en pixels de los widgets

        this.b0.Width = 60;
        this.b1.Width = 30;
        this.b2.Width = 30;
        this.b3.Width = 30;
        this.b4.Width = 30;
        this.b5.Width = 30;
        this.b6.Width = 30;
        this.b7.Width = 30;
        this.b8.Width = 30;
        this.b9.Width = 30;
        this.suma.Height = 45;
        this.igual.Height = 44;
        this.suma.Width = 30;
        this.igual.Width = 30;
        this.punto.Width = 30;
        this.resto.Width = 30;
        this.division.Width = 30;
        this.multi.Width = 30;
        this.resta.Width = 30;
        l1.Width = 50;


        //Posicionando Widgets

        b7.Location = new Point(20, 40);
        b8.Location = new Point(50, 40);
        b9.Location = new Point(80, 40);
        b4.Location = new Point(20, 62);
        b5.Location = new Point(50, 62);
        b6.Location = new Point(80, 62);
        b1.Location = new Point(20, 84);
        b2.Location = new Point(50, 84);
        b3.Location = new Point(80, 84);
        b0.Location = new Point(20, 106);
        punto.Location = new Point(80, 106);
        suma.Location = new Point(110, 40);
        igual.Location = new Point(110, 85);
        resto.Location = new Point(140, 40);
        division.Location = new Point(140, 62);
        multi.Location = new Point(140, 84);
        resta.Location = new Point(140, 106);
        l1.Location = new Point(20, 20);

        //Texto
        this.b0.Text = "0";
        this.b1.Text = "1";
        this.b2.Text = "2";
        this.b3.Text = "3";
        this.b4.Text = "4";
        this.b5.Text = "5";
        this.b6.Text = "6";
        this.b7.Text = "7";
        this.b8.Text = "8";
        this.b9.Text = "9";
        this.punto.Text = ".";
        this.suma.Text = "+";
        this.igual.Text = "=";
        resto.Text = "%";
        division.Text = "/";
        multi.Text = "*";
        resta.Text = "-";
        l1.Text = "0";



        Controls.Add(b7);
        Controls.Add(b8);
        Controls.Add(b9);
        Controls.Add(b4);
        Controls.Add(b5);
        Controls.Add(b6);
        Controls.Add(b1);
        Controls.Add(b2);
        Controls.Add(b3);
        Controls.Add(b0);
        Controls.Add(punto);
        Controls.Add(suma);
        Controls.Add(igual);
        Controls.Add(resto);
        Controls.Add(division);
        Controls.Add(multi);
        Controls.Add(resta);
        Controls.Add(l1);

    }

    private void teclapulsada(object sender, EventArgs e)
    {
        String cadena = sender.ToString();
        cadena= cadena.Substring(35,1);
        l1.Text = cadena;
        if (operador)
        {
            calcularoperacion(cadena);
           
        }
        else
        {
            acumulador = int.Parse(cadena);
             l1.Text = acumulador.ToString();
         }
       
       
    }
    private void operadorpulsado(object sender, EventArgs e)
    {
        cadenaoperacion = sender.ToString();
        cadenaoperacion = cadenaoperacion.Substring(35, 1);
        Console.WriteLine(cadenaoperacion);
        operador = true;
        if (cadenaoperacion.Equals("=")) l1.Text = acumulador.ToString();

    }

    private void calcularoperacion(String cadena)
    {
        if (cadenaoperacion.Equals("+")) acumulador += int.Parse(cadena);
        else if (cadenaoperacion.Equals("-")) acumulador -= int.Parse(cadena);
        else if (cadenaoperacion.Equals("*")) acumulador *= int.Parse(cadena);
        else if (cadenaoperacion.Equals("/")) acumulador /= int.Parse(cadena);
        else if (cadenaoperacion.Equals("%")) acumulador %= int.Parse(cadena);
       
         
    }
}