Qual o correto alinhamento do Case com begin/end?

Delphi

13/02/2007

Uma dúvida que sempre tive e ninguém nunca conseguiu sanar... :cry:
Qual o alinhamento correto que deve ser usado em um case que tem um begin / end :?:
case ComboBox1.ItemIndex of
  0: begin
    DoSomething;
    DoMoreElse;
  end;
  1: begin
       DoAnything;
       ShowMessage(´ItemIndex = 1´);
     end;
  2:
  begin
    BitBtn1Click(nil);
    Caption := ´ItemIndex = 2´;
  end;
  3:
    begin
      ShowMessage(´Bored?´);
      ShowMessage(´Me too!´);
    end;
end;

Gostaria que usassem os índices do case para me indicar qual (na sua opinião) é o alinhamento correto e se tiver referências, poste-as aqui...
Na minha opinião... o mais ´elegante´ é o índice 2. :lol:


Marcosrocha

Marcosrocha

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

13/02/2007

eu utilizo o que você chamou de índice 1.
pq? para manter um padrão seja qual for o tipo de ação tomada, como no caso de haver apenas um comando:
case ComboBox1.ItemIndex of
  0: varialvelx := valorx;
  1: begin
        DoAnything;
        ShowMessage(´ItemIndex = 1´);
     end;
  2: showmessage(´xiii.... deu pau!´);
  3: begin
        Abort;
        FaçaAlgo;
     end;
  else
    ShowMessage(´nenhuma das anteriores´);
end;


acho que ficaria estranho assim:
case ComboBox1.ItemIndex of
  0:
  varialvelx := valorx;
  1:
  begin
     DoAnything;
     ShowMessage(´ItemIndex = 1´);
  end;
  2:
  showmessage(´xiii.... deu pau!´);
  3:
  begin
    Abort;
    FaçaAlgo;
  end;
  else
    ShowMessage(´nenhuma das anteriores´);
end;



GOSTEI 0
Marcosrocha

Marcosrocha

13/02/2007

emerson desculpe lhe contradizer mas ainda nem eu estava certo...
veja: http://homepages.borland.com/jedi/jcl/documents/styleguide.html#8.2.7
// CORRECT
  case ScrollCode of
    SB_LINEUP, SB_LINEDOWN:
      begin
        Incr := FIncrement div FLineDiv;
        FinalIncr := FIncrement mod FLineDiv;
        Count := FLineDiv;
      end;
    SB_PAGEUP, SB_PAGEDOWN:
      begin
        Incr := FPageIncrement;
        FinalIncr := Incr mod FPageDiv;
        Incr := Incr div FPageDiv;
        Count := FPageDiv;
      end;
  else
    Count := 0;
    Incr := 0;
    FinalIncr := 0;
  end;



GOSTEI 0
Massuda

Massuda

13/02/2007

desculpe lhe contradizer mas ainda nem eu estava certo...
Esse tipo de questão não existe nem certo nem errado.

Apenas seja coerente.

Se você está trabalhando numa equipe num mesmo projeto, siga as mesmas convenções usadas pelo resto da equipe.

Se você pegou um projeto em andamento, não perca tempo mudando/formatando o que foi feito pelo(s) outro(s) programador(es); se for permitido, mude à medida que você for mexendo no programa.

Não é exatamente a mesma dúvida, mas talvez você ache :arrow: [url=http://forum.clubedelphi.net/viewtopic.php?t=65911]este tópico[/url] interessante.


GOSTEI 0
Marcosrocha

Marcosrocha

13/02/2007

Mas Massuda, se eu quiser registrar meu software junto ao ISO... Eles vão exigir que eu siga a risca os padrões de programação não vao?


GOSTEI 0
Massuda

Massuda

13/02/2007

se eu quiser registrar meu software junto ao ISO...
Explique melhor isso.


GOSTEI 0
Marcosrocha

Marcosrocha

13/02/2007

Ouvi dizer que pra ter um controle de qualidade como ISO 9001, 9002 seu código tem que estar perfeitamente escrito conforma o padrão (se não me engano Internacional) de programação...


GOSTEI 0
Massuda

Massuda

13/02/2007

Ouvi dizer que pra ter um controle de qualidade como ISO 9001, 9002...
ISO900x são normas internacionais que estabelecem um modelo de gestão de qualidade a ser seguido por empresas que voluntariamente desejarem certificar seu sistema de gestão da qualidade.

A norma estabelece apenas um modelo de como deveria ser a gestão da qualidade, mas não estabelece obrigatoriedades. Ela define ´o que´ é preciso ter (em termos bem genéricos), mas não define ´como´ fazer.

seu código tem que estar perfeitamente escrito conforma o padrão (se não me engano Internacional) de programação...
Não existe ´padrão internacional´. Alguns setores tem padrões próprios, mas não existe um padrão universal. Na maioria dos casos, não seria um ´crime´ produzir um software bixado.

O que ISO900x irá pedir é que, se você tem algum padrão de codificação, ele tem que ser observado e deve haver meios para verificar se isso está ocorrendo.


GOSTEI 0
Marcosrocha

Marcosrocha

13/02/2007

Entendido!! :wink:


GOSTEI 0
Massuda

Massuda

13/02/2007

Outra coisa, você não ´registra seu software no ISO´, mas sim sua empresa obtem uma certificação num órgão reconhecido pelo ISO.


GOSTEI 0
Ffabiop

Ffabiop

13/02/2007

Boa tarde,

A ISO não vai ditar como você vai codificar seus softwares, ela exige sim que tudo seja documentado, ou seja você vai descrever como se faz as coisas, mas não acredido que seja o caso de análise de código fonte e sim de você cumprir o cliclo de vida da aplicação com tudo documentado. Nesse caso detalhar como vai ser codificado um case é como uma empresa de manufatura descrever como se deve varrer o chão, então naquele ponto o software vai tomar uma decisão sem maiores delongas.


GOSTEI 0
Marcosrocha

Marcosrocha

13/02/2007

É eu ja entendi como funciona... vc diz pro órgão reconhecido pelo ISO qual é a regra que tem que ser seguida e eles verificam se você fez o software conforme a regra... 8)


GOSTEI 0
POSTAR