Trabalhando com formulários

Os formulários são considerados a principal forma de interagir com o usuário da aplicação. São através deles que os usuários inserem dados, escolhem opções, e realizam tudo que precisam no sistema. Há outras formas de interação como os menus, relatórios, etc.

Como quase tudo no Visual FoxPro, existe mais de uma forma de programar os formulários. Os mesmos podem ser criados a partir da Form Designer ou programados diretamente através de PRG’s. Com certeza a primeira opção será mais produtiva uma vez que tudo pode ser feito de forma visual, enquanto que a segunda precisa de ser codificada na munheca.

Como nosso objetivo é produzir mais em menos tempo, vamos partir para a Form Designer.

A ferramenta Gerenciador de Projetos possui uma aba dedicada aos documentos que são Formulários, Relatórios e Etiquetas.

Figura 25 – Aba Documents do gerenciador de projetos

Vamos criar um formulário e estudarmos os seus principais elementos. Estando na aba “Documents“, clique em “Forms” e depois em “New“… Aparecerá o seguinte diálogo:

Figura 26 – Diálogo New Form

No diálogo acima, escolha “New Form“. A Form Designer será aberta, conforme mostra a próxima figura.

Figura 27 – Ferramenta Form Designer

A Form Designer é praticamente a ferramenta mais complicada de se entender no Visual

FoxPro. Uma vez que você a domine, achará as demais ferramentas fáceis de serem usadas.

Na figura 27 temos a área de desenho do formulário onde iremos inserir todos os controles. Temos também a barra de ferramentas Form Controls. Essa barra de ferramentas disponibiliza ao  desenvolvedor  todos  os  controles  possíveis  de  se  inserir  em  um  formulário.  São  os controles básicos do Visual FoxPro. Como podemos personalizar (subclassificar) cada um desses controles e criar os nossos próprios, temos ainda a opção de anexar nossas bibliotecas de controles para serem exibidas na barra de ferramentas Form Controls.

Assim que a Form Designer é aberta um novo menu chamado Form é adicionado à barra de menus. Esse menu serve para disparar algumas opções relacionadas ao formulário. Veja a figura 28:

Figura 28 – Menu Form

À medida que formos precisando, exploraremos estas opções.

Temos ainda um componente muito importante. Na verdade tão importante quanto a Form Designer. É a janela de propriedades, a qual utilizamos para configurar desde o formulário até as mais diversas características de cada controle nele incluso. Veja a figura 29:

Figura 29 – Janela de Propriedades

Através da janela de propriedades podemos configurar as Propriedades, Eventos e Métodos (PEM’s) dos formulários e de qualquer outro Objeto visual que estiver contido no formulário, relatório e até mesmo da janela principal do Visual FoxPro (_Screen).

Há cinco abas nessa janela: All, Data, Methods, Layout e Other. Vejamos para que servem: All – exibe a lista completa de todos as PEM’s.

Data – exibe as propriedades relacionadas a dados.

Methods – exibe todos os métodos e eventos do controle selecionado.

Layout – exibe todas as propriedades relacionada com o formato de exibição do objeto selecionado.

Other – exibe outras propriedades adicionais.

Algumas coisas que você deve saber

  1.  Para editar uma propriedade, evento ou método a partir da janela de propriedades basta clicar sobre a propriedade e depois editar o valor na caixa de edição, conforme figura 30. No caso do evento ou método, você deve clicar duplo.

Figura 30 – Caixa de edição de propriedade

  1. Quando você altera uma propriedade, o valor alterado aparecerá em negrito na janela de propriedades facilitando a identificação.
  2. Os valores que aparecem no formato itálico são valores somente leitura (ready only), ou seja, não podem ser editados.

Além dos componentes já apresentados temos um outro que também é muito importante. Trata-se do Ambiente de Dados (Data Environment). O ambiente de dados é responsável por gerenciar a abertura e fechamento das tabelas do banco de dados, além de oferecer recursos de Buffer (proteção). É claro que não é obrigatória a utilização do ambiente de dados. Mas já que é um recurso que está disponível e funciona muito bem, porque não utilizá-lo?

Através do ambiente de dados (Data Environment) podemos adicionar tabelas do banco de dados, tabelas soltas (free tables) ou ainda views (visões).

As tabelas que serão apresentadas ou manipuladas neste ambiente podem ser operadas desde os mais clássicos comandos do mundo xBase como APPEND BLANK, REPLACE, até comandos SQL como INSERT SQL, UPDATE SQL, DELETE SQL, SELECT SQL, etc.

Em nosso primeiro formulário vamos procurar usar a maioria das ferramentas aqui apresentadas, de forma que as conheçamos na prática.

Com o formulário que criamos agora há pouco, vamos configurar algumas propriedades para melhor adequá-lo à realidade de nosso software. Vamos criar um formulário para cadastro/manutenção de usuários do sistema.

Vamos fazer as seguintes configurações:

  1. Com o formulário aberto, clique sobre o mesmo e depois clique sobre a aba Layout da janela de propriedades.
  2. Localize a propriedade Caption e clique sobre a mesma e então digite Cadastro de Usuários. Ao pressionar ENTER, o título do formulário será mudado de Form1 para o aqui informado.
  3. Mude a propriedade AutoCenter para .T. (True). Isto fará com que a janela seja centralizada automaticamente ao ser aberta.
  4. Ajuste a propriedade ShowTips para .T. (True).
  5. Agora mude para a aba Data da janela de propriedades, localize a propriedade BufferMode e altere-a para 2 – Optmistic. Isso definirá o tipo de bloqueio empregado na hora de realizar as alterações no banco de dados para otimista, ou seja, só tentará o bloqueio quando for efetivar a gravação através da função TABLEUPDATE().
  6. Nesta aba, altere ainda a propriedade DataSession para 2 – Private Data Session. Isso garantirá que cada instância desse formulário terá uma sessão de dados separada. É importante saber que quando um formulário usa uma sessão de dados privada, todos os comandos SET para configuração de ambiente devem ser configurados dentro do próprio  formulário.  É  claro  que  isso  parece  trabalhoso  à  medida  que  nossos formulários vão aumentando, mas graças às técnicas de Programação Orientada a Objetos (OOP) tudo isso é muito fácil.

Continua em Desenvolvendo em VFP – Parte 7

Print Friendly, PDF & Email

Sobre o Autor