Windle for Windows
Windle是流行的文字游戏的克隆,为Windows 3.1构建。体验找到正确单词的乐趣 在 Windows 3.1 的 3D 斜面风格!
该程序是在运行Windows 1.4工作组的网关2DX66-3上的Delphi 11中开发的。 它从当代游戏(如纸牌)和游戏中提取UI设计线索。 Microsoft娱乐包(芯片的挑战,白日梦等)。
如果您想了解我在Delphi 1中编写Windle的经验,请继续阅读。否则,您可以 跳到下面的下载部分。
沿着德尔福高速公路旅行
自从我上次在德尔福开发以来已经有一段时间了, 并用更现代的方式编码 从那以后的几十年里,有几件事很有趣。
CPU 速度 – 一件事不应该是一个惊喜,但我几乎会 忘记了,66MHz CPU很慢的事实。我最初依靠将整本字典读入内存 启动时,但必须快速将其替换为对磁盘上的文件的二进制搜索,因为加载需要几秒钟的时间 在UI挂起时温德尔。你不能随便扔 记忆中的一切,并称之为一天。
UI设计 – 德尔福的优势之一是其形式(UI)设计师。它具有一组强大的标准窗口 组件,您可以在屏幕上直观地操作这些组件以形成应用程序的 UI。它缺少一些 你今天在UI编辑器或设计工具中认为理所当然的事情,比如能够通过像素推动事物, 或在对齐事物时显示参考线。但总的来说,它很棒!
空格规则,制表符流口水 – 忘记代码完成(在 97 年 Delphi 3 中会出现)— 今天看起来很基本的东西,比如自动缩进的 Tab 键,已经不存在了。按 Tab,您可能期望 根据您所在的上下文缩进适当的量,而是将一个字符比上一行的最后一个字符更慢。 例如,在这里您可以看到我错误地将“var”声明缩进了 3 个空格,并且过程 正文在“开始”后面有 5 个空格,因为“var”是 3 个字符,“开始”是 5 个字符。事实证明 标准的德尔福风格是手动缩进所有内容 2 个空格!
令人困惑的编译器错误 – Delphi 1的编译器错误消息不是它的强项。编译器错误 例如,由于变量 C 的类型错误而出现屏幕截图。相反,“预期字段标识符”听起来 就像某处有语法错误一样。我确实注意到Delphi 2的错误消息得到了很大的改进 – 但对于16位 开发,你被德尔福 1 困住了。
帮助文件的有用性 – 体验中一个明显令人愉快的部分是内置的帮助 (.hlp) 文件。 回到过去,当Stack Overflow不存在并且互联网几乎不存在时,帮助文件(以及厚厚的手册 伴随着Delphi)是你了解内置库和Windows API如何工作的主要方式。 我发现内置的搜索和文档非常有用。 我仍然发现自己在谷歌上搜索以掩盖编译器错误和Windows API复杂性的方法,这受到 事实上,自从Delphi 1和Windows 3.1上架以来,已经有十几个Delphi版本和几乎同样多的Windows版本。
说到堆栈溢出…– 我最终从互联网上借用的代码片段之一原来是 其中有一个微妙的错误,花费了我几个小时的恼怒调试。你看,德尔福有两种字符串类型——一个 本机字符串和 PChar,或指向以 null 结尾的字符数组的指针(如 C 中的字符数组)。UI 组件使用本机 字符串类型,但Windows API函数自然需要PChar作为其字符串参数。
长话短说,我从互联网上提取的一段代码来转换本机 字符串到 PChar 分配的字节比所需少一个字节(PChar 需要空间来存储其尾随 null),并导致我的代码 行为方式很奇怪,例如损坏对话框中的文本以及在代码的完全不相关的区域中崩溃。让我们只是 假设我花了很多时间质疑我进行二进制搜索的能力。
你说崩溃吗?– 在调试期间,因为我随机覆盖了内存(大概包括, 由于缺乏受保护的内存,内存不属于温德),温德经常崩溃。有时它会 以Windows可以捕获并从中恢复的方式崩溃。但更多的时候 我想要,我会导致Windows本身崩溃并将我倾倒在蓝屏死机上,我必须从中 拉开计算机电源并重新启动。
德尔福设置屏幕的辉煌 – 最后,我最喜欢的之一 从我第一次使用Delphi 1开始,我对它的记忆是设置过程。这是一个InstallShield风格的安装程序,就像很多一样。 过去的Windows软件,但有一个转折 – 你在德尔福高速公路上的Borland汽车和你的车速表 是完成百分比。 这是一个有趣的转折,我绝对欣赏,因为它需要永恒的半时间来完成所有 15 张软盘。
下载
本作品根据知识共享署名-非商业性使用-禁止演绎4.0国际许可协议进行许可。无担保 为该软件提供;请在使用前阅读许可证。
- Windle 16 位(ZIP 文件,120KB) – 适用于 Windows 3.1 和 32 位版本的 Windows
- Windle 32 位(ZIP 文件,122KB) – 适用于 32 位和 64 位版本的 Windows
关于 32 位版本
虽然 Windows 16.3 的 Windle 的 1 位版本不适用于 64 位版本的 Windows,但 32 位版本不适用于 也可用。这应该适用于较新的Windows版本,但看起来不像它那么经典。 在 Windows 3.1 上做。
两个版本之间的唯一区别是 32 位版本已在 Windows 2 SE 上使用 Delphi 98 编译, 以及对外壳.dll函数 ShellAbout 的引用,以显示标准 Windows 关于对话框 – 已替换为 shell32.dll 函数 ShellAboutA 中的一个。
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun236451.html