Einzelnen Beitrag anzeigen

choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#12

Re: Funktion('string').membervar

  Alt 17. Nov 2004, 14:48
In diesem Fall musst Du mit Referenzen arbeiten. Verwende hierzu entweder direkt Exemplar von Klassen statt Records oder erstelle einen weiteren Typen hier:
Delphi-Quellcode:
type
  PMyRecord = ^TMyRecord;
von dem der Rückgabewert Deiner Funktion sein sollte.

Während Du im klassichen Pascal so einen Pointer auf Dein Record bei der Verwendung derefenzieren musstest
Delphi-Quellcode:
var
  myReference: PMyRecord;
begin
  // !ensure that myReference points to valid data!
  myReference^.AField := AValue
ist das in Delphi nicht länger erforderlich, so dass Dein Aufruf der Form
Delphi-Quellcode:
function MyFunction(const AString: string): PMyRecord;
//..
MyFunction(AValue).AField := AnotherValue;
möglich ist. Du benötigst jedoch ein Konzept für den Fall, dass keine passende Referenz gefunden wurde (zB das Auslösen einer Exception), damit Du nur auf gültigen arbeitest.
gruß, choose
  Mit Zitat antworten Zitat