Introdução e conceitos fundamentais de aplicações gráficas ... · Universidade do Vale do...

Post on 08-Oct-2020

9 views 0 download

Transcript of Introdução e conceitos fundamentais de aplicações gráficas ... · Universidade do Vale do...

Universidade do Vale do ParaíbaColé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

janelashttp://www1.univap.br/~wagner

Prof. Responsável

Wagner Santos C. de Jesus

1

Histórico C#

A linguagemC# (Sharp) foi influenciada linguagens C++e Java que ganhoupopularidadenacomunidadede informáticapopularidadenacomunidadede informáticaquando a Microsoft decidiu incluí-la nopacote Visual Studio.

2

Criador C#

Engenheiro deSistemas Microsoft,que além do C# foique além do C# foicriador do TurboPascal e do Delphi.

3

Anders Hejlsberg

Ambiente RAD (C#)

C++C#

4

C++Java C#

IDE (Ambiente Integrado (Ambiente Integrado de Desenvolvimento)

5

Conceito de IDE

É um programa de computador quereúne características e ferramentas de apoioao desenvolvimentode software com oao desenvolvimentode software com oobjetivo de agilizar este processo.

6

RAD (Desenvolvimento (Desenvolvimento

Rápido de Aplicativos)

7

Conceito de RAD

Normalmente as IDE facilitam asTécnicas de RAD (DesenvolvimentoTécnicas de RAD (DesenvolvimentoRápido de Aplicativos).

8

Mono - Desktop

9

Gedit

Ilustração de Ferramenta RAD

10

Lazarus IDE (RAD)

C++ Builder

11

GLgBuilder

12

Java Class LibraryAJAX Graphics Server for Mobile DeploymentCross-Platform C/C++ LibrariesC# DLL and ActiveX Control(Windows only)

Funcionamento da Ferramenta

Programador

13

IDE Editor do Visual Studio

C# GDI Windows

GDI - Interface Dispositivos Gráficos

Características

• O Java utiliza comentários Javadoc e o C#utiliza comentários baseados emXML ;

• 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.

• Manipulação de Banco de Dados.

14

Janela Principal do Ambiente

15

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

16

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 OperacionaisCaracterísticas Operacionais

17

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émumconjunto de classes relacionadas.

Área de Template

Tipos de DadosDados

20

Conceito de Tipos de Dados

O tipo de dados representa o tipo deinformação que uma variável ou umaconstante pode armazenarconstante pode armazenarestabelecendo seu limite mínimo emáximo de valores suportados.

21

Exemplo

4 2 10 0 0 0

1 0 0 1

Inteiro de 3 bits (int3)n2

n = 3

22

1 0 0 1

2 0 1 0

3 0 1 1

4 1 0 0

5 1 0 1

6 1 1 0

7 1 1 1

int3 a = 5;

Tipos em C# (u - unsigned)

Tipo de Dados ArmazenamentoByte, 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.

Bool Valores lógicos

Literais (Valores pré-definidos)

Tipo de Dados Sufixo Exemplo

uint U uint valor = 35U;

long L long valor = 35L;

ulong UL ulong valor = 10UL;

24

ulong UL ulong valor = 10UL;

float F Float valor = 20.3F;

double D double valor = 20.3D;

decimal M decimal valor = 20.3M;

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

bool 1 byte true/false (Booleano)

Operações Matemáticas de Matemáticas de

Lógicos

26

Operadores Aritméticos

+ Adição

- Subtração

* - Multiplicação* - Multiplicação

/ - Divisão

% - Resto da Divisão (Módulo)

27

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

%= Atribuição com módulo

28

Operadores Lógicos

! - Não inverso&& - e lógico&& - e lógico| | - ou lógico

29

Operadores Relacionais

= = - Igual

!= - Diferente de

< - Menor que< - Menor que

> - Maior que

>= - Maior ou Igual

<= - Menor ou Igual

30

Operadores de Incremento e decremento

++ - Incremento-- - Decremento

31

Exemplo atribuição

int a = 5;

a++; // Resultado de a = 6.

int y = 4;int y = 4;

int k = y++; // Resultado y = 5 e k = 4

32

Linguagem de Programação C#

•Atribuição

•Condição •Condição

•Repetição

33

Condicional if()

if(<condição>) {[Bloco-Instruções-1]

}}else {

[Bloco-Instruções-2]}

34

Condicional if()

if(<condição>) [Instrução-1]

else else [Instrução-2]

35

Exemplo de if()

char sexo = ‘M’;

if(sexo == ‘F’) {

idade = 45;

cintura = 20;

nasc = “Brasileira”;

}

36

switch(): cadeia de condiçãoswitch(<expressão>) {

case valor1:

[bloco de instruções]

break;

case valor2:case valor2:

[bloco de instruções]

break;

default:

[bloco de instruções]

break;

} 37

Exemplo switch()switch(categoria) {

case 1:

bonus = salario * 0.1;

break;

case 6:

bonus = salario * 0.07;

A instrução break deve serusada para que hajaabandono da estrutura.

break;

case 7:

bonus = 100;

break;

default:

bonus = 0;

break;

}38

Estrutura de repetiçãorepetição

39

while():Enquanto a condição verdadeira executa.

while (<condição>) {

[bloco de instruções]

}

40

do{

[bloco de instruções]

} while (<condição>);

Exemplo: while()

int num = 20;

int contador = 0;

while (num > 10)while (num > 10)

{

num = num - 1;

contador = contador + 1;

}

41

Exemplo: do while()

int num = 8;

int contador = 0;

do {do {

num = num - 1;

contador = contador + 1;

} while (num != 0);

42

Instrução for()

for(<inicio>;<condição>;<atualização>)

{

[bloco de instruções]

}

43

Exemplo 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;

contador = contador + 1;

}44

Quebra e permanência de ciclo em estruturas de ciclo em estruturas de

Controle.

45

Quebra de ciclo (break)

46

Estrutura for (para)Estrutura while (enquanto)

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;

}

47

Permanência de ciclo (continue)

48

Estrutura for (para) Estrutura while (enquanto)

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;

}

49

Entrada e Saída de Dadosde Dados

50

Classe: Console

Representa a entrada, assaídas, e os fluxos de erro padrãopara aplicativos do console. Estaclasse 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 umcaractere pelo teclado.

52

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 stringsem 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);Console.WriteLine(str);

