Ich würde an dieser Stelle auch nicht mehr mit Records arbeiten.
Wenn schon Interface, dann auch für die Datenobjekte.
Delphi-Quellcode:
IEventObject =
interface(IInterface)
[
GUID]
function GetMatName: WideString;
function GetX: Double;
function GetY: Double;
function GetNochn_Int: Integer;
function GetMatText: WideString;
property MatName: WideString
read GetMatName;
property X: Double
read GetX;
property Y: Double
read GetY
property Nochn_Int: Integer
read GetNochn_Int;
property MatText: WideString
read GetMatText;
end;
TEventObject =
class(TInterfacedObject, IEventObject)
private
FMatName: WideString;
FX: Double;
FY: Double;
FNochn_Int: Integer;
FMatText: WideString;
protected
function GetMatName: WideString;
function GetX: Double;
function GetY: Double;
function GetNochn_Int: Integer;
function GetMatText: WideString;
public
{...}
end;
function GetEventObject(ID: Int64): IEventObject;