Ich hatte anhand von
StandardName
verglichen und war glücklich damit.
Das hatte es nicht mehr in den Upload geschafft.
Delphi-Quellcode:
function TTimeZoneHelper.Equals(Obj: TObject): Boolean;
var
asTimeZone: TTimeZone;
begin
if (not (Obj is TTimeZone)) then Exit(False);
asTimeZone := Obj as TTimeZone;
Result := ID.Equals(asTimeZone.ID);
end;
Ich habe mal versucht die Funktion in die Datei "Helper.System.DateUtils.TimeZone.pas" einzubauen ...
Delphi-Quellcode:
TTimeZoneHelper = class helper for System.DateUtils.TTimeZone
protected const
registryBasePath = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones';
expectedResFile = 'tzres.dll';
protected
class function CreateFromRegistry(
const registry: TRegistry;
const fetcher: TResourceStringFetcher;
const keyName: String
): TPair<TDynamicTimeZoneInformation, String>;
/// <summary>
/// Sortiert absteigend nach UTC-Bias. Von Greenwhich ausgehend
/// also von West nach Ost.
/// </summary>
class procedure MakeSorted(var items: TArray<TTimeZone>);
class function GetNamedSystemZones(): TDictionary<TDynamicTimeZoneInformation, String>; virtual;
public
class function GetZones(): TArray<TTimeZone>;
class procedure SetLocalTimeZone(const value: TTimeZone); static;
class function Equals(Obj: TObject): Boolean;
end;
... der compiler meckert aber das er mit "ID.Equals()" nichts anfangen kann.
Delphi-Quellcode:
class function TTimeZoneHelper.Equals(Obj: TObject): Boolean;
var
asTimeZone: TTimeZone;
begin
if (not (Obj is TTimeZone)) then Exit(False);
asTimeZone := Obj as TTimeZone;
Result := ID.Equals(asTimeZone.ID);
end;
Aber naja was solls, es scheint ja irgendwie doch nicht so zu funktionieren wie ich mir das gedacht habe. Ich werde das dann wohl auf unbestimmte Zeit verschieben oder gleich ganz lassen.
Vielen vielen dank Günther für deine mühen und deine Geduld