54

Conversão de Tipos de DadosTipos de Dados

55

Método: Parse()

Converte uma String em umnúmero de acordo com seutipo de dado especificado.tipo de dado especificado.

56

Referência de tipos slide 23.

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);

57

Objetos Visuais Básicos e Manipulação de e Manipulação de

Eventos

58

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.

59

Exemplo: textBox

Sintaxe:

textBox1.text = <String>;

Exemplo:

textBox1.text = “Formação de TI”;

60

Componente que exibe mensagens em um formulário.

Propriedade:Propriedade:

text: Insere uma string no label.

61

Exemplo: Label

Sintaxe:

Label.text = <String>;Label.text = <String>;

Exemplo:

Label.text = “Escola”;62

Componente que cria umbotão de comandos.Permitindo o acionamento de uma ação definidaporumprocesso.porumprocesso.

Propriedade:

text: Insere umrótulo no botão de comandos.

63

Conceito de Evento

64

Eventos

Eventossãoaçõesdisparadaspelo usuárioou dispositivoemumdeterminadomomento.

65

umdeterminadomomento.

Controle de Eventos

SensorSolenóideTecladoDisp. Rede

Evento Disparado

66

Código de programa

Disp. Rede

Controlador

Evento Load()

private void Form1_Load(object sender, EventArgs e)

{

MessageBox.Show("Carregou Antes ****");

}

67

Executa o código antes de carregar o formulário.

Evento FormClosed()

private void Form1_FormClosed(object sender, FormClosedEventArgs e)

{

MessageBox.Show("Fechar Form");

}}

68

Executa o código após encerramento do formulário

Evento DoubleClick()

private void Form1_DoubleClick(object sender, EventArgs e)

{

MessageBox.Show("Efetuou clique em = "+this.Name);

}}

69

Dispara o código usando Duplo Click.

Evento MouseMove()private void FrmTeste_MouseMove(object sender, MouseEventArgs e)

{

MessageBox.Show("Moveu o mouse ");

}

70

Realiza o código quando mover o mouse.

Evento MouseHover()private void FrmTeste_MouseHover(object sender, EventArgs e)

{

MessageBox.Show(“Ao colocar o mouse no objeto ");

}

71

Realiza código quando apontar com mouse.

Eventos de Captura de teclasCaptura de teclas

72

Eventos KeyDown()private void FrmTeste_KeyDown(object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.F3 )

{

MessageBox.Show("Teste");MessageBox.Show("Teste");

}

}

73

Captura o código da tecla pressionada

Keys: Objeto que encapsula constantes

Reúne umvasto número de constantesque representamvalores das teclas decontrole.controle.

Sintaxe: Keys.<Teclas>

74

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 )

{

MessageBox.Show("Tecla F2 pressionada ");

}76

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

KeyUp: Quando soltar a tecla pressionada.

Evento KeyPress

private void FrmTeste_KeyPress(object sender, KeyPressEventArgs e)

{

MessageBox.Show("Caracter obtido foi "+e.KeyChar );

}}

Retorna com a tecla pressionada.

78

Objetos de Controle de listas Controle de listas

de Dados

79

Caixa de combinação permite inserir uma lista dedados escondida para umfutura seleção.

Propriedade: Items

Métodos:

Add(<ExpS>): Adicionaumastringnalista.Add(<ExpS>): Adicionaumastringnalista.

Insert(<ExpN>,<ExpS>): Insere emuma posiçãoda lista.

Remove(<ItemL>): Remove o iteminformado dalista.

RemoveAt(<Indice>): Remove umitem medianteao índice informado. 80

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”);

81

Exemplo 2: Prático de Insert:

Insere um elemento e uma determinada posição da lista.

Exemplo:

ComboBox1.Items.Insert(2,“Item-1”);

82

Exemplo 3: Prático de Remove():

Retira uma String, se a mesma, existir na lista.

Exemplo:

ComboBox1.Items.Remove(“Item-3”);

83

Exemplo 4: Prático de Remove():

Retira um elemento em uma determinando o elemento da lista.

Exemplo:

ComboBox1.Items.RemoveAt(3);

84

Método: Count

Retorna com a quantidade de elementos de uma lista.

Sintaxe:Sintaxe:

<VarInt> = comboBox1.items.Count;

85

Caixa de combinação permiteinserir umalista de dadosonde oselementosserãoapresentadosnatelaelementosserãoapresentadosnatelaemdeterminadonúmerodelinhas.

86

Observação

Todos os métodos mencionadosna caixa de combinação serãona caixa de combinação serãoherdados pelalista.

87

Capturando Dados de uma Lista ou Combo.uma Lista ou Combo.

88

• Captura um elemento da lista ou combomediante a seleção do usuário.

• Captura um elementoda lista informado o

Saída de dados usando Lista ou Combo.

89

• Captura um elementoda lista informado oindice.

• Captura vários elementos selecionados da lista(Lista).

Propriedaede Items[],Text Método toString()Método toString()

90

text

Captura um elemento da lista ou combo mediante a seleção do usuário.

Exemplo:

String dado = comboBox1.text;

91

Items[]

Captura um elemento da lista informado o índice.

Exemplo:

String dado = listBox1.Items[2].ToString();

92

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

93

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.

94

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>);

95

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());

}

96

Botões de Rádio e Caixas de VerificaçãoCaixas de Verificação

97

Botão de rádio Controle usadoquando se encontra um númeroreduzido de opções, dependendodereduzido de opções, dependendodeapenas uma acontecer para que haja aexecuçãode umprocessamento.

98

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;

}

100

CheckBox: Cria caixa deverificação permitindo que todosos dados sejam passiveis deos dados sejam passiveis deseleção.

101

Propriedades principais (CkeckBox)

Propriedade Descrição

checked Retorna um booleano caso botão esteja selecionado.

Name Cria o nome do objeto da

102

Name Cria o nome do objeto da classe RadioButton

Exemplo: CheckBox

if (CheckBox1.Checked)

{

......

103

......

}

Controle de Calendário

104

Realiza a criação de umacaixa de combinação nocaixa de combinação noformatodecalendário.

105

Exemplo: DateTimePicker

Saída do objeto DateTimePicker

106

Propriedades (DateTimePicker)Propriedade Descrição

Value Retorna a Data escolhida comsua respectiva hora, para umobjeto DateTime.

Day Retorna o dia para uma data

107

Day Retorna o dia para uma dataescolhida.

Month Retorna o mês para uma dataescolhida.

Year Retorna o ano para uma dataescolhida.

Exemplo: DataTimePicker

DateTime data = dateTimePicker1.Value;

MessageBox.Show(""+data.Day ) ;

MessageBox.Show("" + data.Month );MessageBox.Show("" + data.Month );

MessageBox.Show("" + data.Year );

108

Leitura e Exibição de ImagemImagem

109

Permiteexibir comosaídaodesenhodeumaimagem.desenhodeumaimagem.

110

Propriedades (PictureBox)

Propriedade DescriçãoImage Permite exibir uma imagem no vídeo.

SizeMode Normal,StrechImage, AutoSizee

111

SizeMode Normal,StrechImage, AutoSizee 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.

Exemplo:

pictureBox1.Load("C:\\flor.bmp");

112

Controle de TempoControle de Tempo

113

Cria um controlador detempopara resolver problemas depara resolver problemas detempo em uma determinadaaplicação.

114

Propriedades: Timer

Propriedade DescriçãoEnable Liga e desliga o temporizador

(true,False).

Interval Determinao tempo de espera para

115

Interval Determinao tempo de espera para execução do evento dentro do temporizado.

Exemplo de atividade temporizada

private void timer1_Tick_1(object sender, EventArgs e)

{

label2.Text = "Mostra - "+x;

x++;

}

116

Barra de Progressão Barra de Progressão

117

Barra de Progressão

Controle que permite verificarevolução de um determinadoevolução de um determinadoprocesso.

118

Propriedade (ProgressBar)

Propriedade Descrição

Maximum Valor máximo de limite da barra deprogressão.

Minimum Valor mínimo para inicio da barra de

119

progressão.

Value Valor de encaminhamento de progresso dabarra.

Step Número de saltos para preenchimento da barrade 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;

}

120