AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Klassenstruktur / Basisklasse -> Kindklassen => gleiche Datenbasis
Thema durchsuchen
Ansicht
Themen-Optionen

Klassenstruktur / Basisklasse -> Kindklassen => gleiche Datenbasis

Ein Thema von MarioM. · begonnen am 25. Jul 2012 · letzter Beitrag vom 26. Jul 2012
 
MarioM.

Registriert seit: 29. Mai 2006
52 Beiträge
 
#4

AW: Klassenstruktur / Basisklasse -> Kindklassen => gleiche Datenbasis

  Alt 26. Jul 2012, 07:49
Hallo, und danke für Eure ausführlichen Beispiele.

Ich habe das Ganze nun so implementiert; und es funktioniert

Delphi-Quellcode:
Unit Unit1;

Interface

Uses
   SysUtils;

Type

   TTestArray = Array Of String;

   TDatenklasse = Class
   private
      FWert1: String;
      FWert2: String;
      FWert3: Integer;
      FWert4: TTestArray;
   End;

   TAufgabeBasis = Class
   private
      FDatenklasse: TDatenklasse;

      Function GetWert1: String;
      Function GetWert2: String;
      Function GetWert3: Integer;
      Procedure SetWert1(Const Value: String);
      Procedure SetWert2(Const Value: String);
      Procedure SetWert3(Const Value: Integer);
      Function GertWert4: TTestArray;
   protected
      Property Wert1: String read GetWert1 write SetWert1;
      Property Wert2: String read GetWert2 write SetWert2;
      Property Wert3: Integer read GetWert3 write SetWert3;
      Property Wert4: TTestArray read GertWert4;

      Procedure AddToWert4(Value: String); virtual;
   public
      Constructor Create;
   End;

   TAufgabe1 = Class(TAufgabeBasis)
   public
      Property Wert1;
      Property Wert2;

      Procedure AddToWert4(Value: String); override;
   End;

   TAufgabe2 = Class(TAufgabeBasis)
   public
      Property Wert2;
      Property Wert3;

      Procedure AddToWert4(Value: String); override;
   End;

Var
   GDatenklasse: TDatenklasse;

Implementation

{ TAufgabeBasis }

// ********************************************************************

Procedure TAufgabeBasis.AddToWert4(Value: String);
Begin
   SetLength(FDatenklasse.FWert4, Length(FDatenklasse.FWert4) + 1);
   FDatenklasse.FWert4[Length(FDatenklasse.FWert4) - 1] := Value;
End;

// ********************************************************************

Constructor TAufgabeBasis.Create;
Begin
   FDatenklasse := GDatenklasse;
End;

// ********************************************************************

Function TAufgabeBasis.GertWert4: TTestArray;
Begin
   Result := FDatenklasse.FWert4;
End;

// ********************************************************************

Function TAufgabeBasis.GetWert1: String;
Begin
   Result := FDatenklasse.FWert1;
End;

// ********************************************************************

Function TAufgabeBasis.GetWert2: String;
Begin
   Result := FDatenklasse.FWert2;
End;

// ********************************************************************

Function TAufgabeBasis.GetWert3: Integer;
Begin
   Result := FDatenklasse.FWert3;
End;

// ********************************************************************

Procedure TAufgabeBasis.SetWert1(Const Value: String);
Begin
   FDatenklasse.FWert1 := Value;
End;

// ********************************************************************

Procedure TAufgabeBasis.SetWert2(Const Value: String);
Begin
   FDatenklasse.FWert2 := Value;
End;

// ********************************************************************

Procedure TAufgabeBasis.SetWert3(Const Value: Integer);
Begin
   FDatenklasse.FWert3 := Value;
End;

// ********************************************************************

{ TAufgabe2 }

Procedure TAufgabe2.AddToWert4(Value: String);
Begin
   Inherited;
End;

// ********************************************************************

{ TAufgabe1 }

Procedure TAufgabe1.AddToWert4(Value: String);
Begin
   Inherited;
End;

// ********************************************************************

Initialization
   GDatenklasse := TDatenklasse.Create;

Finalization
   FreeAndNil(GDatenklasse);

End.
Delphi-Quellcode:
Unit Unit2;

Interface

Uses
   Windows,
   Messages,
   SysUtils,
   Variants,
   Classes,
   Graphics,
   Controls,
   Forms,
   Dialogs,
   Unit1;

Type
   TForm2 = Class(TForm)
      Procedure FormCreate(Sender: TObject);
   private
      FAufgabe1: TAufgabe1;
      FAufgabe2: TAufgabe2;
   End;

Var
   Form2: TForm2;

Implementation

{$R *.dfm}

Procedure TForm2.FormCreate(Sender: TObject);
Begin
   FAufgabe1 := TAufgabe1.Create;
   FAufgabe2 := TAufgabe2.Create;

   FAufgabe1.Wert1 := 'Wert1 aus Aufgabe 1';
   FAufgabe1.Wert2 := 'Wert2 aus Aufgabe 1';
   FAufgabe1.AddToWert4('Wert 4 aus Aufgabe 1');

   FAufgabe2.Wert2 := 'Wert2 aus Aufgabe 2';
   FAufgabe2.Wert3 := 3;
   FAufgabe2.AddToWert4('Wert 4 aus Aufgabe 2');
End;

// ********************************************************************

End.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz