Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Saubere Programmierung mit Delphi (https://www.delphipraxis.net/110268-saubere-programmierung-mit-delphi.html)

Christian18 15. Mär 2008 20:25


Saubere Programmierung mit Delphi
 
Hallo,

da ich sehr viel Wert auf saubere Programmierung lege, habe ich mir folgendes gedacht. Vieleicht könntet ihr euch mal eine Klasse von mir anschauen und mir ein paar Tips geben, was ich vieleicht besser machen kann.

Delphi-Quellcode:
unit UBackground;

interface

uses
  Forms, Graphics;

type
  TBackground = class
  private
    FForm    : TForm;
    FColor   : Array[0..1] of TColor;
    FDistance : Byte;
  public
    constructor Create(Form: TForm; Color1, Color2: TColor; Distance: Byte);
    procedure Horizontal();
    procedure Vertical();  
    destructor Destroy();
  end;

implementation

constructor TBackground.Create(Form: TForm; Color1, Color2: TColor; Distance: Byte);
begin
  FForm:=Form;
  FColor[0]:=Color1;
  FColor[1]:=Color2;
  FDistance:=Distance;
end;

procedure TBackground.Horizontal();
  var i : Integer; // Schleifenvariable
begin
  FForm.Color:=FColor[0];
  FForm.Canvas.Pen.Color:=FColor[1];
  i:=0;
  while i <= FForm.ClientHeight do
    begin
      FForm.Canvas.MoveTo(0, i);
      FForm.Canvas.LineTo(FForm.ClientWidth, i);
      Inc(i, FDistance);
    end;
end;

procedure TBackground.Vertical();
  var i : Integer; // Schleifenvariable
begin
  FForm.Color:=FColor[0];
  FForm.Canvas.Pen.Color:=FColor[1];
  i:=0;
  while i <= FForm.ClientWidth do
    begin
      FForm.Canvas.MoveTo(i, 0);
      FForm.Canvas.LineTo(i, FForm.ClientHeight);
      Inc(i, FDistance);
    end;
end;

destructor TBackground.Destroy();
begin
  FForm.Free();
end;

end.
MFG Christian18

Larsi 15. Mär 2008 20:28

Re: Saubere Programmierung mit Delphi
 
Ich weiß jetzt nicht genau was du meinst? Willst du, dass dir jemand sagt, dass xyz bei abc an der Stelle besser aussieht oder etwas was vielleicht Code technisch einen Vorteil hat?

mkinzler 15. Mär 2008 20:30

Re: Saubere Programmierung mit Delphi
 
Es fehlt das inherited beim Destruktor

omata 15. Mär 2008 20:34

Re: Saubere Programmierung mit Delphi
 
Wieso gibt du FForm wieder frei? Das Objekt wird doch übergeben?

Wenn ich dort nil übergebe, schützt du deine interne Verarbeitung nicht.

Gruss
Thorsten

Christian18 15. Mär 2008 20:43

Re: Saubere Programmierung mit Delphi
 
Brauche ich denn überhaupt einen Destructor?

omata 15. Mär 2008 20:45

Re: Saubere Programmierung mit Delphi
 
Zur Zeit ja, weil du ja deine FForm dort freigibst.

Und den deklariert man dann als override.

mkinzler 15. Mär 2008 20:45

Re: Saubere Programmierung mit Delphi
 
Eigentlich nicht.

Christian18 15. Mär 2008 20:46

Re: Saubere Programmierung mit Delphi
 
in deinem ersten beitrag klang es so, als müsste ich die form gar nicht freigeben. also könte ich dann den dectructor auch weg lassen.

LG Chris

1234588 15. Mär 2008 21:08

Re: Saubere Programmierung mit Delphi
 
FForm wird ja normalerweise mit der TBackground instance zerstoert, imho

Christian18 15. Mär 2008 21:15

Re: Saubere Programmierung mit Delphi
 
keine ahnung. würde mich aber freuen, wenn mir jemand ein paar tips gibt wie ich es besser machen kann?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 Uhr.
Seite 1 von 3  1 23      

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