AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Eure besten Quellcode Kommentare...

Eure besten Quellcode Kommentare...

Ein Thema von Relicted · begonnen am 20. Jul 2007 · letzter Beitrag vom 6. Mär 2019
Antwort Antwort
Seite 46 von 46   « Erste     36444546
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
1.766 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#451

AW: Eure besten Quellcode Kommentare...

  Alt 5. Mär 2019, 18:46
Da liegt das Problem aber in der Implementierung des Setters:

Delphi-Quellcode:
procedure TFDFix.SetActive(const Value: Boolean);
begin
  if Value = FActive then
    WriteLn('Erwarte das Unerwartete ;)') // In dieser Zeile könnte z.B. etwas wichtiges gemacht werden, was einen Fehler verhindert.
  else
    FActive := Value;
end;

begin
  try
    WriteLn('Start');
    FDFix := TFDFix.Create;
    try
      (* ... *)
    finally
      WriteLn('Ende');
      FDFix.Free;
    end;
    ReadLn;
  except
    on E: Exception do
      WriteLn(E.ClassName, ': ', E.Message);
  end;

end.
Das sollte man eigentlich immer so machen, um derlei Probleme zu vermeiden:

Delphi-Quellcode:
procedure TFDFix.SetActive(const Value: Boolean);
begin
  if Value = FActive then
    Exit
  else
  begin
    FActive := Value;
  try
    WriteLn('Start');
    FDFix := TFDFix.Create;
    try
      (* ... *)
    finally
      WriteLn('Ende');
      FDFix.Free;
    end;
    ReadLn;
  except
    on E: Exception do
      WriteLn(E.ClassName, ': ', E.Message);
  end;
  end;
end.
(Hier im Browser editiert, daher bitte die Einrückungen dazu denken)
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber.
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.805 Beiträge
 
Delphi 10 Seattle Enterprise
 
#452

AW: Eure besten Quellcode Kommentare...

  Alt 6. Mär 2019, 13:47
Delphi-Quellcode:
procedure TFDFix.SetActive(const Value: Boolean);
begin
  if Value = FActive then
    Exit
  else
  begin
    FActive := Value;
    // ...
  end;
end;
dann bitte aber so:
Delphi-Quellcode:
procedure TFDFix.SetActive(const Value: Boolean);
begin
  if Value <> FActive then
  begin
    FActive := Value;
    // ...
  end;
end;
Borland/CodeGear/Embarcadero machen das auch so:
Ein schönes Beispiel ist TMargins und TPadding:
Delphi-Quellcode:
 // Quelltext gekürzt !!!

  TMarginSize = 0..MaxInt;

  TMargins = class(TPersistent)
  private
    FLeft, FTop, FRight, FBottom: TMarginSize;
    procedure SetMargin(Index: Integer; Value: TMarginSize);
  protected
    procedure Change; virtual;
  published
    property Left: TMarginSize index 0 read FLeft write SetMargin default 3;
    property Top: TMarginSize index 1 read FTop write SetMargin default 3;
    property Right: TMarginSize index 2 read FRight write SetMargin default 3;
    property Bottom: TMarginSize index 3 read FBottom write SetMargin default 3;
  end;

  TPadding = class(TMargins)
  published
    property Left default 0;
    property Top default 0;
    property Right default 0;
    property Bottom default 0;
  end;

procedure TMargins.SetMargin(Index: Integer; Value: TMarginSize);
begin
  case Index of
    0:if Value <> FLeft then
      begin
        FLeft := Value;
        Change;
      end;
    1:if Value <> FTop then
      begin
        FTop := Value;
        Change;
      end;
    2:if Value <> FRight then
      begin
        FRight := Value;
        Change;
      end;
    3:if Value <> FBottom then
      begin
        FBottom := Value;
        Change;
      end;
  end;
end;
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)

Geändert von MaBuSE ( 6. Mär 2019 um 14:15 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf