Forum: Programmieren allgemein
Delphi
by haentschman,
10. Okt 2019
Dem widerspricht die fast tägliche Benutzung / Implementierung eines Dictionaries. :wink: Die diesem Falle war aber eine Objektkopie des Datenobjektes mit enthaltenem Dictionary verantwortlich. Mit der Kopie ist der FComparer intern nicht instanziert worden. :?
Danke...:wink:
Forum: Programmieren allgemein
Delphi
by haentschman,
10. Okt 2019
Moin...:P
Du bekommst schon das raus was du reinsteckst. Du mußt nur das Ergebnis TObject auf deinen Typ casten.
BlubbCopy := TBlubb(TTools.ObjectCopy(Blubb));
Forum: Programmieren allgemein
Delphi
by haentschman,
9. Okt 2019
Normal macht man das klassisch mit Assign. Meine "Datenobjekte" haben auch Listen mit Objekten. Deshalb benutze ich gern folgendes:
class function TToolsJson.ObjectCopyJson(Value: TObject): TObject;
var
MarshalObj: TJSONMarshal;
UnMarshalObj: TJSONUnMarshal;
JSONValue: TJSONValue;
begin
Result := nil;
MarshalObj := TJSONMarshal.Create;
Forum: Programmieren allgemein
Delphi
by haentschman,
9. Okt 2019
Moin...8-)
...Fazit: Eine Objektkopie mit Marshal/UnMarshal nimmt den Comparer nicht mit. :?
Danke für eure Hilfe.
Forum: Programmieren allgemein
Delphi
by haentschman,
8. Okt 2019
TSEAMUserRoleRightDict war ein Tippfehler.
Korrekt wäre wie in den Codeschnippseln TUserRoleRightDict.
Danke...
Forum: Programmieren allgemein
Delphi
by haentschman,
8. Okt 2019
...Danke für die aufbauenden Worte. :? Kannst du dir vorstellen, daß ich für das Debuggen von "Bibliotheken" keinen Nerv/Zeit habe?
Ich verwende Dictionaries ständig. Einen Comparer habe ich noch nie benutzt. Ich erstelle die Instanz wie immer meistens mit .
Danke...
Nachtrag:
* Nach dem Create ist der Comparer Assigned (Pointer($3BFEF6C) as...
Forum: Programmieren allgemein
Delphi
by haentschman,
8. Okt 2019
Bitteschön...:P
FRoleRightDict := TUserRoleRightDict.Create; // Dict ohne Freigabe (sortierte Liste RoleRightList)
FRoleRightList := TUserRoleRightList.Create; // List gibt Objekte frei
...
FRoleRightDict := TUserRoleRightDict.Create(); // gleicher Fehler
FRoleRightList := TUserRoleRightList.Create(False);
Wer meinen dusslichen Fehler findet...dem gebe ich ein :cheers: aus...
Forum: Programmieren allgemein
Delphi
by haentschman,
8. Okt 2019
Hallöle...:P
Ich verstehe die Welt nicht mehr...:roll:
TUserRoleRightDict = TObjectDictionary<Integer, TUserRoleRight>;
...
UserRight := TUserRoleRight.Create;
UserRight.RightID := StrToInt(ContentList);
...
FModifiedUserRole.RoleRightList.Add(UserRight);