Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: OOP wirklich nicht möglich?

  Alt 13. Okt 2017, 08:36
Ich habe mir lange darüber Gedanken gemacht, wie man dieses Problem mit OOP-Miteln lösen könnte, aber bislang keine befriedigende Lösung gefunden.

Hat jemand einen Vorschlag?
Wie wär's mit diesem neuartigen Konzept:
Gemeinsamkeiten von zwei oder mehr Klassen in eine gemeinsame Basisklasse und nur in den Ableitungen das neue Zeug?!

Delphi-Quellcode:
type
  TCustomQuery = Class(TPersistent)
  protected
    FidBild: Integer;
    FThumbnail: TMemoryStream;
    FBitmap: TMemoryStream;
    FPass: String;
    FUser: string;
    procedure SetBitmap(Value: TMemoryStream);
    procedure SetThumbnail(Value: TMemoryStream);
    function GetBitmap: TMemoryStream;
    function GetThumbnail: TMemoryStream;
    function FillThumbnail(var Thumbnail: TMemoryStream): TMemoryStream;
  public
    constructor Create(AOwner: TComponent);
    destructor Destroy; override;
    procedure Assign(Source: TPersistent); override;
    property IdBild: Integer read FidBild write FidBild;
    property Thumbnail: TMemoryStream read GetThumbnail write SetThumbnail;
    property Bitmap: TMemoryStream read GetBitmap write SetBitmap;
  end

  TQueryResultClass = Class(TCustomQuery)
  protected
    FBildDescribeTabelle: TBildDescribeTabelle;
    FKategoryTabelle: TKategoryTabelle;
  public
    procedure Assign(Source: TPersistent); override;
    property BildDescribeTabelle: TBildDescribeTabelle read FBildDescribeTabelle write FBildDescribeTabelle;
    property KategoryTabelle: TKategoryTabelle read FKategoryTabelle write FKategoryTabelle;
  end;

  TCMQueryClass = Class(TCustomQuery)
  protected
    FTblBildText: TTblBildText;
    FTblAlbum: TTbl_Album;
  public
    procedure Assign(Source: TPersistent); override;
    property TblBildText: TTblBildText read FTblBildText write FTblBildText;
    property TblAlbum: TTbl_Album read FTblAlbum write FTblAlbum;
  end;

Geändert von TiGü (13. Okt 2017 um 08:43 Uhr)
  Mit Zitat antworten Zitat