Universidade do Vale do Paraíba
Colégio Técnico Antônio Teixeira Fernandes Disciplina POO
Material III-Bimestre
Introdução e conceitos fundamentais
Introdução e conceitos fundamentais
de aplicações gráficas usando
janelas
http://www1.univap.br/~wagner
Prof. Responsável
Wagner Santos C. de Jesus
Histórico C#
A linguagem C# (Sharp) foi influencia da linguagens C++ e Java que ganhou popularidade na comunidade de informática popularidade na comunidade de informática quando a Microsoft decidiu incluí-la no pacote Visual Studio.
Criador C#
Engenheiro de Sistemas Microsoft, que além do C# foi que além do C# foi criador do Turbo Pascal e do Delphi.
3
Ambiente RAD (C#)
C++
C#
C++
IDE
(Ambiente Integrado
(Ambiente Integrado
de Desenvolvimento)
Conceito de IDE
É um programa de computador que reúne características e ferramentas de apoio ao desenvolvimento de software com o ao desenvolvimento de software com o objetivo de agilizar este processo.
RAD
(Desenvolvimento
(Desenvolvimento
Rápido de Aplicativos)
Conceito de RAD
Normalmente as IDE facilitam as Técnicas de RAD (Desenvolvimento Técnicas de RAD (Desenvolvimento Rápido de Aplicativos).
Mono - Desktop
9
Ilustração de Ferramenta RAD
C++ Builder
GLgBuilder
Java Class Library
AJAX Graphics Server for Mobile Deployment Cross-Platform C/C++ Libraries
Funcionamento da Ferramenta
Programador 13 IDE Editor do Visual Studio C# GDI WindowsCaracterísticas
• O Java utiliza comentários Javadoc e o C# utiliza comentários baseados em XML;
• O Java utiliza a JVM, C# e .Net Framework. • Compiladores de linha de comando.
• Compiladores de linha de comando.
• Compiladores para Windows, Windows Mobile, Linux, Mac OS X e Solaris.
• Orientação à Objetos.
Janela Principal do Ambiente
Principais modelos para criação
de aplicações.
Modelo Tipos de Projetos Criados
Windows Forms Aplication (Aplicativo Windows Foms) (*)
Aplicação desktop para o sistema operacional Windows
Windows Foms) (*) operacional Windows
WPF Application (Aplicativo WPF) Aplicação Desktop para criação de templates (Código Reutilizáveis) Console Application (Aplicativo de
console) (*)
Aplicação que ocorre apartir de linha de comandos do Windows.
Linguagem de Programação
Características Operacionais
Características Operacionais
Característica principais de uma
Linguagem de Programação (C#)
–
Sintaxe (Escrita)
– Semântica (Significado)
– Semântica (Significado)
– Pragmática (Lógica)
Estrutura de um programa C#
Aplicação (Console)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 {Determina pacotes que deverão ser usados pelo programa.
{
class Program {
static void Main(string[] args) {
... }
}
} 19
Declara escopo que contém um conjunto de classes relacionadas.
Tipos de
Dados
Conceito de Tipos de Dados
O tipo de dados representa o tipo de informação que uma variável ou uma
constante pode armazenar
constante pode armazenar
estabelecendo seu limite mínimo e máximo de valores suportados.
Exemplo
4 2 1
0 0 0 0 1 0 0 1 Inteiro de 3 bits (int3)
n
2
n = 3
1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1int3 a = 5;
Tipos em C# (u - unsigned)
Tipo de Dados Armazenamento
Byte, Ushort, Uint e Ulong Números inteiros positivos
Sbyte, Short, Int e Long Números inteiros positivos e negativos
23
Float, Double e Decimal Números inteiros e reais (Positivos e
negativos)
Char e String Caracteres e cadeias de caracteres.
Literais (Valores pré-definidos)
Tipo de Dados Sufixo Exemplo
uint U uint valor = 35U;
long L long valor = 35L;
ulong UL ulong valor = 10UL;
ulong UL ulong valor = 10UL;
float F Float valor = 20.3F;
double D double valor = 20.3D;
Tipos Principais
Tipo de Dados Tamanho Exemplo
Int 4 bytes int valor = 35;
long 8 bytes long valor = 35;
byte 1 byte byte valor = 255;
float 4 bytes float valor = 20.3;
25
float 4 bytes float valor = 20.3;
double 8 bytes double valor = 20.3;
decimal 16 bytes decimal valor = 20.3;
char 2 bytes Apenas um caractere
string - Conjunto de caracteres
Operações
Matemáticas de
Matemáticas de
Operadores Aritméticos
+ Adição - Subtração * - Multiplicação * - Multiplicação / - Divisão% - Resto da Divisão (Módulo)
Operadores de atribuição
= Atribuição simples
+= Atribuição com adição -= Atribuição com subtração
*= Atribuição com multiplicação *= Atribuição com multiplicação /= Atribuição com divisão
Operadores Lógicos
! - Não inverso
&& - e lógico
&& - e lógico
| | - ou lógico
29Operadores Relacionais
= = - Igual != - Diferente de < - Menor que < - Menor que > - Maior que >= - Maior ou Igual <= - Menor ou IgualOperadores de Incremento e
decremento
++ - Incremento
-- - Decremento
Exemplo atribuição
int a = 5;
a++; // Resultado de a = 6. int y = 4;
int y = 4;
Linguagem de Programação C#
• Atribuição
• Condição
• Condição
• Repetição
33Condicional if()
if(<condição>) {
[Bloco-Instruções-1]
}}
else {
[Bloco-Instruções-2]
}
Condicional if()
if(<condição>)
[Instrução-1]
else
else
[Instrução-2]
35Exemplo de if()
char sexo = ‘M’; if(sexo == ‘F’) { idade = 45; cintura = 20; nasc = “Brasileira”; }switch(): cadeia de condição
switch(<expressão>) { case valor1: [bloco de instruções] break; case valor2: case valor2: [bloco de instruções] break; default: [bloco de instruções] break; } 37Exemplo switch()
switch(categoria) { case 1: bonus = salario * 0.1; break; case 6: bonus = salario * 0.07;A instrução break deve ser usada para que haja abandono da estrutura. break; case 7: bonus = 100; break; default: bonus = 0;
Estrutura de
repetição
repetição
while():Enquanto a condição
verdadeira executa.
while (<condição>) {
[bloco de instruções]
}
do{
[bloco de instruções]
Exemplo: while()
int num = 20; int contador = 0; while (num > 10) while (num > 10) { num = num - 1; contador = contador + 1; } 41Exemplo: do while()
int num = 8; int contador = 0; do { do { num = num - 1; contador = contador + 1; } while (num != 0);Instrução for()
for(<inicio>;<condição>;<atualização>) { [bloco de instruções] } 43Exemplo do for()
int num = 8;
int contador = 0;
for (int i = 0; i <= 10; i++) for (int i = 0; i <= 10; i++) {
num = num - 1;
Quebra e permanência de
ciclo em estruturas de
ciclo em estruturas de
Controle.
Quebra de ciclo (break)
Estrutura for (para)
Exemplo Prático (break)
int num = 8; int contador = 0; while (num != 0) { if (contador == 2) if (contador == 2) break; num = num - 1; contador = contador + 1; } 47Permanência de ciclo (continue)
Exemplo Prático (continue)
int num = 8; int contador = 0; while (num != 0) { if (contador == 2) { num = 0; num = 0; continue; } num = num - 1; contador = contador + 1; } 49Entrada e Saída
de Dados
Classe: Console
Representa
a
entrada,
as
saídas, e os fluxos de erro padrão
para aplicativos do console. Esta
classe não pode ser herdada.
classe não pode ser herdada.
51 Sistema Operacional Console Processador Dispositivos de Entrada e Saída
Entrada de dados Métodos read e
readLine()
Método Descrição
read() Realiza a leitura de um
caractere pelo teclado. caractere pelo teclado.
readLine() Realiza a leitura de uma String pelo teclado.
Saída de dados Métodos write e
writeLine()
Método Descrição
write() Realiza a escrita de uma string sem salto de linhas.
53
sem salto de linhas.
writeLine() Realiza a escrita de uma String com salto de linhas.
Exemplo de Entrada e Saida
String str = Console.ReadLine();
Console.WriteLine(str);
Conversão de
Tipos de Dados
Tipos de Dados
Método: Parse()
Converte uma String em um
número de acordo com seu
tipo de dado especificado.
Exemplo de conversão de tipos
double num1 = double.Parse(Console.ReadLine()); double num2 = double.Parse(Console.ReadLine()); double soma = num1 / num2;
Console.WriteLine(soma);
Objetos Visuais Básicos
e Manipulação de
e Manipulação de
Eventos
Componente que permite uma entrada de dados em modo gráfico.
Propriedades Importantes: Propriedades Importantes:
text – Captura dados em uma caixa de texto.(String)
Visible – Boolena
lines – Array de linhas para caixa de texto.
Exemplo: textBox
Sintaxe:
textBox1.text = <String>;
Exemplo:
Componente que exibe mensagens em um formulário.
Propriedade: Propriedade:
text: Insere uma string no label.
Exemplo: Label
Sintaxe:
Label.text = <String>; Label.text = <String>;
Componente que cria um botão de comandos. Permitindo o acionamento de uma ação definida por um processo.
por um processo. Propriedade:
text: Insere um rótulo no botão de comandos.
Conceito de
Evento
Eventos
Eventos são ações disparadas
pelo usuário ou dispositivo em
um determinado momento.
65
Controle de Eventos
Sensor Solenóide Teclado Disp. Rede Evento Disparado Código de programa Disp. Rede ControladorEvento Load()
private void Form1_Load(object sender, EventArgs e) {
MessageBox.Show("Carregou Antes ****"); }
67
Evento FormClosed()
private void Form1_FormClosed(object sender, FormClosedEventArgs e) {
MessageBox.Show("Fechar Form"); }
}
Evento DoubleClick()
private void Form1_DoubleClick(object sender, EventArgs e) {
MessageBox.Show("Efetuou clique em = "+this.Name); }
}
69
Evento MouseMove()
private void FrmTeste_MouseMove(object sender, MouseEventArgs e) {
MessageBox.Show("Moveu o mouse "); }
Evento MouseHover()
private void FrmTeste_MouseHover(object sender, EventArgs e) {
MessageBox.Show(“Ao colocar o mouse no objeto "); }
71
Eventos de
Captura de teclas
Captura de teclas
Eventos KeyDown()
private void FrmTeste_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.F3 ) { MessageBox.Show("Teste"); MessageBox.Show("Teste"); } } 73
Keys: Objeto que encapsula
constantes
Reúne um vasto número de constantes que representam valores das teclas de controle.
controle.
Controle do teclado (Keys)
“<Left>” – Pressionar a tecla seta para esquerda. “<Right>” - Pressionar a tecla seta para Direita. “<Home>” - Pressionar a tecla Home.
“<End>” - Pressionar a tecla End . “<Insert>” - Pressionar a tecla Inserir. “<Delete>” - Pressionar a tecla Delete.
“<BackSpace>” - Pressionar a tecla BackSpace. “<Enter>” - Pressionar a tecla Enter.
75
“<Enter>” - Pressionar a tecla Enter.
“<Up>” - Pressionar a tecla Seta para cima. “<Down>” - Pressionar a tecla Seta para baixo. “<PageUp>” - Pressionar a tecla Page Up.
<PageDown>” - Pressionar a tecla Page Down. “<tab>” - Pressionar a tecla Tab.
“<Escape>” - Pressionar a tecla ESC. “<Space>” – Pressionar a tecla espaço.
KeyCode
Vem a ser uma propriedade do objeto (e) da classe KeyEventArgs.
Exemplo:
if (e.KeyCode == Keys.F2 ) {
Evento: KeyUp
private void FrmTeste_KeyUp(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.A) {
MessageBox.Show("Liberado a tecla <A>"); MessageBox.Show("Liberado a tecla <A>"); }
}
77
Evento KeyPress
private void FrmTeste_KeyPress(object sender, KeyPressEventArgs e) {
MessageBox.Show("Caracter obtido foi "+e.KeyChar ); }
}
Objetos de
Controle de listas
Controle de listas
de Dados
Caixa de combinação permite inserir uma lista de dados escondida para um futura seleção.
Propriedade: Items Métodos:
Add(<ExpS>): Adiciona uma string na lista. Add(<ExpS>): Adiciona uma string na lista.
Insert(<ExpN>,<ExpS>): Insere em uma posição da lista.
Remove(<ItemL>): Remove o item informado da lista.
Exemplo Prático de ComboBox:
ComboBox1.Items.Add(“Item-1”); ComboBox1.Items.Add(“Item-2”); ComboBox1.Items.Add(“Item-3”); ComboBox1.Items.Add(“Item-3”); ComboBox1.Items.Add(“Item-4”); ComboBox1.Items.Add(“Item-5”); 81Exemplo 2: Prático de Insert:
Insere um elemento e uma determinada posição da lista.
Exemplo:
Exemplo 3: Prático de Remove():
Retira uma String, se a mesma, existir na lista.
Exemplo:
ComboBox1.Items.Remove(“Item-3”);
Exemplo 4: Prático de Remove():
Retira um elemento em uma determinando o elemento da lista.
Exemplo:
Método: Count
Retorna com a quantidade de elementos de uma lista.
Sintaxe: Sintaxe:
<VarInt> = comboBox1.items.Count;
Caixa de combinação permite
inserir uma lista de dados onde os
elementos serão apresentados na tela
elementos serão apresentados na tela
em determinado número de linhas.
Observação
Todos os métodos mencionados
na caixa de combinação serão
na caixa de combinação serão
herdados pela lista.
Capturando Dados de
uma Lista ou Combo.
uma Lista ou Combo.
• Captura um elemento da lista ou combo mediante a seleção do usuário.
• Captura um elemento da lista informado o
Saída de dados usando Lista ou
Combo.
89
• Captura um elemento da lista informado o indice.
• Captura vários elementos selecionados da lista (Lista).
Propriedaede Items[],Text
Método toString()
text
Captura um elemento da lista ou combo mediante a seleção do usuário.
Exemplo:
String dado = comboBox1.text;
Items[]
Captura um elemento da lista informado o índice.
Exemplo:
Propriedade: SelectionMode
Determina se caixa de lista será de Multipla seleção ou mono seleção.
Status da propriedade: Status da propriedade:
None: Seleção Simples
MultiSimple: Seleções multiplas
Determina Múltiplas seleções
listBox1.SelectionMode = SelectionMode.MultiSimple;Possibilita ao usuário a seleção de
Possibilita ao usuário a seleção de
mais de um item em uma lista.
Método: GetSelected()
Verifica se um determinado item da lista
encontra-se selecionado ou não, retornando TRUE ou FALSE.
TRUE ou FALSE.
Sintaxe:
<VarB> = listBox1.GetSelected(<indice>);
Captura os elementos
selecionados em uma lista
for (int i = 0; i <= listBox1.Items.Count - 1; i++) {
if( listBox1.GetSelected(i)) if( listBox1.GetSelected(i))
MessageBox.Show(listBox1.Items[i].ToString()); }
Botões de Rádio e
Caixas de Verificação
Caixas de Verificação
Botão
de
rádio
Controle
usado
quando
se
encontra
um
número
reduzido de opções, dependendo de
reduzido de opções, dependendo de
apenas uma acontecer para que haja a
execução de um processamento.
Propriedades principais
(RadioButton)
Propriedade Descrição
checked Retorna um booleano caso botão esteja selecionado.
Name Cria o nome do objeto da
99
Name Cria o nome do objeto da classe RadioButton
Exemplo RadioButton
int sx = 1; if (!RadioButton1.Checked) { { sx = 2; }CheckBox:
Cria
caixa
de
verificação permitindo que todos
os
dados
sejam
passiveis
de
os
dados
sejam
passiveis
de
seleção.
Propriedades principais
(CkeckBox)
Propriedade Descrição
checked Retorna um booleano caso botão esteja selecionado.
Name Cria o nome do objeto da
Name Cria o nome do objeto da classe RadioButton
Exemplo: CheckBox
if (CheckBox1.Checked) { ... 103 ... }Controle de
Calendário
Realiza a criação de uma
caixa
de
combinação
no
caixa
de
combinação
no
formato de calendário.
Exemplo: DateTimePicker
Saída do objeto
DateTimePicker
Propriedades (DateTimePicker)
Propriedade DescriçãoValue Retorna a Data escolhida com sua respectiva hora, para um objeto DateTime.
Day Retorna o dia para uma data
107
Day Retorna o dia para uma data escolhida.
Month Retorna o mês para uma data escolhida.
Year Retorna o ano para uma data escolhida.
Exemplo: DataTimePicker
DateTime data = dateTimePicker1.Value; MessageBox.Show(""+data.Day ) ;
MessageBox.Show("" + data.Month ); MessageBox.Show("" + data.Month ); MessageBox.Show("" + data.Year );
Leitura e Exibição de
Imagem
Imagem
Permite exibir como saída o
desenho de uma imagem.
Propriedades (PictureBox)
Propriedade Descrição
Image Permite exibir uma imagem no vídeo. SizeMode Normal,StrechImage, AutoSize e
111
SizeMode Normal,StrechImage, AutoSize e CenterImage.
Load():Método que carrega uma
imagem em tempo de execução
Sintaxe:
pictureBox1.Load(<ExpS>);
<ExpS>:determina o caminho e o nome da <ExpS>:determina o caminho e o nome da imagem.
Controle de Tempo
Controle de Tempo
Cria um controlador de tempo
para
resolver
problemas
de
para
resolver
problemas
de
tempo em uma determinada
aplicação.
Propriedades: Timer
Propriedade Descrição
Enable Liga e desliga o temporizador (true,False).
Interval Determina o tempo de espera para
115
Interval Determina o tempo de espera para execução do evento dentro do
Exemplo de atividade
temporizada
private void timer1_Tick_1(object sender, EventArgs e) {
label2.Text = "Mostra - "+x; x++;
Barra de Progressão
Barra de Progressão
Barra de Progressão
Controle que permite verificar
evolução
de
um
determinado
evolução
de
um
determinado
Propriedade (ProgressBar)
Propriedade DescriçãoMaximum Valor máximo de limite da barra de progressão.
Minimum Valor mínimo para inicio da barra de
119
progressão.
Value Valor de encaminhamento de progresso da barra.
Step Número de saltos para preenchimento da barra de progressão.
Exemplo de evolução da barra de
progressão
private void timer1_Tick_1(object sender, EventArgs e)
{
if(progressBar1.Value < 100) if(progressBar1.Value < 100) progressBar1.Value += 1; }