Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
Delphi 12 Athens
|
AW: Klasse mit Oberfläche verheiraten
26. Jul 2022, 17: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;
|
|
Zitat
|