quarta-feira, 26 de janeiro de 2011

Vb modo Windows


Quando abrimos um projecto em modo de Windows no VB aparece automaticamnete uma Windows Form. com o nome Form1(como vemos na imagem em cima).
Quando quisermos utilizar algum dos componetes para a aplicação, temos acessivel uma janela «Toolbox» do lado esquerdo(como na imagem acima).
Vou explicar alguns exemplos de como funcionam os componentes:

  • O componente mais baisco é o «textbox», que é utilizado para escrever texto ou para mostrar texto.(Como se pode comprovar na imagem em cima)
Normalmente, quando inserimos codigo para o TexBox, este tem automaticamnete «*Private Sub TextBox1_TextChanged», que é o formato do envento que estamos a trabalhar, pois este evento é chamado sempre que o contéudio da caixa muda



  • «Label» são utilizados para "escrever ou representar" texto. (como vemos na imagem em cima)

  • «Button», quando pressionado, este executa todas as funções, todas as operações que o programa contem.

  • «GroupBox», tem como função agrupar um conjunto de controlos ou componentes para melhor facilidade de visualização, ...



  • «RadioButton» e «CheckBox» tem funções semalhantes, ambos são usados para marcar e desmarcar opções, mas  o radiobutton permite escolher varias opções ao mesmo tempo ou seja mutuas (podemos utilizar varios radioButton ao mesmo tempo ), enquanto que o checkBox só permite escolher um checkbox (como vemos em cima). 

  • «PictureBox» é uma box que serve para colocar imagens no form que queremos visualizar.


  • «MenuStrip» tem como função possibilitar fazer um menu e submenus, ...
Este é simples de utilizar, pois é so arrastar o «MenuStrip» e escrever o nome numa caixa onde apresenta «Type Here» e ao clicar escrever o código. É uma meneira de fazer um menu fazilmente.



  • «NumericUpDown», serve para por exemplo, quando queremos contar o número de vezes que é efectuado o click de um botão.
  • «Rich textbox», possui recursos para formatação de textos. Dá até para criar um editor de textos com recursos de formatação de fontes, cor, sobrescrito, subscrito, negrito, sublinhado, itálico, rasurado, etc...

  • ...

No Vb permite alterar as propriedades de cada evento e de cada componente que temos no nosso Form.


Propriedades
As propriedades permitem que os atributos tenham valores, indicando o estado do objecto (componente/controlo), definido pelo programador ou já defendidos por defeito / pelo programa.
A cada controlo da plataforma VB está associado um conjunto de propriedades e eventos que pode ser visualizado na janela «Properties», como esta na primeira imagem em acima.
E:.
         Propriedade Name:  em que é permitido mudificar o mome do objecto
         Limite: por defeito o limite é de 2048 caracteres ou, caso a propriedade Multiline estiver com o valor True, este limite pode ir até 32KB.
         Enabled: O valor por defeito True. Se o valor for False a caixa de texto/pictureBox/label/ … o objecto fica desactivada (por defeito em Windows o cinza claro)
         Multiline: O valor por defeito False, indicando que a caixa de texto/ label só tem uma linha. Se o valor for True, indica que o texto poderá ter mais linhas
         Visible: O valor por defeito True, indicando que o comando é visível em run-time.
         Location: Esta propriedade indica a posição em pixels do controlo
         Size: Esta propriedade permite alterar o tamanho do controlo, através dos valores do comprimento (Width) e largura (Height)
         AutoSize: Por defeito a propriedade AutoSize tem o valor True, indicando que o seu tamanho se ajusta ao texto introduzido
         Locked: O valor por defeito False. Se for True a posição do controlo não pode ser alterada
         PasswordChar: A utilizar quando se pretender esconder o texto escrito. O carácter desta propriedade será o único utilizado para representar o texto escrito
         ReadOnly: O valor por defeito False. Se o valor for True não será permitido fazer a edição da caixa de texto
         TextAlign: O alinhamento do texto por defeito é Left (à esquerda). Esta propriedade permite alterar o alinhamento do texto (Left, Center, Right)
         TextAlign: O texto que se encontra no botão pode ser alinhado horizontal e verticalmente.
         Image: Esta propriedade permite adicionar uma imagem ao botão ou a PictureBox ou … . A propriedade ImageAlign indica com a imagem será alinhada, por exemplo.
         ImageLocation: Propriedade do tipo texto. Permite obter ou alterar nome completo do ficheiro que contém a imagem. Apenas indica qual a imagem não a carrega para o controlo.
         Image: Propriedade do tipo imagem. Permite carregar a caixa de imagem com um objecto da classe Image.
       SizeMode: Propriedade que define o modo como a imagem será mostrada no controle: AutoSize, Normal, CenterImage ou StretchImage.
        
Entre outros, estes são os mais alterados, nas propriedades dos nossos eventos.


Tipos de acesso

Como na linguagem C, existia variaveis globais e variaves locais, em Vb, existe eventos publicos, privados, protegidos, ..., que permite obter restrições ou acesso á códigos em deferentes subprogramas.
Exemplos de tipos de acesso:
PUBLIC à Os membros da classe não possuem qualquer restrição e podem ser acedidos por qualquer programa.
PRIVATE à Os membros somente podem ser acedidos a partir da própria classe.
PROTECTED à Os membros são acessíveis a partir da própria classe e das classes derivadas.
FRIEND à Os membros são acessíveis somente dentro do programa que possuem a declaração da classe.
PROTECTED FRIEND à Os membros são acedidos somente pelo código de dentro do projecto e pelo código na classe derivada.

Ex:
Private Sub bt_ActualizarSaldo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_ActualizarSaldo.Click

        If txt_Numero.Text = 1234 Then
            c1.SetNumero(1234)
            a1.SetNome("claudia valente")
            txt_Titular.Text = a1.GetNome()
            c1.SetSaldo(3.1)
            txt_Saldo.Text = FormatCurrency(c1.GetSaldo())
            RadioButton5.Select()


        End If
End Sub

* Private Sub TextBox1_TextChanged, porque ao clicar na texbox tera o código privado, ou seja, só pode ser acedido aquele código ao respectivo textbox, mais ninhum objecto ira ter acesso ao código.


terça-feira, 25 de janeiro de 2011

Windows Application em VB para o Sistema de Gestão Escolar

O meu projecto tem como função através de dados de um utilizador e seu respectivo número de cartão, fazer a leitura do cartão (com nome, género e o saldo); poder comprar refeições, café e produtos da pastelaria; carregar o cartão com os valores que desejar, …
Inicialmente, comecei a preocupar-me essencialmente com as funções básicas e utilizei como base uma aplicação já iniciada. (versão 1)





Após a aplicação base, foi feito uma nova versão mas esta com novas melhorias, principalmente a nível do carregar. Estas melhorias teria com objectivo a escolha do valor a carregar e uma caixa para carregar um valor que não tivesse como escolha.
Também teve alguns melhoramentos a nível visual, para demonstrar as coisas mais importantes que a aplicação tem.
(versão 1.1)





No final de concretizar esta versão, que ainda tinha como visual uma aplicação já feita por outro programador(a), decidi fazer a minha própria versão, com poucas distinções desta versão. (versão 2)




No final desta versão, observei que caso o utilizador queira mudar o número de cartão para outro, os dados do anterior estariam na mesma.
Então, na versão seguinte, o utilizador para mudar de numero de cartão primeiro terá de clicar no botão <outro cartão>, inicializando tudo para zero e assim este já poderá mudar de utilizador.
Nessa versão também optei por possibilitar o anualmente do cartão, para caso que o utilizador engana-se na quantidade a carregar, poder anular.

Para terminar, nesta versão, optei também para colocar um botão de sair, que inicialmente também tinha, mas fo-lhe retirado. Este permite que o utilizador não ser obrigado a clicar em cima, no botão normal de fechar, estando por exemplo a carregar.

 

Também fui util usar no topo da aplicação o logotipo da escola que o sistemas de Gestão irá ser utilizado, para melhor identificar, como se apresenta na figura em baixo.
(versão 2.2)



Após ter concluído o objectivo desta aplicação, modifiquei a aplicação para conter outras tarefas e melhorar a nível visual.
Na proxima versão, irá ser possivel escolher o que deseja comprar na pastelaria, no café ou para refeição.
Este esta muito mais complexo, mas o valor final, depois das despeças deveria ser o valor que o cartão ficaria, o que não é o caso.
Mas esta versão ainda esta em manutenção, pois apesar de já poder comprar produtos concretos na pastelaria, no café e para refeições, o saldo ainda não podem ser actualizados no final da compra …










terça-feira, 11 de janeiro de 2011

visual Basic VS linguagem C

Hoje, decidi postar as diferenças encontradas entre a linguagem C e o VB no modo de consola, para melhor entender como funciona.
Antes de mais tenho aqui os diferentes modos de iniciar...

Modo de iniciar da linguagem C

Modo de iniciar do Visual Basic

OK.
Agora vamos ver as diferenças entre um programa para escrever na consola a seguinte frase: "Bem_Vindo ao Visual Basic 2008".

C:
 #include <stdio.h>
main(){
            printf("Bem_Vindo ao Visual Basic 2008\n ");
            system("pause");
            return;
}

VB:
Module Module1
            Sub Main()
                           Console.WriteLine("Bem_Vindo ao Visual Basic 2008")
                           Console.ReadLine()
            End Sub Module
End Module

Ou seja, aqui poderemos ver que em vez de utilizar bibliotecas, utiliza-se "Module Module 1", ou seja Module + nome de Module utilizados, ex: Module1; 
E como é POO em vez de main tem "SubMain", em que chama a subrutina;
Para escrever utiliza-se Console.WriteLine(), pois é no modo de consola e escreve por linha, em vez de printf(" \n "); ;
O nosso "Console.ReadLine()", serve como system("pause"), para parar a consola e vermos o obtido do nosso código, mas este é a leitura de uma linha no modo de consola, ou seja, vai esperar ate ler uma linha para terminar;
EndSub para terminar o SubMain e EndModule para terminar o Module, enquanto, em C utilizava return; para terminar e {} para iniciar e terminar o código do main.

Depois de escrever, vamos ver como se calcula dois números pedidos pelo utilizador e visualizar na consola o resultado das operações da calculadora (+, -, /, *)

C:

#include <stdio.h>
main(){

       int val1, val2;
       printf("Introduza um valor: ");
       scanf("%d", & val1);
       printf("Introduza outro valor: ");
       scanf("%d", & val2);
      
       printf("%d + %d = %d\n", val1, val2, val1 + val2);
       printf("%d - %d = %d\n", val1, val2, val1 - val2);
       printf("%d * %d = %d\n", val1, val2, val1 * val2);
       printf("%d / %d = %d\n", val1, val2, val1 / val2);
      
       system("pause");
       return;
}

VB:
Module Module1
    Sub Main()

        Console.Write("Introduza um valor: ")
        Dim val1 As Integer = CDbl(Console.ReadLine)
        Console.Write("Introduza outro valor: ")
        Dim val2 As Integer = CDbl(Console.ReadLine)
        Console.WriteLine()

        Console.WriteLine(val1 & " + " & val2 & " = " & val1 + val2)
        Console.WriteLine(val1 & " - " & val2 & " = " & val1 - val2)
        Console.WriteLine(val1 & " * " & val2 & " = " & val1 * val2)
        Console.WriteLine(val1 & " / " & val2 & " = " & val1 / val2)
        Console.ReadLine()
       
        End Sub

End Module

 

Aqui podemos ver várias diferenças.
1. Variáveis:
No VB as variáveis não necessitam de ser definidas no inicio do programa com o C.
Dim val1 As Integer --> int val1;
Dim é para dizer a dimensão da variável
val1 é o nome
As Integer é para dizer a dimensão da variável ou o "tipo", neste caso, inteiro.
Nota: As variáveis em C são como em Vb mas estas tem de ser escritas por extenso.

2. Dim val1 As Integer = CDbl(Console.ReadLine)
No VB poderemos definir as variáveis quando necessitamos, neste caso lemos as variáveis enquanto define-se. Em vez de:  scanf("%d",&val1); --> CDbl(Console.ReadLine)
CDbl (Console.ReadLine) converte uma string para um número decimal, ou seja, converte os algarismos que o utilizador pede da variável, para inteiros, lendo por linha.

3.  Console.WriteLine(val1 & " + " & val2 & " = " & val1 + val2)
Console.WriteLine, como já disse em cima, serve para escrever.
(val1 & " + " & val2 & " = " & val1 + val2) --> printf("%d + %d = %d\n", val1, val2, val1 + val2);
Em VB utilizamos, nome_da_variavel &, quando queremos ver o valor de uma variável, enquanto em C, o & seria para o endereço da memória, em VB é apenas para refere-se ao valor atribuído pelas variáveis.
" " será o que ira ser apresentado no ecrã.


Agora vamos ver qual é a diferença na "estrutura If"

Em C:
if(«condição»){
«instruções»
}
else{
«instruções»
}

Em VB:
If («condição») Then
«instruções»
Else
«intruções»
End If

Neste caso, podemos verificar que no VB em relação ao C é muito parecido.
Apenas é obrigado a colocar <Then> depois da condição, e para terminar EndIf em {} no inicio e no fim.


Agora vamos ver qual é a diferença na "estrutura de repetição (ciclos) - For"

Em C:
for(i=0;i<x;i++){   ou seja, for(inicialização; valor_terminar; actualizar)
«instruções»
}

Em VB:
For i=1 To x   ou seja, For inicialização To valor_terminar
«instruções»
Next
No VB não actualiza a variável i, pois este actualiza automaticamente de um em um.
Portanto é de um valor inicializado ate ao que se deseja terminar
E no final «Next» que significa que ira para o próximo ponto do código em vez {}


Ciclo While:

Em c:
while(«condição») //enquanto a condição for verdadeira
{
«instruções»
}

Em vb:
Do While «condição»
     <instruções> ‘(O ciclo mantêm-se enquanto se verificar a condição)
Loop


Ciclo  Do:

Em c:

do
{
«instruções» // é sempre executado 1 vez
}
while(«condição»); // repetir enquanto a condição é verdadeira
{
«instruções»
}


Vb:
Do Until «condição»
       «instrução» ‘( O ciclo mantêm-se até que se verifique a condição )
Loop


Case:

Em C:
switch(x) // Executa um dos vários grupos de instruções, dependendo do valor destas.
{ case 1:
{ instrução1 }
break;
case 1:
{ instrução2 }
break;

}

Em VB:
Select Case «expressão»  ‘Executa um dos vários grupos de instruções, dependendo do valor destas.
          Case  «expressão1»
            «instruções»
         Case « expressão2»
            «instruções»
         ...
End Select


Os comentários:

Em c:
// Comentário por linha
/* e */ comentário no inicio ate ao fim

Em Vb:
' Comentário por linha


Operador Descrição:

Em c à vb
== Igualdade à  =
!= Diferente à <>
< Menor à <
<= Menor ou igual à <=
> Maior à >
>= Maior ou igual à >=
|| "ou" lógico à Or
&& "e" lógico à And
...

Entre outros, estes são algumas das principais diferenças entres a Linguagem C e o Visual Basic …

quarta-feira, 5 de janeiro de 2011

Inicialização da POO e do VB (diferença entre programação sequencial e por eventos)...

Esqueci-me totalmente do blog, pois após a visita de estudo sobre "rede social" estivemos a realizar um relatório sobre a API (Application programming interface)  de uma aplicação a nossa escolha. Uma API é definida como o conjunto de recursos que permitem criar uma interface com um sistema operativo - por exemplo Windows API - ou qualquer outra biblioteca ou DLL, que forneça funções que possam ser chamadas por programas de aplicação. Trata-se de um conjunto de rotinas, protocolos e ferramentas para a construção de aplicações de software.
A aplicação que escolhi fui o Twitter, que através da API <tentei> postar um comentário com o Visual Basic.
Após a conclusão do relatório e sua apresentação á turma, aprendi e desenvolvi outro trabalho, mas este sobre inicialização a POO (programação orientada a objectos).
Anteriormente tinha falado sobre programação sequencial, que tinha uma sequência, para um  problema a resolução tem sempre um inicio, meio e fim. É unidireccional, um programa sequencial possui os seguintes passos:
1. Inicializar todas as variáveis;
2. Ler os dados;
3. Aplicar um algoritmo sobre os dados;
4. Escrever os resultados.
(O algoritmo poderia ser diferente, desde que obedeça aos passos)

Este provê um melhor controlo sobre o fluxo de execução do código e tem um linguagem fácil de entender.
Enquanto agora estou a aprender a programação por eventos. Este é configurado como uma colecção de tratadores que são utilizados quando os vários eventos ocorrem. Um tratador de eventos não é mais do que uma subrotina de um programa, denominado procedimento de evento. Um programa dirigido por eventos pode ser imaginado como tendo os seguintes passos:
1. Inicializar;
2. Configurar a interface;
3. Esperar por um evento;
4. Quando um evento ocorrer, deve-se tratá-lo;
5. Ir para o passo 3 (o estado de espera).
A linguagem de programação utilizada para implementar os tratadores de eventos pode ser a programação orientada a objectos.
Assim um evento é um objecto, pois são subrotinas ou subgrupos de um programa.
No entanto este é melhor relativamente a programação sequencial, porque reduz no custo de manutenção, pois existem características que permitem que, quando for necessária alguma alteração, modifique-se apenas o objecto que necessita desta alteração, e ela altera automaticamente; aumento na reutilização de código, pois fornece a possibilidade de um objecto permitir e usar como se fossem os seus métodos e a estrutura de outro objecto; …
Contudo ainda existe também alguns conceitos fundamentais dos quais a POO utiliza:
CLASSE - representa um conjunto de objectos com características afins. Uma classe define o comportamento dos objectos, através de métodos e quais estados que ele é capaz de manter, através de atributos.
OBJECTO - é uma instância de uma classe. Um objecto é capaz de armazenar estados através dos seus atributos e reagir a mensagens enviadas para ele, assim como de se relacionar e enviar mensagens a outros objectos.
MENSAGEM - é uma chamada a um objecto para invocar um dos seus métodos, activando um comportamento descrito pela sua classe. Também pode ser direccionada directamente a uma classe (através de uma invocação a um método dinâmico).
ENCAPSULAMENTO - ocultação da composição interna das classes, controlando o acesso aos seus dados e ao código das suas funções membro.
HERANÇA - possibilidade de derivação de novas classes a partir de outras já existentes, recebendo os seus atributos e funcionalidades.

Para aprender a programação orientada a objectos, aprendei a programar no Visual Basic 2008.
 No VB aprendi a linguagem no modo de Console Application (é parececido ao modo de consola da linguagem C, pois é programação sequencial)  e Windows Form Application onde podemos interagir com os chamados objectos (programação por eventos).
...