![]() |
AW: Der linken Seite wird nichts zugewiesen "Extended Version"
Sonst bleibt nur die Prozedur in der Liste zu implementieren und den Index mit zu übergeben...
Zitat:
|
AW: Der linken Seite wird nichts zugewiesen "Extended Version"
Gehen würde das schon, logo, würde ich auch gerne..
Die Zeit, die Zeit ist das Problem. Bei Records bin ich mir oft unsicher, mache deshalb meistens:
Delphi-Quellcode:
AItem := List[Index];
AItem.Machwas; List[Index] := AItem; |
AW: Der linken Seite wird nichts zugewiesen "Extended Version"
Das funktioniert auch. Aber letztlich ist es dann Unsinn Records zu verwenden, wenn du eigentlich die Funktionalität von Klassen brauchst...
Um den bestehenden Code nicht groß ändern zu müssen, blieben sonst auch noch Pointer auf Records, die du aus der Liste zurückgeben könntest. Wenn die auf das Original zeigen, geht es ja auch. |
AW: Der linken Seite wird nichts zugewiesen "Extended Version"
Zitat:
|
AW: Der linken Seite wird nichts zugewiesen "Extended Version"
Ich weiß, schien aber untergegangen zu sein. ;-)
|
AW: Der linken Seite wird nichts zugewiesen "Extended Version"
Zitat:
Delphi-Quellcode:
property Items[Index: integer]: PStab read GetPItems write SetPItems; default;
function TStabList.GetPItems(Index: integer): PStab; begin Result := @FItems[Index]; end; procedure TStabList.SetPItems(Index: integer; const Value: PStab); // Assign; begin FItems[Index] := Value^; end; |
AW: Der linken Seite wird nichts zugewiesen "Extended Version"
Zitat:
Wenn ich als Benutzer deines Records `Liste[i] := PtrToSomeRecord` schreibe, ist das von der Syntax her eine flache Kopie von Referenzen/Zeigern, die du mittels `SetPItems` zu einer tiefen Kopie machst. Das halte ich für sehr verwirrend. Die Alternative wäre:
Delphi-Quellcode:
Das erfordert zwei Haken mehr, dafür ist eindeutig klar, was passiert.
property Items[Index: integer]: PStab read GetPItems; default;
function TStabList.GetPItems(Index: integer): PStab; begin Result := @FItems[Index]; end; // Benutzung: Liste[i]^ := PtrToSomeRecord^; |
AW: Der linken Seite wird nichts zugewiesen "Extended Version"
Hallo Uli, mag sein, aber das Assign möchte da schon haben (was natürlich bedeutet, daß der Item auch existiert).
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:47 Uhr. |
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