Tabela de prefixos sugeridos
Embora os prefixos não sejam requeridos, utilizá-los tornará nosso código bem mais profissional e fácil de ser entendido. A seguir está uma lista dos prefixos sugeridos pela Microsoft:
Tabela 9
Prefixo | Tipo de Objeto | Exemplo |
Chk | CheckBox | chkReadOnly |
Col | Collection | colFormObjects |
Cbo | ComboBox | cboEnglish |
Cmd | CommandButton | cmdCancel |
Cmg | CommandGroup | cmgChoices |
Cnt | Container | cntMoverList |
Ctl | Control | ctlFileList |
Cad | CursorAdapter | cadInventory |
<user- | Custom | user-defined |
defined> | ||
Dte | DataEnvironment | dteSalesForm |
Edt | EditBox | edtTextArea |
Frm | Form | frmFileOpen |
Frs | FormSet | frsDataEntry |
Grd | Grid | grdPrices |
Grc | Column | grcCurrentPrice |
Grh | Header | grhTotalInventory |
Hpl | HyperLink | hplHomeURL |
Img | Image | imgIcon |
Lbl | Label | lblHelpMessage |
Lin | Line | linVertical |
Lst | ListBox | lstPolicyCodes |
Olb | OLEBoundControl | olbObject1 |
Ole | OLE | oleObject1 |
Opt | OptionButton | optFrench |
Opg | OptionGroup | opgType |
Pag | Page | pagDataUpdate |
Pgf | PageFrame | pgfLeft |
Prj | ProjectHook | prjBuildAll |
Sep | Separator | sepToolSection1 |
Shp | Shape | shpCircle |
Spn | Spinner | spnValues |
Txt | TextBox | txtGetText |
Tmr | Timer | tmrAlarm |
Tbr | ToolBar | tbrEditReport |
Xad | XMLAdapter | xadRemoteXMLData |
Xfd | XMLField | xfdPrices |
Xtb | XMLTable | xtbInventory |
Nosso formulário de Cadastro de Usuários deverá ficar com a aparência exibida na figura 36. Os botões de comando para todos os demais formulários de cadastro serão os mesmos. Por isso é bom planejarmos para que o código seja 100% reutilizável. Dessa forma estaremos aplicando bem os conceitos da OOP.
Figura 36 – Janela de Cadastro de Usuários
Nosso formulário terá os seguintes métodos e propriedades personalizados:
Tabela 10 – Métodos
MÉTODO | OBJETIVO |
BloquearRegistro() | Bloqueia o registro para operações de alteração e
remoção (delete). |
CoordenaBotoes() | Coordena o estado dos botões do formulário de acordo
com cada operação. |
CoordenaControles() | Coordena o estado dos controles de edição dos dados,
tornando-os editáveis ou não editáveis. |
CoordenaNavegacao() | Coordena o estado dos botões de navegação do
formulário. |
CriticarDados() | Reservado para a escrita de código para validação dos
dados do formulário. |
PosicionarPrimeiroCampo() | Executa o comando armazenado na propriedade
PrimeiroCampoFoco. É usado para posicionar o cursor no campo que será o primeiro foco em operações de adição e edição de registros. |
TratarErro() | Faz o tratamento de erros do formulário. |
Tabela 11 – Propriedades
PROPRIEDADE | OBJETIVO |
PrimeiroCampoFoco | Nesta propriedade será colocado o comando responsável
pelo posicionamento do foco no primeiro campo editável. |
Além dos métodos já apresentados, ainda iremos programar o evento Init do formulário a fim de definirmos as configurações iniciais do formulário. Sim, eu disse programar o evento Init. O fato é que um evento também pode ser programado como um método. Ou seja, podemos determinar código para ser executado quando um evento ocorre. Assim o código programado no evento Init logo será o método Init. Pra descomplicar um pouco, apenas tenha em mente que o evento em si não faz nada. Ele apenas ocorre e pronto. Aí, para facilitar nossa vida podemos escrever códigos quando eles ocorrem. Ao código escrito ali no evento, denominamos método.
Antes de prosseguirmos é bom que conhecermos a ordem de ocorrência dos principais eventos de um formulário do Visual FoxPro a fim de que quando precisarmos codificá-los não venhamos cometer alguns enganos.
Tabela 12 – Ordem de ocorrência dos principais eventos num formulário
EVENTO | DESCRIÇÃO |
Load | Ocorre antes do objeto form (ou outro qualquer) ser
criado. Caso queira evitar a criação condicional de um form, use um RETURN .F. a patir do evento Load e o objeto não será criado. |
Init | Ocorre quando o objeto é criado. Cada objeto ou controle
incluso no formulário também possui um evento init. Todos os eventos Init’s de cada controle incluído no formulário ocorrem antes do Init do formulário, ou seja, todos os init’s dos objetos contidos ocorrem antes do evento Init do container (formulário, recipiente). Você pode usar o evento init para fazer configurações no formulário ou nos demais controles deste. |
Show | Apesar deste não ser classificado como um evento
propriamente dito, é o terceiro a ocorrer quando da ativação normal de um formulário. É usado para mostrar o formulário e ainda para configurar a forma como o mesmo será exibido. |
Activate | Ocorre no momento que o formulário é exibido e torna-se
ativo. |
GotFocus | Quando da ativação de um formulário, o primeiro objeto
da lista que estiver inserido no formulário receberá o foco. Este evento ocorre exatamente no momento em que o primeiro objeto recebe o foco. Ocorre também a partir daí sempre que um objeto recebe o foco dentro do formulário. |
É importante saber que diversos outros tipos de objetos também possuem Propriedades, Eventos e Métodos (PEM’s) de mesmo nome. Apesar de terem PEM’s de mesmo nome, a execução desses PEM’s em um objeto não interfere na execução dos PEM’s de outro objeto. A esta característica damos o nome de ENCAPSULAÇÃO.
Agora que já estamos conhecendo a ordem de ocorrência dos eventos quando da execução de um formulário já podemos ter idéia de onde adicionar o código. Existem diversos outros eventos que ocorrem quando um formulário está sendo executado, mas à medida que formos precisando deles passaremos a conhecê-los em mais detalhes.
Continua em Desenvolvendo em VFP – Parte 9