Posts Tagged ‘C#’

Vaga para desenvolvimento

Postado em 15 set 2009
Categoria(s) Jobs

Pessoal,

Na empresa que eu trabalho, Go2nPlay (http://www.go2nplay.com), estamos fundando um novo setor de mídia imersiva e precisamos de 2 desenvolvedores para estágio.

Os requisitos são:

- Conhecimento em Java, C e AS3.

Os produtos a serem comercializados são:

- Aplicações em OpenFrameworks (C), Processing (Java) e Touchlib (AS3);
- Multi-touch;
- Realidade aumentada;
- Apps para iPhone e Android;
- Games com realidade virtual ou aumentada;
- Integração de sistemas com hardwares para interface humana via USB, WiFi e Bluetooth (wii, iPhone, etc).

A referência de trabalho é a http://www.t-immersion.com

Interessados enviar currículo para: ohmar@go2nplay.com

Abraços.

  • Share/Bookmark

Timer C#

Postado em 30 abr 2008
Categoria(s) C#

Hoje vou mostrar como trabalhar com o componente Timer no C#.

O objetivo desse exemplo é gerar TextBox dinamicamente a cada X segundos. Para isso é usando o componente Timer.

Construa um form como o seguinte:

Você deve construir um form com os componetes exibidos na imagem acima (clique para ampliar a imagem). Os componentes usados nesse form são GroupBox, Label, NumericUpDown e Button. Os nomes em vermelho são a propriedade name que deve ser definida para cada componente.

Quando você clica em cima do componente Timer, ele não aparece dentro do form, fica na parte inferior. Esse tipo de componente não é visível.

A ideia desse form é você informar quantos TextBox deve ser criado e a quantos segundos. Quando você clicar no botão Iniciar começa a criação das TextBox dinamicamente. Quando você clica no botão Parar o Timer será parado e não será mais gerado TextBox. As TextBoxs são criadas dentro do elemento groupBoxTextBox, desta forma implementei o botão limpar para zerar o conteúdo do groupBoxTextBox.

Vamos criar o código para tudo funcionar e depois vemos como a sintaxe funciona.

Dê dois clique no botão Iniciar e digite o seguinte código:

1
2
3
4
5
6
7
8
9
 
        private void buttonIniciar_Click(object sender, EventArgs e)
        {
            int segundos = System.Convert.ToInt16(numericUpDownSegundos.Value);
            timerTextBox.Stop();
            timerTextBox.Interval = (int)segundos * 1000;
            timerTextBox.Tick += new EventHandler(timerEvent);
            timerTextBox.Start();
        }

Agora dê dois cliques em cima do botão Parar e digite o código abaixo:

1
2
3
4
5
 
        private void buttonParar_Click(object sender, EventArgs e)
        {
            timerTextBox.Stop();
        }

Dê dois clique no botão limpar e adicione o código abaixo:

1
2
3
4
5
 
        private void buttonLimpar_Click(object sender, EventArgs e)
        {
            groupBoxTextBox.Controls.Clear();
        }

Crie um novo método chamado timerEvent logo abaixo do método buttonLimpar_Click, o método timerEvent deve ficar da seguinte forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
        private void timerEvent(Object sender, EventArgs e)
        {
            int criar = System.Convert.ToInt16(numericUpDownTextBox.Value);
            for (int i = 0; i < criar; i++)
            {
                TextBox minhaTextBox = new TextBox();
                minhaTextBox.Height = 20;
                minhaTextBox.Width = 250;
                minhaTextBox.Location = new Point(10, 15 + (minhaTextBox.Height * groupBoxTextBox.Controls.Count));
                minhaTextBox.Text = "TextBox #" + groupBoxTextBox.Controls.Count;
                groupBoxTextBox.Controls.Add(minhaTextBox);
            }
        }

Pronto! Agora só pressionar F5 e ver a aplicação funcionado.

Vamos enteder como tudo funciona.

No botão Iniciar temos os seguintes códigos:

1
2
3
4
5
6
 
            int segundos = System.Convert.ToInt16(numericUpDownSegundos.Value);
            timerTextBox.Stop();
            timerTextBox.Interval = (int)segundos * 1000;
            timerTextBox.Tick += new EventHandler(timerEvent);
            timerTextBox.Start();

Na ordem, o método System.ConvertToInt16 converte o valor do campo número de segundos para inteiro. Depois executamos timerTextBox.Stop() isso faz que o timerTextBox sempre pare, com o objetivo de parar uma execução atual do Timer. O método Interval define que o Timer deve executar suas funções em tempos em tempos, esse valor é dado em milesegundos. O método Tick chamada uma função a cada intervalo definido, nesse exemplo é chamado o método timerEvent e por fim timerTextBox.Start() coloca o timer para funcionar.

O código do método timerEvent:

1
2
3
4
5
6
7
8
9
10
11
 
            int criar = System.Convert.ToInt16(numericUpDownTextBox.Value);
            for (int i = 0; i < criar; i++)
            {
                TextBox minhaTextBox = new TextBox();
                minhaTextBox.Height = 20;
                minhaTextBox.Width = 250;
                minhaTextBox.Location = new Point(10, 15 + (minhaTextBox.Height * groupBoxTextBox.Controls.Count));
                minhaTextBox.Text = "TextBox #" + groupBoxTextBox.Controls.Count;
                groupBoxTextBox.Controls.Add(minhaTextBox);
            }

Esse cara obtém quantos elementos deve ser criados no intervalo de segundos definido, nessa parte criamos um TextBox dinamico e colocamos esse elemento dentro do groupBoxTextBox execuntado a sintaxe:

1
2
 
groupBoxTextBox.Controls.Add(minhaTextBox);

Nesse método é usado:

1
2
 
groupBoxTextBox.Controls.Count

Essa sintaxe retorna apenas a quantidade de elementos que existe atualmente dentro do groupBoxTextBox, é usado para definir a possíção de exibição das TextBoxs criadas.

Entendendo o código dos botões Parar e Limpar:

1
2
3
4
5
6
7
8
9
10
 
        private void buttonParar_Click(object sender, EventArgs e)
        {
            timerTextBox.Stop();
        }
 
        private void buttonLimpar_Click(object sender, EventArgs e)
        {
            groupBoxTextBox.Controls.Clear();
        }

A sintaxe timerTextBox.Stop(); para o Timer, assim o Timer não executa mais. A sintaxe groupBoxTextBox.Controls.Clear(); remove tudo que existe dentro do groupBoxTextBox.

  • Share/Bookmark

Método IndexOfAny em C#

Postado em 20 abr 2008
Categoria(s) C#

O método IndexOfAny busca o índice da primeira ocorrência de um caracter ou muitos em uma string.

Vamos ver como isso funciona, construa o form abaixo com somente um TextBox.

Dê duplo clique sobre o TextBox e digite o código abaixo no evento TextChanged:

1
2
3
4
5
6
7
8
9
10
11
12
13
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            char [] anyOf = {'@', '.', '!'};
            if (textBox1.Text.IndexOfAny(anyOf) == -1)
            {
                textBox1.BackColor = Color.Red;
            }
            else
            {
                textBox1.BackColor = Color.Green;
            }
        }

Rode a aplicação com F5, digite qualquer texto e depois insira os caracteres “@”, “.” ou “!”. A caixa de texto fica com o fundo vermelho quando não existe esses caracteres e fundo verde quando você digita os caracteres mencionados.

Vamos entender como o código funciona:

1
2
 
char [] anyOf = {'@', '.', '!'};

O código acima cria um array de caracteres com os itens que desejamos buscar na string do TextBox.

O código:

1
2
3
4
5
6
7
8
9
 
            if (textBox1.Text.IndexOfAny(anyOf) == -1)
            {
                textBox1.BackColor = Color.Red;
            }
            else
            {
                textBox1.BackColor = Color.Green;
            }

Que verifica se existe os caracteres procurados na string do TextBox a função:

1
2
 
textBox1.Text.IndexOfAny(anyOf)

Recebe o array de caracteres anyOf e busca na string, se encontrar retorna o índice do caracter na string, caso não encontre retorna -1.

Dessa forma fiz um IF se retornar -1 que dizer que não existe os caracteres buscados, qualquer coisa diferente significa que foi encontrada uma ocorrência dos caracteres.

E usando:

1
2
 
textBox1.BackColor = Color.Green;

Mudamos a cor de fundo do TextBox.

  • Share/Bookmark

AcceptButton e CancelButton em C#

