Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Klassen in versch Units vererben

  Alt 30. Nov 2016, 09:44
Eigentlich müsste TForm1 in eine eigene Unit ausgelagert werden.
Delphi-Quellcode:
unit u_Bank;

type
  TBank = class(TObject)
  public
    Name: String;
    Standort: String;
    Geld: real;
    constructor create(FName, FStandort: String);
    destructor destroy;
  end;
Die Variablen HBank und Konto1 gehören eindeutig zu TForm1 und sollten deshalb dort deklariert werden.
Delphi-Quellcode:
unit u_Form1;

uses
  uBank, uKonto;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
    HBank : TBank;
    Konto1: TKonto;
  public
    { public declarations }
  end;
Die Klasse TKonto von TBank abzuleiten ist fachlich falsch. Das Konto gehört zu einer Bank, eine Bank verwaltet mehrere Konten.
Das könnte man z.B. so abbilden:
Delphi-Quellcode:
TBank = class;

TKonto = class(TObject)
private
  FBank: TBank; {im Konstruktor als Parameter übergeben und in die Liste der Bank eintragen}
public
  property Bank: TBank read FBank;
end;

TKontoList = class(TObjectList)
end;

TBank = class(TObject)
private
  FKonten: TKontoList; {im Konstruktor erzeugen, im Destruktor freigeben}
public
  property Konten: TKontoList read FKonten;
end;
  Mit Zitat antworten Zitat