![]() |
Wie Property als Array ansprechen?
Hallo,
Wie muss ich eine Listen Property deklarieren das sie die Standard Eingenschafft der Klasse ist und wie spreche ich diese dann wie ein Array an ? also wie bei TStrings z.B.
Delphi-Quellcode:
das ich dann
StringList[i] := 'Hallo';
Delphi-Quellcode:
machen kann
SpareParts[i].Id := 'AK1'
hier meine Klasse
Delphi-Quellcode:
type
TTASparePart = record Id,Description:String; Quantity:Integer; end; type TTASpareParts = class private FList:TList; function GetCount:Integer; public constructor Create; destructor Destroy; procedure Clear; procedure Add(Item: TTASparePart); function GetItem(Index:Integer):TTASparePart; procedure SetItem(Item:TTASparePart; Index:Integer); procedure Delete(Index:Integer); published property Count:Integer read GetCount; end; ... { TTASpareParts } constructor TTASpareParts.Create; begin FList := TList.Create; end; procedure TTASpareParts.Add(Item: TTASparePart); var PItem:^TTASparePart; begin New(PItem); PItem^ := Item; FList.Add(PItem); end; function TTASpareParts.GetItem(Index: Integer): TTASparePart; begin Result := TTASparePart(FList[Index]^); end; procedure TTASpareParts.SetItem(Item: TTASparePart; Index: Integer); var PItem:^TTASparePart; begin Dispose(FList[Index]); New(PItem); PItem^ := Item; FList[Index] := PItem; end; procedure TTASpareParts.Delete(Index: Integer); begin Dispose(FList[Index]); FList.Delete(Index); end; procedure TTASpareParts.Clear; var i:Integer; begin for i := 0 to Count-1 do Dispose(FList[i]); FList.Clear; end; destructor TTASpareParts.Destroy; begin Clear; FList.Free; end; function TTASpareParts.GetCount: Integer; begin Result := Flist.Count; end; |
Re: Wie Property als Array ansprechen?
![]() |
Re: Wie Property als Array ansprechen?
Ok Super Danke ... wissen heisst wissen wos steht :)
Delphi-Quellcode:
type TTASpareParts = class private FList:TList; function GetCount:Integer; public constructor Create; destructor Destroy; procedure Clear; procedure Add(Item: TTASparePart); function GetItem(Index: Integer):TTASparePart; procedure SetItem(Index: Integer; Value:TTASparePart); procedure Delete(Index:Integer); property Items[Index: Integer]: TTASparePart read GetItem Write SetItem; default; published property Count:Integer read GetCount; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 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