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!