Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Auf Teil eines Records in eine Klasse zugreifen

  Alt 12. Mär 2006, 06:46
Guten Morgen, Grishnak.

Ja und Nein. Für den Typ einer property gelten die gleichen Einschränkungen wie für Rückgabewerte von Funktionen.

Delphi-Quellcode:
type
  PMyRecord = ^TMyRecord;
  TMyRecord = record
    S: string;
    I: integer;
  end;

  TMyClass = class
  private
    FMyRecord: PMyRecord;
  public
    constructor Create;
    destructor Destroy; override;
    property MyRecord: PMyRecord read FMyRecord write FMyRecord;
  end;

var
  MyClass: TMyClass;

constructor TMyClass.Create;
begin
  inherited Create;
  New(FMyRecord);
end;

destructor TMyClass.Destroy;
begin
  Dispose(FMyRecord);
  inherited;
end;

procedure TDemoForm.FormCreate(Sender: TObject);
begin
  MyClass := TMyClass.Create;
  MyClass.MyRecord.S := 'text';
  MyClass.MyRecord.I := 5;
  ShowMessage(MyClass.MyRecord.S);
  MyClass.Free;
end;
Wenn du deinen Record zu einer Klasse machst, dann treten lediglich Create und Free an die Stelle von New und Dispose.

Grüße vom marabu
  Mit Zitat antworten Zitat