Einzelnen Beitrag anzeigen

Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Klasse die im Create eine Unterklasse erstellt

  Alt 23. Nov 2007, 05:35
Schnittstelle = Interface

Warum definierst du nicht einfach ein Interface welches du in Interfaced Objects realisierst?

etwa so (aus dem Stehgreif jetzt):
Delphi-Quellcode:
type
  ISendMessage = interface
  ['<GUID mit STRG+SHIFT+G erzeugen>']
    procedure Send(const s: string);
  end;
  
  TTCPClass = class(TInterfacedObject, IMyInterface)
    procedure Send(const s: string);
  end;

  TUDPClass = class(TInterfacedObject, IMyInterface)
    procedure Send(const s: string);
  end;
Jetzt kannst du diese InterfacedObjects auch als ISendMessage nutzen, weil sie das Interface ja realisieren und je nachdem WIE das Interface in den Klassen realisiert wird passiert evtl. etwas anderes.

EDIT:

wenn es ums erzeugen geht.. nimm eine Enumeration und eine Erzeuger-Funktion:

Delphi-Quellcode:

type
  TConnectionType = (ctTCP, ctUDP, ctRS232, {...});


{...}

function CreateConnection(const contype: TConnectiontype): ISendMessage;
begin
  case contype of
    ctUDP: Result := TUDPClass.Create;
    ctTCP: Result := TTCPClass.Create;
  else
    // evtl. Fehlermeldung
  end;
end;
  Mit Zitat antworten Zitat