Postado em 20 abr 2008
Categoria(s) C#

Vamos ver como trabalhar quando a tecla ENTER e ESC são pressionadas dentro de formulário em C#.

Crie um formulário com a seguinte aparência:

Mude a propriedade Name do botão OK para buttonOk e do botão Cancelar para buttonCancelar.

Dê duplo clique no botão OK e insira o seguinte código:

1
2
3
4
5
 
        private void buttonOK_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Botão OK", "Aviso", MessageBoxButtons.OK);
        }

Faça o mesmo para o botão Cancelar e insira o seguinte código:

1
2
3
4
5
 
        private void buttonCancelar_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Botão Cancelar", "Aviso", MessageBoxButtons.OK);
        }

Esses códigos são para abrir uma caixa de diálogo quando o botão for clicado, para entender mais sobre caixas de diálogo leia: http://patrickespake.wordpress.com/2008/04/19/criacao-de-caixa-de-dialogo-em-c/

O que queremos fazer é quando a tecla ENTER for pressionada o botão OK sejá chamando e quando a tecla ESC for pressionada o botão Cancelar seja chamado.

Para fazer isso existe duas propriedades no formulário chamadas AcceptButton e CancelButton.

O AcceptButton trabalha quando o ENTER é pressionado.

O CancelButton trabalha quando o ESC é pressionado.

Para definir essas propriedades clique no formulário e depois vá até a tool box Properties.

Define os valores da seguinte forma:

e

Pronto! Agora pressione F5 e veja o que acontece quando você pressiona as teclas ENTER e ESC.

Com a tecla ENTER será chamado o botão OK e com a tecla ESC será chamado o botão Cancelar.

  • Share/Bookmark

Fechar formulário em C#

Postado em 20 abr 2008
Categoria(s) C#

Vou explicar como podemos fechar o formulário após clicar em um botão.

Para conseguir fazer esse exemplo você deve primeiro fazer o conteúdo explicado aqui: http://patrickespake.wordpress.com/2008/04/19/criacao-de-caixa-de-dialogo-em-c/.

Quando usuário clica no botão Abrir Caixa de Diálogo é executado o seguinte código:

1
2
3
4
5
6
7
8
9
10
11
12
13
        private void button1_Click(object sender, EventArgs e)
        {
            DialogResult d = MessageBox.Show( "Você deseja sair?", "Aviso", MessageBoxButtons.YesNo );
 
            if ( d.ToString() == "Yes" )
            {
                // Código que deve ser executado quando clicar no botão SIM
            }
            else
            {
                // Código que deve ser executado quando clicar no botão NÃO
            }
        }

Esse código irá criar uma caixa de diálogo e questionar se o usuário deseja sair, atualmente não é executada nenhuma ação quando ele clica no botão Sim.

O código abaixo que define qual ação deve ser realizada quando o usuário clicar no botão Sim ou Não.

1
2
3
4
5
6
7
8
            if ( d.ToString() == "Yes" )
            {
                // Código que deve ser executado quando clicar no botão SIM
            }
            else
            {
                // Código que deve ser executado quando clicar no botão NÃO
            }

Modifique o código para ficar da seguinte forma:

1
2
3
4
5
            if ( d.ToString() == "Yes" )
            {
                // Código que deve ser executado quando clicar no botão SIM
                Close();
            }

Apenas colocamos o código:

1
Close();

Agora quando o usuário clicar no botão de confirmação Sim o formulário será fechado.

  • Share/Bookmark