forma correta.

Delphi

26/07/2005

Como vocês fazem para identar no delphi.

Verifiquei um site Delphi Basics, mostra que o correto é assim.
 if (condition1) And (condition2)   // Both conditions must be satisfied
   then
     begin
       statement1;
       statement2;
       ...
     end              // Notice no terminating ´;´ - still part of ´if´
   else
     begin
       statement3;
       statement4;
       ...
     end;


   if condition1 
   then statement1
   else if condition2
        then statement2
        else statement3;





Eu faço dessa maneira
if condicao then
 begin
   ............
 end;



Já vi muita gente fazer o begin depois do end também...

Como vocês fazem ?
Obrigado


Lynx

Lynx

Curtidas 0

Respostas

Lynx

Lynx

26/07/2005

escrevi errado , na última frase

Já vi muita gente fazer o begin depois do end também...


O Correto é
Já vi muita gente colocar o begin depois do then
Desculpas


GOSTEI 0
Bruno Belchior

Bruno Belchior

26/07/2005

a fórmula que a borland assume (pode olhar por toda VCL) é a seguinte:
if ... then
begin
  ....
  ....
end;
só mais uma coisa o [b:f430a4321a]and[/b:f430a4321a] assim como todas as palavras reservadas, sempre em minúscula.


GOSTEI 0
Lynx

Lynx

26/07/2005

eu também prefiro assim, o código fica mais legivel.

o site que mostra essa forma é http://www.delphibasics.co.uk/Article.asp?Name=Logic


GOSTEI 0
Fx|hand

Fx|hand

26/07/2005

ahh... sei lah... eu num consigo fazer diferente... axo q é costume do vb... q num precisa de beguin !!!

eu faço assim !!

if {condição} then begin
    {...}
end;


ou

if {condição} then begin
    {...}
end else begin
    {...}
end;



inclusive nas procedures...

procedure TForm1.FormCreate(Sender: TObject); begin
    {...}
end;


e quando uso variaveis faço assim !!!

procedure TForm1.FormCreate(Sender: TObject); 
Var
    s:string;
    i:integer;
begin
    {...}
end;


hehehe... diferente ?? naaumm... EU NAUM SO MALUKO !!! hehehe
=D


GOSTEI 0
Motta

Motta

26/07/2005

http://community.borland.com/soapbox/techvoyage/article/1,1795,10280,00.html


GOSTEI 0
Raianemg

Raianemg

26/07/2005

procedure Tfrmentrada.soma_total;
var
   TsomaVend: real;
begin
  TsomaVend := 0;
  F_DTM.TbEntradas.First;
  with F_DTM.TbEntradas do
  begin
     while not eof do
     begin
      TsomaVend := TsomaVend + (F_DTM.TBentradasSub.Value);
      F_DTM.TbEntradas.Next;
     end;
  end;
  LBTotal.caption := ´Total: ´+format(´¬m´,[TsomaVend]);
end;



GOSTEI 0
Rjun

Rjun

26/07/2005

procedure Tfrmentrada.soma_total;
var
   TsomaVend: real;
begin
  TsomaVend := 0;
  F_DTM.TbEntradas.First;
  with F_DTM.TbEntradas do
  begin
     while not eof do
     begin
      TsomaVend := TsomaVend + (F_DTM.TBentradasSub.Value);
      F_DTM.TbEntradas.Next;
     end;
  end;
  LBTotal.caption := ´Total: ´+format(´¬m´,[TsomaVend]);
end;


Esse é um exemplo de como não se deve fazer.


GOSTEI 0
Raianemg

Raianemg

26/07/2005

sera q o tal de Rjun poderia por favor me dizer o porque de minha forma de identar no delphi não esta de acordo?
você afirmo q esta forma é a q ñ deve ser feita, mas poderia justificar?


GOSTEI 0
Rjun

Rjun

26/07/2005

Sem streess...

O que quis dizer é que vc identa o código do primeiro begin com dois espaços. Ai depois, no begin do WITH você usa 3 espaços. No begin do while você usa 1 espaço. Pq não padronizar tudo com 2 espaços como o Delphi faz? Fica muito mais facil de compreender o código.


GOSTEI 0
Michelli88

Michelli88

26/07/2005

Na faculdade aprendi assim:
  
procedure exemplo;
begin
  if (condição) then
    begin
      comando;
    end;
  else
    begin
      comando;
    end;
