mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-11 00:19:09 +02:00
47 lines
862 B
ObjectPascal
47 lines
862 B
ObjectPascal
{$mode objfpc}{$H+}{$r+}
|
|
|
|
uses
|
|
Classes, SysUtils;
|
|
|
|
type
|
|
TMyEvent = class(TObject)
|
|
public
|
|
procedure SaveToStream(aStream: TStream); virtual; abstract;
|
|
end;
|
|
|
|
TMyClass = class
|
|
private
|
|
function GetEvent(aIndex: integer): TMyEvent;
|
|
function GetEventCount: integer;
|
|
public
|
|
property EventCount: integer read GetEventCount;
|
|
property Events[aIndex: integer]: TMyEvent read GetEvent;
|
|
procedure SaveToStream(aDest: TStream);
|
|
end;
|
|
|
|
{ TMyClass }
|
|
|
|
function TMyClass.GetEvent(aIndex: integer): TMyEvent;
|
|
begin
|
|
Result:=nil;
|
|
end;
|
|
|
|
function TMyClass.GetEventCount: integer;
|
|
begin
|
|
Result:=0;
|
|
end;
|
|
|
|
procedure TMyClass.SaveToStream(aDest: TStream);
|
|
var
|
|
cEvent: Integer;
|
|
eCnt: Integer;
|
|
begin
|
|
eCnt:=EventCount;
|
|
aDest.Write(eCnt, sizeof(eCnt));
|
|
for cEvent := 0 to eCnt -1 do
|
|
Events[cEvent].SaveToStream(aDest);
|
|
end;
|
|
|
|
begin
|
|
end.
|