Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
4.242 Beiträge
 
Delphi 12 Athens
 
#1

AW: IOS Platform Funktion cast {class}Pointer to Interface ???

  Alt 19. Aug 2025, 13:33
Probier das mal mit wrap()

Delphi-Quellcode:
function GetCurrentTimeZoneID: string;
var
  LTZPtr: Pointer;
  LTimeZone: NSTimeZone;
begin
  try
    // 1) Pointer aus der Klassen-API holen
    LTZPtr := TNSTimeZone.OCClass.localTimeZone;

    // 2) In Interface „wrappen“
    if LTZPtr <> nil then
    begin
      LTimeZone := TNSTimeZone.Wrap(LTZPtr);
      // 3) NSString -> Delphi-String
      Result := NSStrToStr(LTimeZone.name); // IANA-ID, z.B. "Europe/Berlin"
      Exit;
    end;

    // Fallback
    Result := TTimeZone.Local.ID;
  except
    on E: Exception do
      Result := TTimeZone.Local.ID;
  end;
end;

end.
  Mit Zitat antworten Zitat