Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

Re: Weiterentwickelndes Object???

  Alt 7. Mär 2005, 16:45
Möchtest du dein TTestyBase-Objekt schon mit Daten ein Properties bestücken oder dient es nur der Erzeugung eines von ihm abgeleiteten Objekts?
Ansonsten könntest du das ganze mit virtuellen Methoden machen...

Delphi-Quellcode:
interface

TTestyBase = class
  function SagWas: string; virtual; abstract;
end;

TTestyFloat = class(TTestyBase)
  function SagWas: string;
end;

TTestyInteger = class(TTestyBase);
  function SagWas: string;
end;

function CreateObject(ClassType :string): TTestyBase;

{...}

implementation

function TTestyFloat.SagWas: string;
begin
  Result := 'Ich bin ein TTestyFloat-Objekt';
end;

function TTestyInteger.SagWas: string;
begin
  Result := 'Ich bin ein TTestyInteger-Objekt';
end;

function CreateObject(ClassType :string): TTestyBase;
begin
  Result := nil;
  if ClassType = 'Integerthen
  begin
    Result := TTestyInteger.Create;
    Exit;
  end;
  if ClassType = 'Floatthen
  begin
    Result := TTestyFloat.Create;
    Exit;
  end;
end;

{...}

procedure Test;
begin
  with CreateObject('Integer') do
  begin
    ShowMessage(SagWas);
    Free;
  end;
  with CreateObject('Float') do
  begin
    ShowMessage(SagWas);
    Free;
  end;
end;
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat