sexta-feira, 10 de abril de 2009

Snipt.org - Como colar códigos no blog

Esses dias procurei algo para facilitar a colagem de códigos aqui no blog. Agradeço ao Urubatan pela dica do Google Code Prettify, que testei mas não gostei muito. O fato é que hoje achei algo que me agradou, o Snpit.org. Aqui vai um exemplo com um código inédito:



Achei interessante, porém, muito grande.. Vou ver se contínuo editando tudo a mão ou uso esse do Snipt. Confesso que editar a mão me fez aprender, na marra, algo sobre CSSEssa janelinha é um bom exemplo do que é CSS (Cascading Style Sheets).. Depois digo o que venho aprendendo e coloco alguns exemplos.

quarta-feira, 8 de abril de 2009

Visual C++ 2008 Express Edition [#3]

CAPITULO 2: CLICK RACE GAME

Dando continuidade aos primeiros passos no form do visual, vamos aprender mais algumas coisas sobre propriedades e começar com a lógica da coisa. O game da vez é tão fácil quanto ode antes; você terá que ver quantos cliques consegue dar rm um botão em um determinado tempo. Para dificultar teremos dois botões. Nossa tela final será assim:



O funcionamento é o seguinte: Abre o jogo, os dois botões de clicar estão desabilitados. Ao clicar em "Começar" desabilita um botão e ao clicá-lo, ele irá habilitar novamente e desabilitar o outro e assim por diante. Em cima é um contador de cliques.

Comece clicando em Toolbox (), adicione 4 Botões (), 1 Label () e 1 Textbox (). Disponha-os de acordo com a figura acima. Adicione um componente novo, chamado Timer (), que servirá para contar o tempo em que você pode clicar.

Agora vamos mudar as propriedades do nosso game. Clique em Propriedades () e mude:

#Form:
- Text para "CLICK RACE GAME".

# Layer:
- Text para "NÚMERO DE CLICKS:".
- Fonte para tamanho "12".

# Textbox:
- Textalign para "Center"
- ReadOnly para "True"

Feito isso seu form estará igual ao meu, acima citado. Então vamos para a lógica:

0) Adicione uma variável global inteira, para contar os cliques:

private:
///
/// Required designer variable.
///

int click;


1) Duplo clique no form (em qualquer local cinza da janela):

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
click = 0; //Zera contador de click
button1->Enabled = false; //Congela botão de clicar 1
button2->Enabled = false; //Congela botão de clicar 2;
}

2) Duplo clique no botão "Começar":

private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
button1->Enabled = true; //Descongela botão de clicar 1
button2->Enabled = false; //Congela botão de clicar 2
button3->Enabled = false; //Congela botão de Começar
timer1->Interval = 30000; //Conta de 30 em 30 segundos
timer1->Enabled = true; //Habilita o timer
}

3) Duplo clique em "Timer":

private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
timer1->Enabled = false; //Desliga timer
button1->Enabled = false; //Congela botão de clicar 1
button2->Enabled = false; //Congela botão de clicar 2
}

4) Duplo click no primeiro botão de clicar (esquerda):

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
click++; //Incrementa um click
button1->Enabled = false; //Congela botão de clicar 1
button2->Enabled = true; //Descongela botão de clicar 2
textBox1->Text = click.ToString(); //Escreve o número de clicks
}

5) Duplo click no segundo botão de licar (direita):

private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
click++; //Incrementa um click
button1->Enabled = true; //Descongela botão de clicar 1
button2->Enabled = false; //Congela botão de clicar 2
textBox1->Text = click.ToString(); //Escreve o número de clicks
}

5) Duplo clique em "Sair":

private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {
Close(); //Sair do programa
}


No final, seu código deverá ficar assim:



Feito isso, compile (F7) e rode o programa (F5). Se tudo tiver corrido bem, ele não terá erros:

------ Build started: Project: Programa_2, Configuration: Debug Win32 ------
Compiling...
Programa_2.cpp
Linking...
Embedding manifest...
Build log was saved at "file://c:...\Visual Studio 2008\Projects\Programa_2\Programa_2\Debug\BuildLog.htm"
Programa_2 - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========


Por hoje é só.
Desafio: Adicione outro Textbox () mostrando o tempo em ordem decrescente até congelar o programa. Qualquer dúvida, mail-me.

O aprendizado é a automatização do exercício.

domingo, 5 de abril de 2009

Visual C++ 2008 Express Edition [#2]

CAPITULO 1: MÁQUINA DE ADIVINHAÇÃO

Para começar a jornada, vou "ensinar" como criar um novo projeto e o primeiro programa extremamente básico. Será uma máquina de adivinhação. Bem sem graça, por sinal.

Para iniciar, abra o Visual C++ 2008 (essa foi a última, da próxima será apenas "visual") e vá no primeiro ícone New Project ou em File > New > Project ou ainda pelo atalho (Ctrl + Shift + N):



Vai abrir uma janela perguntando qual o 'Tipo de Programa', 'Template', 'Nome' e 'Endereço'. Uma breve explanação sobre isso:

- Windows Forms Application: Cria uma aplicação com uma GUI(Interface Gráfica para Usuário).
- Windows Forms Control Library: Cria um módulo feito para customizar/controlar uma Windows Application.
- CLR Console Application: Cria uma texto base .NET que é tipicamente feito para prompt de comando (muito usado para programas que não necessitam de interação com o usuário e/ou mouse).
- Windows Service: Aplicação para um serviço adicional em seu Windows (sistema).
- ASP.NET Service: Cria projetos XML para WEB.
- CLR Empty Project: Um pequeno projeto .NET no qual você pode adicinar dados futuramente (com para iniciantes).
- Class Library: Cria módulos (classes) que controlar projetos.
- Win32 Consle Application: Cria um projeto nativo do windows, via prompt (mais comum entre estudantes e iniciantes na linguagem).
- Empty Project: O mesmo do anterior, porém vazio.
- Makefile Project: Cria um projeto que foi designado para rodar fora da ide do Visual C++ (para programadores já avançados).


Nós faremos uma Windows Form Application com o nome de "Programa_1":



Aperte 'OK' e você já terá criado uma janela em branco chamada de Form1. Essa janela é gerada automaticamente e será nela que trabalharemos. Como disse, o Visual é do tipo clique-e-arraste. Veremos que é literalmente clicar no componente que queremos e arrastar para o Form. Por enquanto você tem isso:



A Máquina de Adivinhação é simples; é uma máquina que faz uma pergunta e você pensa na resposta. Por exemplo:

[EU] O que cái em pé e corre deitado?
[VOCÊ] Chuva???
[EU] Não. Uma minhoca de para-quedas.


Logo, precisaremos de dois botões (um para pergunta e outro para respostas) e um local para escrever. Para tanto, clique em 'Toolbox' na parte direita, vá em 'Common Controll' e procure por 'Button'. Clique nele e depois em algum lugar do Form1. Você terá um botão em uma janela.



Você já tem um botão. Repita tudo e adicione outro botão. Depois procure os componentes 'Label' e 'TextBox' e adicione-os. Alinhe tudo:



Pronto. Essa é a interface da nossa Máquina de Adivinhação. Antes de programar o que cada botão fará vamos colocar um nome na nossa máquina. Clique em 'label1' e em 'Properties' (ao lado de Toolbox'). Procure 'Text: label1' e troque por 'Text: Máquina de Adivinhação'. Pronto. Você acabou de alterar uma propriedade de um componente.

Agora falta programar o que cada botão fará. Para entrar na programação é fácil: Basta dar dois cliques no componente. Dê dois cliques no 'button 1' e abrirá uma janela com essa informação:

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
}
};


Entre as chaves você colocará o que o botão 1 fará ao ser clicado. Coloquemos:

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
textBox1->Text = "O que é que tem bico, mas não é pia; tem asa, mas não voa?";
}
};


Coloque a resposta no Botão 2 clicando duas vezes nele:

private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e)
{
textBox1->Text = "O Bule";
}
};


Máquina de Adivinhação criado. Você terá algo assim:

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
textBox1->Text = "O que é que tem bico, mas não é pia; tem asa, mas não voa?";
}
};
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e)
{
textBox1->Text = "O Bule";
}
};


Para compilar seu código aperte F7. Se não houver erros ele apresentará a seguinte mensagem:

========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Isto é, compilou! Agora rode: F5:



É isso. Esse foi o nosso primeiro programa em C++ no Visual. Experimente mudar o nome dos botões para 'Pergunta' e 'Resposta'. Tente também mudar o nome do 'Form1' para 'Hello World'. Mude outras propriedades tais como cores, fonte, tamanho e etc.

Só aprende quem pratica!

sábado, 4 de abril de 2009

Visual C++ 2008 Express Edition [#1]

INTRODUÇÃO:

O Visual Studio 2008, ou apenas "Visual" para os íntimos, é um software gratuito da Microsoft para desenvolvedores em linguagem C/C++. Isto é, um software para desenvolver outro software.

É um software de nível bem profissional e um tanto complicado para os que estão começando a programar agora. Possui uma ampla variedade de bibliotecas. Uma interfácie agradável e bem fácil, do tipo clique-e-arraste.



O LIVRO:

O livro adotado por mim foi o "Microsoft Visual C++ 2005 Express Edition Programming" pois trata não apenas da linguagem mas, principalmente, dos application forms. Isso é, das janelas bonitinhas do windows.

Apesar do livro tratar da versão 2005, a versão 2008 é igualzinha.

O SOFTWARE:

O software pode ser baixado daqui gratuitamente. Depois de instalado, ele terá essa página inicial:



À medida que forem aparecendo os exemplos darei mais detalhes sobe o software e o seus paineis.

About us