Region - formas de organizar o fonte

<< Click to Display Table of Contents >>

Navigation:  Novatos >

Region - formas de organizar o fonte

Previous pageReturn to chapter overviewNext page

Definição

A partir do Delphi 2005 a Borland criou um recurso muito útil, mas pouco utilizado chamado REGIONS.

 

REGIONS permite "esconder" partes do fonte que não são modificados constantemente.

Um exemplo: image um procedure que há várias linhas de código, porém o código poderia ser "separado" por assunto - como blocos.

Assim pode-se usar o REGION para separar estes blocos e mantê-los "fechados" para não atrapalhar a manutenção e manter o código "reduzido".

 

Exemplo

Exemplo prático, imagine um fonte como o trecho abaixo:

 

// inicio código

if not FileExists(FArqLog) then

  Msg.GravaLog('Arquivo ' + FArqLog + ' não encontrado ao gravar finalização');

 

if StrToIntDef(vars.Receb.COO, 0) = 0 then

  vars.Receb.COO := imp_COOAtual;

 

with TMemIniFile.Create(FArqLog) do

begin

  WriteString(INI_CAB, 'Status'      , 'F'           );

  WriteString(INI_CAB, 'COO'         , vars.Receb.COO);

  WriteString(INI_CAB, 'FinalizadoEm', mStr.GetDataHora);

  if LogDBF > '' then

    WriteString(INI_CAB, 'LogDBF', LogDBF);

 

  UpdateFile;

  Free;

end;

 

Lista.LoadFromFile(FArqLog);

Lista.SaveToFile(FArqLog);

// fim do código

 

Vamos supor que a parte do código que grava o ini (TMemIniFile.Create...) esteja otimizada e não é necessário "ser vista sempre". Crie um region:

 

{$REGION 'Local onde grava o ini' default=folded}

with TMemIniFile.Create(FArqLog) do

begin

  WriteString(INI_CAB, 'Status'      , 'F'           );

  WriteString(INI_CAB, 'COO'         , vars.Receb.COO);

  WriteString(INI_CAB, 'FinalizadoEm', mStr.GetDataHora);

  if LogDBF > '' then

    WriteString(INI_CAB, 'LogDBF', LogDBF);

 

  UpdateFile;

  Free;

end;

{$ENDREGION}

 

Ao fazer isso o Delphi colocará o sinal: [+/-] ao lado do region. Isto possibilidade "fechar" este trecho do fonte, ficando assim:

 

// inicio código

if not FileExists(FArqLog) then

  Msg.GravaLog('Arquivo ' + FArqLog + ' não encontrado ao gravar finalização');

 

if StrToIntDef(vars.Receb.COO, 0) = 0 then

  vars.Receb.COO := imp_COOAtual;

 

[+]   [Local onde grava o ini]

Lista.LoadFromFile(FArqLog);

Lista.SaveToFile(FArqLog);

// fim do código

 

Se o parâmetro default for igual a folded este trecho vai sempre aparecer "fechado" mesmo depois de fechar o projeto no Delphi.

Não há limite no uso de Regions, use-os sabiamente para fazer seu fonte ficar muito mais organizado.

 

Mais

Para saber mais: tutorial em português com telinhas, caso voce ainda não entendeu

http://www.imasters.com.br/artigo/3037/delphi/regions_no_delphi_2005/