Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Funktion('string').membervar (https://www.delphipraxis.net/33627-funktion-string-membervar.html)

Pseudemys Nelsoni 17. Nov 2004 13:20

Re: Funktion('string').membervar
 
*hochschieb* :-D


ich muss einer membervariablen meines rekords(der zurückgegeben wird) doch auch einen wert zuweisen können. Ich brauche soetwas wie das hier:

Delphi-Quellcode:
MeineFunktion('andy').nickname := 'iAmAndy'


das kann doch nicht unmöglich sein oder :?:

choose 17. Nov 2004 13:48

Re: Funktion('string').membervar
 
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.

Jens Schumann 17. Nov 2004 15:08

Re: Funktion('string').membervar
 
Hallo,
wie wäre es denn wenn man aufhört in Records zu denken und statt dessen in Objekten denkt.
Dann ist das mit der Kopie auch kein Problem mehr.

Pseudemys Nelsoni 17. Nov 2004 15:30

Re: Funktion('string').membervar
 
@choose, danke, so gehts ^^

@jens, wenn ich z.b nur 3 variablen habe, wäre eine klasse doch nicht nötig oder? vorallem ist das create/destroy nervig bei klassen :\


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:18 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz