Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi "Codedesign" (https://www.delphipraxis.net/26533-codedesign.html)

S2B 24. Jul 2004 21:32


"Codedesign"
 
Hi @all,
ich hätte da mal ne Frage. Ist der Code so richtig formatiert?
Delphi-Quellcode:
  if Button1.Enabled=true then
  begin
    DoThis;
    DoThat;
  end
  else
  begin
    DoThis2;
    DoThat2;
  end;
Es geht mir vor allem um das else. Wo muss das positioniert werden? In Luckies Artikel dazu konnte ich leider kein Beispiel finden! :wink:

bttb930 24. Jul 2004 21:34

Re: "Codedesign"
 
wie man will, aber ich mach es so wie Du. die styleguides unterscheiden sich aber in diesem punkt oft.

MathiasSimmack 24. Jul 2004 21:35

Re: "Codedesign"
 
Egal wie, du könntest auf das "= true" verzichten.

Phoenix 24. Jul 2004 21:37

Re: "Codedesign"
 
Ja, da gibt es viele unterschiede.

Ich persönlich schreibe das else aber auch in einer eigenen Zeile.

Delphi-Quellcode:
if 1 = 2 then
begin
   //
end
else
begin
   //
end;

{oder auch so: }
if 1 = 2 then
begin
   //
end
else if 2 = 3 then
begin
   //
end;
Das aber auch nur, weil else if für mich untrennbar zusammengehört.

S2B 24. Jul 2004 21:38

Re: "Codedesign"
 
Das ist mir klar! Ich wollte eigentlich false schreiben! :oops:

Eigentlich schreibe ich den Code auch immer anders:
Delphi-Quellcode:
if blabla then
begin
  dothis;
  dothat;
end else
begin
  dothis2;
  dothat2;
end;

Phoenix 24. Jul 2004 21:43

Re: "Codedesign"
 
Ouch. In einem Punkt sind sich eigentlich so ziemlich alle Styleguides einig: Genau das
Delphi-Quellcode:
if true then
begin
   //
end else // das hier
begin
  //
end;
sollte man nicht machen.


Delphi-Quellcode:
if true then
begin
   //
end else
{
   Weil nämlich einige Leute auf die Idee kommen,

   und einen riesigen Kommetarblock mitten in eine

   Kontrollstruktur setzen.


   Und spätestens nach ein paar Zeilen weiss dann

   nämlich niemand mehr,

   das in den nächsten Block nur reingesprungen wird,

   wenn eine Bedingung 2 Bildschirmseiten weiter oben

   nicht erfüllt sein darf...

}
begin
  //
end;
Okay, ich geb zu, das war etwas übertrieben. Aber glaub mir, ich kenne Codestellen das ist das leider genau so, und man wundert sich hinterher, warum denn da zum Teufel der Haltepunkt nie angesprungen wird...

S2B 24. Jul 2004 21:45

Re: "Codedesign"
 
Deswegen fragte ich! Danke für den Hinweis! :zwinker:

MathiasSimmack 24. Jul 2004 21:52

Re: "Codedesign"
 
Zitat:

Zitat von S2B
Das ist mir klar! Ich wollte eigentlich false schreiben! :oops:

Dann aber not:
Delphi-Quellcode:
if not blabla then
begin
end

Phoenix 24. Jul 2004 21:55

Re: "Codedesign"
 
Delphi-Quellcode:
if MeineKlasseHatEinenSprechendenNamen.UndDieseMethodeAuch(UndDieserParameterAuch) = false then
begin
  //
end;
Und nun stell Dir das mal vor, wenn Du links noch den Objektinspektor offen hast.
Und Du wunderst Dich, wenn der nie in die Bedingung reinläuft obwohl Du dafür explizit gesorgt hast (aber das false rechts ausserhalb Deines Codefensters nicht siehst...).

kiar 24. Jul 2004 21:55

Re: "Codedesign"
 
erbsenzähler :mrgreen:

@mathias

edit// weil phoenix wieder drängelt

S2B 24. Jul 2004 21:57

Re: "Codedesign"
 
Aha! :oops:
Ich hab mir Delphi sozusagen selber beigebracht und hab bis jetzt immer:
Delphi-Quellcode:
if Button1.Visible=true then
[...]
und
Delphi-Quellcode:
if Button2.Visible=false then
[...]
geschrieben! :pale:

Phoenix 24. Jul 2004 22:02

Re: "Codedesign"
 
Da hat Mathias aber recht:
Delphi-Quellcode:
if Button.Visible then
begin
  //
end;

{ oder eben }

if not Button.Visible then
begin

end;
Du schreibst ja auch nicht:
Delphi-Quellcode:
if true = true then

kiar 24. Jul 2004 22:07

Re: "Codedesign"
 
hallo phoenix,

sicherlich hat mathias recht, es ging doch aber um das codedesign,
aber mathias kann nicht anderst. :mrgreen:

raik

S2B 24. Jul 2004 22:09

Re: "Codedesign"
 
OK! Seit ihr zufrieden, wenn ich sage, dass ich mir das abgewöhne? :stupid:

MathiasSimmack 24. Jul 2004 22:33

Re: "Codedesign"
 
@kiar: Das ist gar nicht wahr. Ich bin durchaus in der Lage, über Fehler hinweg zu sehen. Ach, äh, übrigens:
Zitat:

Zitat von kiar
aber mathias kann nicht anderst. :mrgreen:

:stupid:


@S2B: Mach dir nichts draus. Ich musste mir das auch mal abgewöhnen. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:25 Uhr.

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