Delphi-PRAXiS
Seite 9 von 11   « Erste     789 1011      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Einrücken ::: ::: Wie rückt ihr ein? (https://www.delphipraxis.net/80777-einruecken-wie-rueckt-ihr-ein.html)

Micha88 28. Sep 2008 09:29

Re: Einrücken ::: ::: Wie rückt ihr ein?
 
Ich persönlich rücke in "Einser-Schritten" ein.

Also sehr gerne so:

Delphi-Quellcode:
procedure Button1.Click(Sender: TOBject);
begin
-if 1 > 0 then // Leerzeichen rechts und links von >
--begin
---// Do something
--end;
-Label1.Caption := 'Mich gibbet net!' // Label auf selbe Höhe wie "if"
end;
Die schlimmste Formatierung die ich je gesehen habe sah in etwa so aus:


Delphi-Quellcode:
procedure Button1.Click(Sender: TOBject);
--begin
-----if 1 > 0 then // Leerzeichen rechts und links von
-----begin
-----// Do something
-----end;
-----Label1.Caption := 'Mich gibbet net!' // Label auf selbe Höhe wie "if"
--end;

Phantom1 28. Sep 2008 14:06

Re: Einrücken ::: ::: Wie rückt ihr ein?
 
so mach ichs eigentlich immer:
Delphi-Quellcode:
procedure Button1.Click(Sender: TOBject);
var
  c: Integer;
begin
  if 1 > 0 then begin
    Label1.Caption := 'test1';
  end else begin
    if x = y then begin
      for c := d to e do begin
        // Do Something
      end;
    end;
    Label1.Caption := 'test2';
  end;
end;
damit wäre ich aber auch noch einverstanden:
Delphi-Quellcode:
procedure Button1.Click(Sender: TOBject);
var
  c: Integer;
begin
  if 1 > 0 then
  begin
    Label1.Caption := 'test1';
  end
  else
  begin
    if x = y then
    begin
      for c := d to e do
      begin
        // Do Something
      end;
    end;
    Label1.Caption := 'test2';
  end;
end;
und alles andere geht bei mir garnicht! ^^

@MichaelLinden: da du nach der If-bedingung das begin um eins eingerückt hast musst duch auch das begin im procedurenkopf um eins einrücken, wenn schon denn schon ^^

mr_emre_d 28. Sep 2008 15:36

Re: Einrücken ::: ::: Wie rückt ihr ein?
 
So mache ich es immer und hatte nie Probleme damit, mich in Codes, die ich länger nicht mehr angerührt hatte, wieder einzufinden :)

Code:
// LF = Zeilenvorschub
// -  = Leerzeichen -- da bestimmte Stellen im Code Abschnitt nicht richtig formatiert werden !
TData = Record
--X, Y,
--Z, A: Single;
--Wow, Woooow,
--WowWowWoW: String;
end;

procedure-Name(); // "()" auch wenn keine var übergeben werden !
var // + LF
--X, Y, // max 2 vars in einer Zeile !
--i, j: Integer;
--aha: TData;
begin
--doBlub1(); // Methodenaufruf
--if True then
--begin
----doBlub2(); // auf wenn nur 1 Zeile Code ausgeführt werden muss: begin und end dürfen nicht fehlen !
--end else     // entspricht nicht der Styleguide ! aber somit spart man sich eine Zeile und sieht auch besser aus :P
--begin
----doBlub3();
----doBlub4();
--end;
--X := -10;
--Y := ABS( X ); // --> proc/func(-Value-);
--aha.Z := 0;
--for i := Round( X ) to Round( Y ) do
--begin
----with aha do
----begin
------Z := Z + i;
----end;
--end;
--// AUSNAHMEN:
--for i := Round( X ) to Round( Y ) do // wenn in der Schleife mit irgendwelchen datenstrukturen gearbeitet wird, dann...
--with Aha do
--begin
--  Z := Z + i;
--end;
--with Aha do
--begin // das gilt auch für Var/Struktur-Deklarationen
----X        := 10;
----Y        := Random(); // auch wenn functionen keine variablen verlangen: "()" dürfen nicht fehlen !
----Wow      := X;
----Woooow   := Wow;
----WowWowWoW := Woooow;
--end;
end;
MfG :D

littleDave 28. Sep 2008 15:51

Re: Einrücken ::: ::: Wie rückt ihr ein?
 
Hier mal meine Variante
Delphi-Quellcode:
type
  TData = record
    x, y, z, a : single;
    Wow       : string;
  end;

procedure BlubName(aTest: string; aTest2: integer);
var i      : integer;
    value  : string;
    pObj   : TObject;
    bmp    : TBitmap;
