Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
Delphi 10.2 Tokyo Professional
|
Re: Überprüfung ob Objekt eine generische Liste ist
16. Apr 2010, 12:07
Hallo,
Nachdem ich etwas Aufwand betrieben habe, habe ich eine bisher zuverlässig funktionierende Funktion schreiben können.
Da ich den internen Aufbau der Klassen in Delphi nicht kenne, weiß ich nicht was ich hier tatsächlich vergleiche, und dementsprechend ist das ganze natürlich wage. Das hier beruht auf Beobachtung, Erfahrung und Testergebnissen.
Delphi-Quellcode:
function IsGenericObjectList(AClass: TClass): Boolean;
const ListMagic: Array[0..7] of Byte = ($54,$4F,$62,$6A,$65,$63,$74,$4C);
begin
Result := CompareMem(@ListMagic[0],Pointer(Integer(AClass)+$09),SizeOf(ListMagic));
end;
Das gleiche funktioniert auch für TObjectStack und TObjectQueue. Für andere habe ich es noch nicht genügend ausprobiert:
Delphi-Quellcode:
const StackMagic: Array[0..7] of Byte = ($54,$4F,$62,$6A,$65,$63,$74,$53);
const QueueMagic: Array[0..7] of Byte = ($54,$4F,$62,$6A,$65,$63,$74,$51);
Gruß
Neutral General
Michael "Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
|
|
Zitat
|