end;


mas agora uso assim e acho mais facil de visualizar
procedure exemplo;
begin
  if (condição) then begin
    comando;
  end;
  else begin
    comando;
  end;
end;


[b:f816597451]acho q fica mais enxuto...[/b:f816597451]


GOSTEI 0
Raianemg

Raianemg

26/07/2005

entendi sua crítica e concordo plenamente, é q não havia percebido isso antes, normalmente uso a tecla tab e pronto, ela se responsabilisa pelo resto, mas de qualquer forma, fico mais aliviada. um q não entendo é quando colocam o begin no final da linha tipo
if <condicao> then begin
         comando
end;



não me acostumo a fazer assim.
isso é triste na programaçao criamos tantos vícios.
abraços


GOSTEI 0
Massuda

Massuda

26/07/2005

Não entendo porque falar em ´forma correta´... o que existe é estilo (pessoal) de escrever.

Já ví/li muito código escrito (por mim ou outras pessoas) da forma que estão classificando aqui como ´correta´ mas com pequenas variações (mais ou menos tabs/espaços, põe/não põe tab/espaço antes do begin, etc) ou da forma ´incorreta´ (feito eu que costumo usar o que o pessoal gringo chama de ´hanging begin´, o begin pendurado no fim da linha) mas o que sempre me atrapalhou não foi o fato da pessoa seguir este ou aquele estilo mas sim o fato da pessoa ficar mudando de estilo dentro de um mesmo fonte, ou pior, não ter estilo algum.

Saindo um pouco do tópico... De que adianta se preocupar em formatar bonitinho o programa se o código está cheio de form1, edit2, form34, label879 ao invés de NomesQueFazemSentido? Mais do que ser bonito de ler, o código tem que ser fácil de entender e isso só se consegue se o estilo de escrita for uniforme ao longo do código e seguir regras que favoreçam o entendimento. Afinal, a pessoa mais importante que vai ler o código fonte é você e não o compilador.

Dica: para formatar o código fonte automaticamente, pode-se usar o [url=http://www.dow.wau.nl/aew/DelForExp.html]DelForExp[/url] (Delphi Formatter Expert, freeware com fontes).


GOSTEI 0
Dedi

Dedi

26/07/2005

O estilo que uso para endentar o codigo pode ser errado para aqueles que criaram ou seguem o padrão, para meu melhor rendimento na costrução de rotinas e para uma posterior manutenção no codido faço assim:
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
 if length(Removechrinval(Trim(edit1.Text)))< 2 then begin
  MessageBox(Handle, ´Nome de tarefa faltando ou incompleto´, ´Information´, 64);
  exit;
 end;
 if BitBtn2.Tag=0 then begin
  if FileExists(Local_Apld+Removechrinval(Trim(edit1.Text)+´.taf´)) then begin
   MessageBox(Handle, ´Nome de tarefa já existe´, ´Information´, 64);
   exit;
  end;
 end;
 if Tag=0 then adicionou:=true;
 Atarefa.Items.SaveToFile(Local_Apld+Removechrinval(Trim(edit1.Text))+´.taf´);
 close;
end;



GOSTEI 0
Marcosrocha

Marcosrocha

26/07/2005

if Condition then
  DoSomething
else
begin
  DoThat;
  DoThis;
end;

I := 0;
J := 10;
while I < J do
begin
  Caption := IntToStr(I);
  Inc(I);
  Sleep(500);
end;

for I := 1 to 100 do
begin
  Caption := IntToStr(I);
  Sleep(500);
end;

procedure TForm1.BitBtn1Click(nil);
var
  I: Integer;
begin
  I := 0;
  Caption := IntToStr(I);
  ShowMessage(´Click on OK´);
  Inc(I);
  Caption := IntToStr(I);
end;

// esse eu faço do jeito que acho "elegante"
// embora eu conheça outra maneira (que no site da Borland está diferente)
case ShowMessage(´Pressione um botão!´,mtConfirmation,[mbYes,mbNo],0) of
  IDYes: // meu jeito
  begin
    DoSomething;
    DoSomethingElse;
  end;
  IDNo: // peguei no site da borland
    begin
      DoThat;
      DoThis;
      ShowMessage(´What you want more else?´);
    eng;
end;

Tento seguir ao máximo os exemplos da ajuda do Delphi e seus padrões...


GOSTEI 0
POSTAR