Complete BigTask
Sync changed files to Google Drive / sync (push) Successful in 3m7s

This commit is contained in:
admin_d committed 2026-09-15 10:16:31 +05:00
1 parent 19ee837986
commit c2127c3f31
14 files changed
+3621 -5

No files matched your search

+45
View File
@@ -0,0 +1,45 @@
unit KaMResourceInput;
interface
uses
Classes;
function KaMResourceExists(const aReference: string): Boolean;
function KaMOpenResourceStream(const aReference: string): TStream;
implementation
uses
CastleUriUtils, CastleDownload;
function ResourceProtocol(const aReference: string): string;
begin
if aReference = '' then
raise EDownloadError.Create('KaMResourceInput: empty resource reference');
Result := UriProtocol(aReference);
if (Result <> '') and (Result <> 'file') and (Result <> 'castle-data') then
raise EDownloadError.Create('KaMResourceInput: unsupported resource protocol: ' + Result);
end;
function KaMResourceExists(const aReference: string): Boolean;
begin
ResourceProtocol(aReference);
case UriExists(aReference) of
ueFile: Result := True;
ueNotExists, ueDirectory: Result := False;
ueUnknown:
raise EDownloadError.Create('KaMResourceInput: resource existence is unknown: ' + aReference);
end;
end;
function KaMOpenResourceStream(const aReference: string): TStream;
begin
if ResourceProtocol(aReference) = '' then
Result := TFileStream.Create(aReference, fmOpenRead)
else
Result := Download(aReference, [soForceMemoryStream]);
end;
end.