Thema: Delphi Delphie anfang

Einzelnen Beitrag anzeigen

guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#10

Re: Delphie anfang

  Alt 6. Sep 2007, 07:37
Dann könntest du deiner Klasse auch noch eine Methode spendieren, die sie auch "malt", z.B.

Delphi-Quellcode:
type
  TDreieck=class
    BezugspunktX,
    BezugspunktY,
    Punkt1X,
    Punkt1Y,
    Punkt2X,
    Punkt2Y,
    Punkt3X,
    Punkt3Y:longint;
    Farbe:TColor;
  public
    constructor Create(Bp1, Bp2, P1x, P1y, P2x, P2y, P3x, P3y: Longint; Farbe: TColor);
    procedure Paint;
  end;

implementation

constructor TDreieck.Create(Bp1, Bp2, P1x, P1y, P2x, P2y, P3x, P3y: Longint; Farbe: TColor);
begin
  BezugspunktX := Bp1;
  BezugspunktY := Bp2;
  Punkt1X := P1x;
  //... so weitermachen und alles zuweisen
end;

procedure TDreieck.Paint;
begin
  //Hier kommt der Code, der das Dreieck mit den zugewiesenen Variablen auf die Zeichenfläche malt
end;

procedure Beispiel_um_Instanz_zu_erzeugen;
var MeinDreieck: TDreieck;
begin
  MeinDreieck := TDreieck.Create(1,2,3,4,5,6,7,8, clBlack);

  //und so rufst du sie später auf
  MeinDreieck.Paint;
 
end;
Was ist der Vorteil?

Naja, du kannst aus deiner Klasse jetzt einfach mehrere Instanzen erzeugen und so später in deinem Programm auf einfache Weise viele Dreiecke malen.

Delphi-Quellcode:
procedure Mehr_Dreiecke;
var D1, D2, D3, D4: TDreieck;
begin
  D1:=TDreieck.Create(1,2,3,4,5,6,7,8, clBlack);
  D2:=TDreieck.Create(9,10,11,12,13,14,15,16, clRed);
  D3:=TDreieck.Create(11,21,31,41,51,61,71,81, clBlack);
  D4:=TDreieck.Create(12,22,32,42,52,62,72,82, clRed);
  D1.Paint;
  D2.Paint;
  D3.Paint;
  D4.Paint;
end;
Grundsätzlich ist der Vorteil von Klassen, dass sie mehrfach verwendbar sind und ihre eignen Methoden mitbringen, um ihre Aufgabe erfüllen zu können. Zudem kannst du Klassen schreiben, die dies alles von ihrer Vorgängerklasse erben können und dir damit einiges an Arbeit ersparen.
  Mit Zitat antworten Zitat