6

我们有一个应用程序,它通过从 TPersistent 降级将项目信息存储在一个文件中。我们使用 TSteam.ReadComponentRes 从流中读取对象。

我们希望能够打开具有未知属性的项目文件(来自较新版本或我们应用程序的其他开发分支)。目前这会导致 TReader 中出现异常,该异常是由 TStream 创建的。我们考虑过创建一个 TStream 后代,它使用 TReader 后代来处理此异常而不是停止读取。有人能想到一种更优雅的方式吗?

4

1 回答 1

9

调用 Stream.ReadResHeader,创建一个 TReader 实例,设置其 OnError 事件并调用 Reader.ReadRootComponent 并释放阅读器(即模仿 TStream.ReadComponentRes 的行为)。

在 OnError 事件处理程序中,您可以设置handled := true。

于 2011-06-07T13:46:43.097 回答