Ниже представлены две таблицы кода двух модулей.
Code: |
unit DelphiPt;
interface
uses Classes, Graphics;
type TDDHPoint = class (TCollectionItem) private fX, fY: Integer; public Text: string; procedure WriteText (Writer: TWriter); procedure ReadText (Reader: TReader); procedure DefineProperties (Filer: TFiler); override; procedure Paint (Canvas: TCanvas); procedure Assign (Pt: TPersistent); override; published property X: Integer read fX write fX; property Y: Integer read fY write fY; end;
TWrapper = class (TComponent) private FColl: TCollection; published property MyColl: TCollection read FColl write FColl; public constructor Create (Owner: TComponent); override; destructor Destroy; override; end;
implementation
// TWrapper constructor and destructor
constructor TWrapper.Create (Owner: TComponent); begin inherited Create (Owner); FColl := TCollection.Create (TDDHPoint); end;
destructor TWrapper.Destroy; begin FColl.Clear; FColl.Free; inherited Destroy; end;
// class TDDHPoint methods
procedure TDDHPoint.WriteText (Writer: TWriter); begin Writer.WriteString (Text); end;
procedure TDDHPoint.ReadText (Reader: TReader); begin Text := Reader.ReadString; end;
procedure TDDHPoint.DefineProperties (Filer: TFiler); begin Filer.DefineProperty ( 'Text', ReadText, WriteText, (Text <> '')); end;
procedure TDDHPoint.Paint (Canvas: TCanvas); begin Canvas.Ellipse (fX - 3, fY - 3, fX + 3, fY + 3); Canvas.TextOut (fX + 5, fY + 5, Text); end;
procedure TDDHPoint.Assign (Pt: TPersistent); begin if Pt is TDDHPoint then begin fx := TDDHPoint (Pt).fX; fY := TDDHPoint (Pt).fY; Text := TDDHPoint (Pt).Text; end else // raise an exception inherited Assign (pt); end;
//initialization //RegisterClass (TWrapper); end. |
- Назад
- Вперёд >>
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!