1 . 面 向 对 象 的 编 程 语 言
---- (a)PowerBuilder 和Delphi 都 采 用 了 面 向 对 象 编 程 方 法, 都 提 供 了 面 向 对 象 的 应 用 程 序 架 构,PowerBulder 应 用 程 序 架 构 叫 应 用 对 象(Application Object), 扩 展 名 为.pbl,Delphi 应 用 程 序 架 构 是 工 程(Project), 扩 展 名 为.dpr。Delphi 提 供 的 应 用 程 序 架 构 功 能 更 强。PowerBuilder 可 以 通 过 为 主PBL 文 件 指 定 其 它PBL 文 件 的 路 径, 将 多 个PBL 文 件 编 译 为 一 个EXE 文 件, 这 个 功 能 的 好 处 是 可 以 将 一 个 大 的 应 用 分 割 为 小 的 模 块, 即 多 个PBL 文 件, 再 合 并 编 译, 而 且 提 高 软 件 的 运 行 效 率。 而Delphi 的 一 个Project 只 能 编 译 为 一 个EXE 文 件, 这 对 于 多 人 合 作 开 发 项 目 比 较 麻 烦, 需 要 将 多 个Project 合 并 为 一 个Project, 容 易 发 生 冲 突, 除 非 每 个Project 编 译 为 一 个EXE 文 件。
---- (b)Delphi 提 供 的Object Pascal 语 言 是 标 准 的 面 向 对 象, 而PowerBuilder 所 使 用 的 开 发 语 言Script 封 装 在PowerBuider 提 供 的 面 向 对 象 控 件 中,Script 本 身 并 不 是 面 向 对 象 语 言。
---- (c) 在PowerBuilder 的Script 中 可 随 意 嵌 入SQL 语 句, 使 用 灵 活。 使 用Delphi 编 程,SQL 语 言 需 要 与Tquery 元 件 一 起 使 用。
---- (d)PowerBuilder 能 自 定 义 函 数,Delphi 能 自 定 义 函 数 和 过 程,PowerBuilder 不 区 分 函 数 和 过 程。
---- (e)PowerBuilder 和Delphi 都 能 调 用 动 态 连 接 库, 但Delphi 还 提 供 了 包(Package) 的 功 能, 这 比PowerBuilder 要 高 明。
---- 2 . 可 视 化 组 件 库
---- (a)PowerBuilder 和Delphi 都 提 供 了 功 能 完 整 的、 与Windows95 完 全 兼 容 的 可 视 化 组 件, 这 些 组 件 的 使 用 和 继 承 大 大 减 少 了 代 码 的 编 写 与 维 护 成 本。 相 比 之 下,Delphi 比PowerBuider 提 供 的 可 视 化 组 件 要 多 不 少, 有130 多 个 元 件。
---- (b)PowerBuilder 提 供 用 户 自 定 义 对 象 的 功 能,Delphi 提 供 用 户 定 义 元 件 的 功 能。PowerBuilder 为 每 个 控 件、Delphi 为 每 个 元 件 都 定 义 了 属 性 和 可 能 有 的 事 件。 在 这 方 面 两 者 类 似。 但PowerBuilder 能 让 用 户 为 现 有 的 控 件 增 加 用 户 自 定 义 事 件, 来 满 足 用 户 的 一 些 特 殊 要 求, 而 并 不 需 要 定 义 新 的 用 户 对 象, 节 省 工 作 量。Delphi 不 能 为 现 有 的 元 件 再 增 加 事 件, 只 能 通 过 继 承 现 有 元 件 来 定 义 新 的 元 件, 这 样 工 作 量 大。
---- 3 . 对 数 据 库 的 处 理
---- (a)Delphi 为 访 问 数 据 库 提 供 了 两 组 元 件Data Access 和Data Controls, 对 于 标 准 需 求 的 应 用 处 理 非 常 高 效、 快 速, 程 序 编 码 少。Delphi 还 具 有 一 个 突 出 优 点, 就 是 在 元 件 参 数 设 置 正 确 后, 即 能 看 见 所 需 访 问 的 数 据 库 中 的 数 据。 而PowerBuilder 则 需 要 编 译 运 行 才 能 得 到 数 据。
---- (b)PowerBuilder 在 处 理 数 据 库 应 用 方 面 的 突 出 贡 献 就 是 数 据 窗 口(DataWindow), 数 据 窗 口 的 功 能 强 大, 特 别 是 同 时 处 理 多 个Table 时, 显 得 得 心 应 手。PowerBuilder 的Grid 类 型 数 据 窗 口 的 字 段 对 象 不 仅 可 以 嵌 入CheckBox、RadioButtons、EditMask、DropDownListBox, 而 且 可 以 嵌 入DropDownDW,DropDownDW 可 以 是 其 它Table 的DataWindow, 这 一 功 能 非 常 有 用。 而Delphi 的DBGrid 不 具 有 这 种 功 能, 不 能 嵌 入DBEdit、DBListBox、DBComboBox 等。Delphi 在 处 理 多 个Table 时, 除 用 主、 从 表 的 处 理 方 法 外, 其 它 手 段 少, 灵 活 性 较 差。
---- (c) 在 处 理 报 表 功 能 方 面,PowerBuilder 似 乎 比Delphi 要 强,PowerBuilder 可 以 一 个DataWindow 嵌 入 其 它 的DataWindow。 这 与PowerBuilder 处 理 多 报 表 功 能 强 有 关。 而Delphi 在 处 理 报 表 时, 还 是 用 主、 从 表 的 处 理 方 法。
---- 4 . 打 印 功 能
---- PowerBuilder 的 控 件 打 印 功 能 强 大,MultiLineEdit、RichTextEdit、DataWindow 都 具 有 打 印 功 能, 即 所 见 到 的 就 能 打 印。 而Delphi 除 了QuickReport 具 有 打 印 功 能 外, 其 它 元 件 本 身 就 没 有 打 印 功 能, 需 要 用TPrinter 编 程 实 现, 比 较 麻 烦。
---- 5 . 数 据 统 计 分 析
---- 在 数 据 统 计 分 析 方 面,PowerBuilder 只 提 供 了Graph 类 型 的DataWindow, 可 作 些 简 单 的 统 计 分 析。Delphi 除 了 有 与PowerBuilder 的Graph 类 型 的DataWindow 相 类 似、 但 功 能 要 强 的TeeCharts 元 件 和QuickReport 元 件 外, 还 提 供 了Decision Cube 元 件 组, 在 交 叉 分 析 表 提 供 多 维 数 据 分 析 的 能 力 要 明 显 比PowerBuilder 强。