Danke für die Hilfe!! Ich dachte es wäre nun soweit, aber in CBuilder sagt er bei:
MeineKomponente->MyItems->Add("huhu,1,2) Speichererror
Vielleicht jemand der sieht warum?
Ich mach den Quelltext in Texteditor und compiliere per Commandline ~.~
Delphi-Quellcode:
PDaten = ^TDaten;
TDaten = Record
Name: WideString;
Anzahl: Integer;
WertProStueck: Integer;
end;
TDatenArray = class
private
SList: TList;
public
constructor Create;
destructor Destroy;
function Read(Index: Integer) : PDaten;
procedure Add(Name: WideString; Anzahl: Integer; WertProStueck: Integer);
procedure Delete(Index: Integer);
function Count : Integer;
end;
// MAIN KOMPONENTE
MeineKomponente = class(TComponent)
private
FMyItems : TDatenArray;
published
property MyItems: TDatenArray read FMyItems;
end;
constructor TDatenArray.Create;
begin
SList := TList.Create;
end;
destructor TDatenArray.Destroy;
begin
SList.Free;
end;
procedure TDatenArray.Add(Name: WideString; Anzahl: Integer; WertProStueck: Integer);
var
DatenVariable: PDaten;
begin
new(DatenVariable);
DatenVariable^.Name := Name;
DatenVariable^.Anzahl := Anzahl;
DatenVariable^.WertProStueck := WertProStueck;
SList.Add(DatenVariable);
end;
function TDatenArray.Read(Index: Integer) : PDaten;
begin
Result := nil;
if ((Index>=0) AND (Index<SList.Count)) then
begin
Result := SList.Items[Index];
end;
end;
function TDatenArray.Count : Integer;
begin
Result := SList.Count;
end;
procedure TDatenArray.Delete(Index: Integer);
var
daten : PDaten;
begin
if ((Index>=0) AND (Index<SList.Count)) then
begin
daten := SList.Items[Index];
SList.Delete(Index);
Dispose(daten);
end;
end;