Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.021 Beiträge
 
Delphi 12 Athens
 
#10

AW: Klasse mit Oberfläche verheiraten

  Alt 26. Jul 2022, 16:43
Also im Prinzip anstatt einen einfach Klasse. Eine Ableitung von TObjectlist? Ich glaub ich habs noch nicht versatnden.

Edit:
Ich hab noch ein bisschen mehr in der Houses Klasse drin.
Z.B. eine Add Funktion mit der ich direkt die Inhalte über geben kann (Länge,Höhe,ID und Name) und dann einfach das Object zurück bekomme. Mit TObject müsste ich das Object immer erst erstellen und dann der ToBjectlist zuweisen, oder? Das wären dann deutlich mehr zeilen in meiner "main" Anwendung. So konnte ich es auf eine eigene Unit auslagern, oder steh ich grad komplett auf dem Schlauch?
Entweder so:
Delphi-Quellcode:
type
  THouses = class(TObjectList<THouse>)
  procedure
    procedure Add(AID: Integer; const AName: string; AHeight, ALength: Double); overload;
  end;

procedure THoueses.Add(AID: Integer; const AName: string; AHeight, ALength: Double);
begin
  house := THouse.Create;
  house.ID := AId;
  house.Name := AName;
  house.Length := ALength;
  house.Width := AWidth;
end;

var
  Houses: THouses;
begin
  Houses.Add(1, 'Haus 1', 600.0, 400.0);
end;
oder so:
Delphi-Quellcode:
type
  THouse = class
  private
    FHeight: double;
    FLength: double;
    FName: string;
    FID: integer;
  public
    constructor Create(AID: integer; const AName: string; ALength, AHeight: double);
    property ID: integer read FID write FID;
    property Name: string read FName write FName;
    property Length: double read FLength write FLength;
    property Height: double read FHeight write FHeight;
  end;

constructor THouse.Create(AID: integer; const AName: string; ALength, AHeight: double);
begin
  inherited Create;
  FID := AID;
  FName := AName;
  FLength := ALength;
  FHeight := AHeight;
end;


type
  THouses = TObjectList<THouse>;

var
  Houses: THouses;
begin
  Houses.Add(THouse.Create(1, 'Haus 1', 600.0, 400.0));
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat