Programação - Regras
Índice
Nomeclatura
Sempre no singular, unindo os seguintes prefixos na ordem indicada abaixo:
Prefixos indicando o Tipo: (Usado apenas ao mandar salvar a Unit.)
| Tipo | Abreviatura |
|---|---|
| Unit | u |
| Formulario | i |
| DataModule | m |
Prefixos indicando o Subtipo:
| Tipo | Abreviatura |
|---|---|
| Classe | T |
| Formulario | f |
| DataModule | DM |
Prefixos indicando o Grupo:
| Tipo | Abreviatura |
|---|---|
| Cadastro | Cad |
| Movimentacao | Mov |
| Relatorio | Rel |
| Consulta | Cns |
| Seleção | Sel |
| Configuração | Cfg |
| Importação | Imp |
| Exportação | Exp |
| Frame | Frm |
| Outros | Otr |
Categorização do nome:
- SubstantivoVerbo
- SujeitoVerbo
- GrupoSubgrupoVerbo
- TituloSubtituloSubtitulo2
Exemplos
| Nome | Nomeclatura no código | Nomeclatura da unit no código |
|---|---|---|
| Formulario de cadastro de CFOP | fCad_CFOP | ifCad_CFOP |
| Classe de cadastro de CFOP | TCad_CFOP | uTCad_CFOP |
| Formulario de relatorio de CFOP | fRel_CFOP | ifRel_CFOP |
| DataModule do Relatorio de CFOP | DM_CFOP | mDM_CFOP |
| - | - | - |
| Formulario de Cadastro de cliente * | fCad_CadastroCliente | ifCad_CadastroCliente |
| Formulario de Relatorio de cliente * | fRel_CadastroCliente | ifRel_CadastroCliente |
| Formulario de Seleção de cliente para inativação * | fSel_CadastroClienteInativar | ifSel_CadastroClienteInativar |
| Classe de Seleção de cliente para inativação * | TSel_CadastroClienteInativar | uTSel_CadastroClienteInativar |
| Classe para inativação de cliente *** | TOtr_CadastroClienteInativar | uTOtr_CadastroClienteInativar |
| - | - | - |
| Formulario de movimentação do Contas a Receber ** | fMov_ContaReceber | ifMov_ContaReceber |
| Formulario de relatorio do Contas a Receber ** | fRel_ContaReceber | ifRel_ContaReceber |
| Formulario de Baixa do Contas a Receber ** | fOtr_ContaReceberBaixar | ifOtr_ContaReceberBaixar |
| Classe de Baixa do Contas a Receber ** | TOtr_ContaReceberBaixar | uTOtr_ContaReceberBaixar |
* A tabela que armazena Clientes, Fornecedores, Funcionarios e demais,
é a mesma, no caso se chama "Cadastro", a palavra "Cadastro" no nome indica essa tabela e NÃO o ato de cadastrar.
** Da mesma forma que a "CADASTRO" o contas a receber e a pagar são armazenados na tabela de "Contas", se enquadrando na mesma explicação anterior. *** No caso a classe de seleção apenas localiza os clientes e os marca para serem inativados,
POREM o codigo para inativar os clientes selecionados ficam numa rotina a parte. O motivo para isso é simples, se for necessario que em uma tela ao inves de selecionar N clientes para serem inativados, for necessario adicionar um botão para inativar apenas 1 cliente, posso reaproveitar o codigo ja montado em "TOtr_CadastroClienteInativar" para inativar aquele cliente apenas, sem ter de antes consultar os clientes com a TSel_CadastroClienteInativar, para em seguida inativar.
Estrutura de Diretorios
Os dpr's e principais arquivos do projeto, ficam armazenados em: h:\Empresa\"NomeDaEmpresa"\Sistemas\"NomeDoPrograma" Os executaveis gerados, devem estar dispostos em: h:\Empresa\"NomeDaEmpresa"\_Exe
Demais arquivos, são organizados em subpastas de 4 niveis em h:\RepTmp\"Grupo"\"Subgrupo"\"Tipo"\"SubTipoEmpresa"
Sendo:
- Grupo: (Fixo)
| Fiscal |
| Vendas |
| Compras |
| Geral |
| Diverso |
| Financeiro |
| Estoque |
- Subgrupo: (Depende do grupo, por exemplo:)
| Grupo: "Venda" |
|---|
| Agenda |
| Geral |
| PDV |
| Pedido |
| Requisicao |
- Tipo
| Tipo |
|---|
| Cadastro |
| Movimentacao |
| Relatorio |
| Consulta |
| Seleção |
| Outros |
- Subtipo
| Subtipo |
|---|
| InterfaceGenerico |
| RNGenerico |
| InterfaceCampineira |
| RNCampineira |
Componentes de Layout
Utilizar Componentes das Palhetas Raize: Raize Button, Raize Display, Raize Edits, Raize Lists, etc... Para Grids: Utilizar a DBGrid, da Palheta DataControls
Nomenclatura dos Componentes
Adicionar o prefixo de acordo com o componente, e adicionar um nome de acordo com a função do componente(Prefixo + Nome):
(Não é necessário colocar nome em labels comuns)
| Componente | Prefixo |
|---|---|
| RzLabel | Lbl_ |
| RzEdit | Ed_ |
| RzButton | Btn_ |
| RzButtonEdit | BtnEd_ |
| RzMaskEdit | MskEd_ |
| RzComboBox | CmbBox_ |
| RzMemo | Mm_ |
| RzPageControl | PgCtrl_ |
| RzTabSheet | TabSht_ |
| RzMenuButton | MenBtn_ |
| RzGroupBox | GrpBox_ |
| RzPanel | Pn_ |
Exemplos
| Componente | Prefixo | Nome | Nome Final |
|---|---|---|---|
| RzEdit | Ed_ | CNPJ | Ed_CNPJ |
| RzButtonEdit | BtnEd_ | Razao Social | BtnEd_RazaoSocial |
Obs: Para Campos com conexão da base de dados, adicionar "DB" ao Prefixo:
| Componente | Prefixo | Nome | Nome Final |
|---|---|---|---|
| RzDBEdit | DBEd_ | CNPJ | DBEd_CNPJ |
| RzDBButtonEdit | DBBtnEd_ | Razao Social | DBBtnEd_RazaoSocial |
| RzDBLabel | DBLbl_ | Sigla | DBLbl_Sigla |
Variaveis
Váriaveis que serão utilizadas em toda a Unit, são declaradas sempre no PRIVATE e acrescentado o prefixo "F" Exemplo:
Type
TUnit1 = class(TComponent)
private
FValorTotal: Extended;
public
end;
Váriaveis Declaradas em Units, que serão usadas em outras Units/Forms, são encapsuladas no PUBLIC, retirando o prefixo da PRIVATE Exemplo:
Type
TUnit1 = class(TComponente)
private
FValorTotal: Extended;
public
property ValorTotal: Extended Read FValorTotal Write FValorTotal;
end;
Propriedades das Funções: Prefixo "p" Exemplo:
Procedure Gerar(pValor: Extended); Function Imprimir(pSegundaVia: Boolean);
Váriaveis Declaradas dentro das Funções: Prefixo "v" Exemplo:
Procedure Gerar; var vValor: Extended; begin end;
Váriavel Global: Prefixo "G" Exemplo:
GDataAtual GValor
Obs: Evite utilizar váriaveis GLOBAIS!