跳转至内容

Futurebasic/语言/参考/资源

来自维基教科书,自由的教学读物

资源

2000年5月30日(版本 3)

这是一个不可执行的语句,它执行两个主要功能:它指定程序的文件类型和创建者;当 FB 构建你的文件时,它识别一个包含应该被复制到你的应用程序文件或代码资源文件的资源分支的现有文件(路径名)。RESOURCES 语句是可选的。如果你没有在程序中包含它,FB 将构建一个类型为 "APPL"、创建者签名为 "xxxx" 的应用程序文件,其中包含一组标准资源。资源也可以通过将资源文件拖动到项目管理器窗口来添加。你可以在程序中包含多个 RESOURCES 语句。FB 使用遇到的第一个 RESOURCES 语句来确定文件类型和创建者。路径名参数可以是完整的或部分路径名,它指定一个包含资源的文件;或者指定指向此类文件的别名。如果你使用部分路径名(例如,一个简单的文件名),则该路径被假定为相对于你的项目文件夹。当 FB 构建你的应用程序文件时,它将从路径名文件中的所有资源复制到它构建的文件的资源分支。请注意,如果你没有指定路径名参数,你仍然必须指定一对(空的)双引号。使用多个 RESOURCES 语句 有时用 FB 复制来自多个不同资源文件的资源很方便。你可以通过在你的程序中包含多个 RESOURCES 语句来实现这一点,每个语句都指定一个不同的路径名参数。如果你的程序包含多个 RESOURCES 语句,则第二个及所有后续的 RESOURCES 语句不应指定除路径名之外的任何参数。如果你的程序包含多个 RESOURCES 语句,那么资源之间可能存在 "冲突"。当一个路径名文件中的资源具有与另一个路径名文件中的资源相同的类型和相同的 ID 号时,就会发生这种情况。当这种情况发生时,当 FB 构建你的文件时,遇到的最后一个资源将替换遇到的第一个资源。在决定如何安排 RESOURCES 语句时,你应该牢记这一点。版本 3 的新特性:如果你的资源的 ID 为 32512-32767,编译器将在看到冲突时对其重新编号。这样,你就可以通过名称引用它,并用 GETNAMEDRESOURCE 获取它。这对那些想要分发包含所需资源的源代码的人来说很重要。

示例:你的项目中有两个资源文件。

myRes1.rsrc myRes2.rsrc myRes1.rsrc 包含: _"PICT" ID 501 Name "One" _"PICT" ID 502 Name "Two" _"PICT" ID 32512Name "Fred" myRes2.rsrc 包含: _"PICT" ID 501 Name "OneOne" _"PICT" ID 502 Name "TwoTwo" _"PICT" ID 32512Name "Barney" 你的最终应用程序将包含: _"PICT" ID 501 Name "OneOne"<- 请注意 OneOne 替换了 One _"PICT" ID 502 Name "TwoTwo"<- 请注意 TwoTwo 替换了 Two _"PICT" ID 32512Name "Fred" <- 第一个版本的 32512 被保存 _"PICT" ID 32513Name "Barney"<- 第二个版本的 32512 被重新编号 一些有用的资源

在构建应用程序时,FB 会自动包含应用程序所需的标准资源集。你可以通过也包含以下资源来增强你的应用程序(所有这些资源都可以使用 ResEdit 创建)

-VERS- ID 为 1 和 2 的 "vers" 资源包含版本信息,这些信息在 Finder 窗口和 "获取信息" 窗口中可见。有关更多信息,请参阅 Inside Macintosh: Macintosh Toolbox Essentials 中的 "Finder Interface" 章节。

-SIZE- ID 为 -1、0 和 1 的 "SIZE" 资源包含有关你的应用程序内存大小、它可以响应哪些事件类型等重要信息。FB 在构建应用程序时始终包含 "SIZE" 资源,但你可能希望通过提供你自己的 "SIZE" 资源来覆盖默认 "SIZE" 资源中的功能。有关更多信息,请参阅 Inside Macintosh: Macintosh Toolbox Essentials 中的 "Event Manager" 章节。

-BNDL, FREF, ICN#- 使用这些资源将特殊图标分配给你的应用程序以及你的应用程序创建的文档。这些资源还决定了哪些类型的文档可以拖放到 Finder 中你的应用程序的图标上。有关更多信息,请参阅 Inside Macintosh: Macintosh Toolbox Essentials 中的 "Finder Interface" 章节。

CALL <资源>; BUTTON (自定义 CDEF); ENTERPROC

华夏公益教科书