Hallöle...
Ich verstehe die Welt nicht mehr...
Delphi-Quellcode:
TUserRoleRightDict = TObjectDictionary<Integer, TUserRoleRight>;
...
UserRight := TUserRoleRight.Create;
UserRight.RightID := StrToInt(ContentList[0]);
...
FModifiedUserRole.RoleRightList.Add(UserRight);
FModifiedUserRole.RoleRightDict.Add(UserRight.RightID, UserRight);
Zitat:
...
exception message : Zugriffsverletzung bei Adresse 0167C71D in Modul '.exe'. Lesen von Adresse 00000000.
...
main thread ($2f88):
0167c71d +015 .exe SEAM.Classes.Data 6239 +4 {System.Generics.Collections}TDictionary<System.In teger,Classes.Data.TUserRoleRight>.Hash
0167cefb +02b .exe SEAM.Classes.Data 6347 +4 {System.Generics.Collections}TDictionary<System.In teger,.Classes.Data.TUserRoleRight>.Add
0368b635 +211 .exe Form.UserManager.Logic 329 +28 CreateNewRole
0368b6c0 +008 .exe Form.UserManager.Logic 334 +1 TUserManager.UserRoleAdd
0368fc26 +082 .exe Form.UserManager 1079 +7 TfoUserManager.gtvUserRoleNavigatorButtonsButtonCl ick
...
PS: Das TObjectDictionary ist instanziert. Allerdings ohne Objektfreigabe. Die Freigabe wird über eine sortierte Liste mit diesen Objekten realisiert. Im Prinzip enthällt das Dict die Objekte nur besser zum Suchen.
PS: Die Liste enthällt das korrekte Objekt.
Danke für Infos...