A forma mais clara de se usar o alinhamento horizontal é agrupar palavras iguais e ordenadas alfabeticamente de modo crescente. Por exemplo:



HorizontalVariableAlignment.prw
#INCLUDE "TOTVS.CH" 

Function HorizontalVariableAlignment()

	Local cCharacters        := ""
	Local nIntegers          := 0
	Local lTrueOrFalse      := .T.
	Private lFalseOrTrue    := .F.
	Private cMoreChars      := ""
	Public cOthersChars     := ""
	Public cStrings          := ""       
	Static lThisIsTrue      := .T.

Return



Assim, caso houver muitas variáveis, a busca por uma específica será mais prática; Você irá buscar pelo escopo da variável (ordenado alfabeticamente e de modo crescente), depois pelo nome (também ordenado alfabeticamente e de modo crescente, porém ignorando a notação húngara). Note também que a distância dos tipos e dos nomes em relação ao inicio da linha é o mesmo.

O mesmo princípio se aplica a condicionais simples e complexas:



HorizontalConditionAlignment.prw
#INCLUDE "TOTVS.CH"


Function HorizontalConditionAlignment()

    Local lVar1 := .T.
    Local lVar2 := .F.
    Local lVar3 := .T.
    Local lVar4 := .F.
    Local cVar5 := ""
    Local cVar6 := ""
    If lVar1 .And. !lVar2
        ConOut("Por enquanto está tudo bem.")
        If  (lVar1       .Or. !lVar2)                           .And.;
            (lVar3       .Or. !lVar4)                           .And.;
            (cVar5 == "" .And. cVar6 == "")
            ConOut("Entrou.")
        EndIf
    EndIf


Return



A organização exemplificada pode variar caso a caso, o importante é manter as condicionais complexas legíveis e de fácil interpretação. Na maioria dos casos, deve-se quebrar a condição em condições encadeadas e simples.

  • Sem rótulos