![]() |
Re: Zugriffsverletzung bei TObjectlist.delete
Zitat:
immerhin muß der bei der while schleife doch immer den count abrufen da das ja eine funktion ist. Bie der for schleife werden die start und end werte ja nur einmal abgefragt, von daher müßte sich schon ein unterscheid ergeben ... :gruebel: |
Re: Zugriffsverletzung bei TObjectlist.delete
würd ich auch behaupten... Auch wegen deinem angesprochenen Grund, ich denke sobald da ne Funktion im Spiel ist, wird da Delphi nicht mehr viel optimieren =p
Bye Christian |
Re: Zugriffsverletzung bei TObjectlist.delete
Zitat:
|
Re: Zugriffsverletzung bei TObjectlist.delete
Zitat:
|
Re: Zugriffsverletzung bei TObjectlist.delete
Hallo Leute,
herzlichen Dank für die vielen Tips. Ich bin gerade noch dabei, diese durchzutesten. Bisher nur mit wenig Erfolg. Damit gehe sehr stark davon aus, das das Problem wo anders ist. Da ich es bis noch nicht geblickt habe, poste ich einfach mal den restlichen Code. Ist echt Mist, wenn man den Wald vor lauter Bäumen nicht mehr sieht. Besten Dank!
Delphi-Quellcode:
type TStreamlist= class (TObject)
private FStreamObjectList:TObjectlist; function Get(Index: Integer): TStringstream; procedure Put(Index: Integer; const Value: TStringstream); public constructor Create; destructor Destroy;override; function add: integer; function Additem(Item:TStringstream):integer; property items[Index: Integer]: TStringstream read Get write Put; function count: integer; procedure delete (index:integer); procedure clear; end; implementation constructor TStreamlist.create; begin; inherited create; FStreamObjectList:=TObjectList.Create(true); end; destructor TStreamlist.destroy; var i:Integer; begin; for i:= 1 to FStreamObjectList.Count do begin FStreamObjectList.Items[i-1].free // jedes einzelne Objekt expl. freigeben end; FStreamObjectList.Clear(); // jetzt duerften nur noch nils da sein inherited Destroy; // und zum Schluss noch das Basisdestroy end; function TStreamlist.add: integer; var TagType: TStringstream; begin TagType:=TStringstream.Create(''); Result:= FStreamObjectList.add(TagType); end; function TStreamlist.Additem(Item: TStringstream): Integer; var TagType: TStringstream; begin TagType:=TStringstream.Create(''); TagType:=Item; Result:= FStreamObjectList.add(TagType); end; function TStreamlist.Get(Index: Integer):TStringstream; begin; result:= TStringstream(FStreamObjectList.Items[Index]); end; procedure TStreamlist.Put(Index: Integer; const Value: TStringstream); begin FStreamObjectList[Index]:=Value; end; function TStreamlist.count: integer; begin result:=FStreamObjectList.count; end; procedure TStreamlist.Delete(index:integer); begin FStreamObjectList.Delete(index); FStreamObjectList.Capacity := FStreamObjectList.Count; //Speicher Freigeben end; procedure TStreamlist.clear; begin while FStreamObjectList.Count >0 do begin FStreamObjectList.Delete(0); end; end; end. |
Re: Zugriffsverletzung bei TObjectlist.delete
Zitat:
|
Re: Zugriffsverletzung bei TObjectlist.delete
*push*
|
Re: Zugriffsverletzung bei TObjectlist.delete
Also wenn
![]()
Delphi-Quellcode:
unit untLieferschein;
interface uses classes, windows, contnrs, sysutils ; type TLieferschein = class TLieferscheine = class (TObjectList) private function GetItem(Index: Integer): TLieferschein; procedure SetItem(Index: Integer; const Value: TLieferschein); public constructor Create (AConnection : TADOConnection) ; overload ; property Items[Index: Integer]: TLieferschein read GetItem write SetItem; default; end; implementation function TLieferscheine.GetItem(Index: Integer): TLieferSchein; begin Result := (inherited Items[Index]) as TLieferSchein ; end; procedure TLieferscheine.SetItem(Index: Integer; const Value: TLieferSchein); begin inherited Items[Index] := Value ; end; end. |
Re: Zugriffsverletzung bei TObjectlist.delete
Zitat:
|
Re: Zugriffsverletzung bei TObjectlist.delete
Zur Erinnerung:
1.) FStreamObjectList freigeben! Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 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