Registriert seit: 28. Jun 2007
417 Beiträge
|
Re: Delphie anfang
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.
|