CreateHandle

procedure TOSFileWithHandle.CreateHandle(const FileToGetAccess: String;
  const DesiredAccess: TCreateFileDesiredAccess);
begin
  if FileHandle <> nil then
    raise EInvalidOp.Create('Invalid Operation: Don''t create handle twice');
  inherited Create(FileToGetAccess);
  FileHandle := TFileHandle.Create(FileToGetAccess, DesiredAccess);
end;