begin
  // ein Kommentar
  if TestMethode(aTest) then
  begin
    // eine Case-Abfrage
    case aTest2 of
    1    : begin

           end;
    1024 : aTest := 'abc';
    else  aTest := 'n Fehler';
    end;
  end else
  begin
    { Längere Beschreibung
      die auch mal über mehere Zeilen geht }
    BlubName(aTest + IntToStr(aTest2), aTest2 + 1);
  end;

  (* Quelltext der auskommentiert wurde + Grund

     if i = 0 then
        i := 5
     else
        i := 5 + i;
  *)


  { ein Try-Finally-Konstrukt schreib ich erstmal automtisch hin
    sobald ich ein Create aufrufe }
  pObj := TObject.Create;
  try
    value := pObj.ClassName + ' - ' + pObjc.Irgendwas;
 
    for i:=0 to pObj.Count-1 do
      if pObj.Available[i] then
         pObj.Add(value)
      else
         pObj.Available[i] := False;

    bmp := TBitmap.Create;
    try
      // die Strings sind bei mir fast immer Konstanten oder variablen
      if not FileExists('hm, keine Ahnung') then
         raise Exception.Create('Konnte ''hm, keine Ahnung'' nicht finden');

      bmp.LoadFromFile('hm, keine Ahnung');
      if FileExists('woanders hin') then
         DeleteFile('woanders hin');

      bmp.SaveToFile('woanders hin');
    finally
      bmp.Free;
    end;
  finally
    { FreeAndNil benutz ich nur bei Objekten, die in einer Klasse oder
      Global gespeichert sind }
    pObj.free;
  end;
end;
MfG :D[/quote]

Micha88 28. Sep 2008 15:58

Re: Einrücken ::: ::: Wie rückt ihr ein?
 
Dass man nach einem If das end und else jeweils in eine Zeile packen soll, finde ich aber auch nicht so gut.

ich mache es auch eher so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
-if a = b then
--begin
---// etwas machen
--end else
---begin
----// etwas machen
---end;
end;

alzaimar 28. Sep 2008 16:11

Re: Einrücken ::: ::: Wie rückt ihr ein?
 
Um es kurz zu machen: Ich verwende eine Code-Formatter und passe die Optionen so an, das nicht so viele Zeilen verbraten werden. Früher habe ich extremen Wert auf Formatierung gelegt, und Alles, aber auch wirklich Alles irgendwie untereinander geschrieben, also z.B. auch die ':' in Var-Deklarationen. Irgendwann war mir das aber zu mühselig und als ich das erste mal einen Formatter ausprobiert habe, hab ich mich damit abgefunden, das die automatische Formatierung etwas suboptimal ist. Aber dafür habe ich nun auch wieder Zeit für andere Dinge im Leben :mrgreen:

DeddyH 28. Sep 2008 16:50

Re: Einrücken ::: ::: Wie rückt ihr ein?
 
Mir ist das mittlerweile sch***egal, wie andere einrücken, solange sie dies sinnvoll und nachvollziehbar tun, so dass der Code lesbar ist.

alzaimar 28. Sep 2008 21:26

Re: Einrücken ::: ::: Wie rückt ihr ein?
 
Zitat:

Zitat von DeddyH
Mir ist das mittlerweile sch***egal, wie andere einrücken, solange sie dies sinnvoll und nachvollziehbar tun, so dass der Code lesbar ist.

DeddyH: Das ist fast die Quintessenz dessen, was man über Codeformatierung sagen kann. Eines fehlt noch: Im Team einigt man sich auf eine Variante. Und natürlich ist der mit einem einfach aufzurufenden automatischen Codeformatter zu erledigen (DelFor, JCF etc.).

oldmax 29. Sep 2008 05:47

Re: Einrücken ::: ::: Wie rückt ihr ein?
 
Hi
Auch wenns mittlerweile vielleicht schon langweilig wird, läßt man die vielen Links mal weg und antwortet auf die Frage direkt. wär's vielleicht mit 10 Antworten getan.
( Viel mehr Variationen beim Einrücken kann ich mir eigentlich nicht vorstellen ... )
Wenn mich einer fragt, wie rückst du ein ist beine Antwort:
Delphi-Quellcode:
Procedure ....
Begin
  If ... then
  begin
    While .... do
    begin
      //einrücken, das ist die Anweisungsliste der While - Schleife etc.
    end;
    //Auch das hier ist eingerückt, weilszum If gehört....
  end;
  If ... then
  Begin
    ...// zur Abwechslung mal else
  end else
  Begin
    ... //so steht begin immer am Anfang des Bereiches
    ... //  und in der Spalte des zugehörigen End
  end;
  //und das zur Procedure....
end;
Ich kann nicht verstehen, warum manche nicht darauf achten. Vernünftig einrücken erhöht die Lesbarkeit und hilft immens bei der Fehlersuche, speziell bei fehlenden End-Anweisungen.
Auch lassen sich Bereiche besser untersuchen.
Ob nun 2, drei oder 4 Leerzeichen oder Tabs oder sonstwas zum Einrücken benutzt wird, halte ich eigentlich nicht für so wichtig. Der Code muß lesbar sein, sauber getrennt. Darauf kommt es an. Häufig ist der Ausweg von großen Begin ... End -Bereichen die Möglichkeit, Proceduren oder Functions aufzurufen. So kann z.B. eine Anweisung
If (Bedingung) then TuDies
else TuDas
So, jetzt hab ich hoffentlich auf die Frage eine Antwort gegeben.
Gruß oldmax

Angel4585 29. Sep 2008 07:27

Re: Einrücken ::: ::: Wie rückt ihr ein?
 
Meine Einrückung:

Delphi-Quellcode:
procedure TForm1.Test;
begin
for i:= 0 to 4 do
  begin
  if i < 3 then
    begin
    MachWas;
    MachNochWas;
    end
  else
    begin
    MachWasAnderes;
    end;
  end;
end;
Ich finde so kann man das am Besten lesen, aber da hat wohl jeder seinen eigenen Stil


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:27 Uhr.
Seite 9 von 11   « Erste     789 1011      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz