易截截图软件、单文件、免安装、纯绿色、仅160KB

SDL & Object Pascal (Delphi) [3] 制作一个选单


一个选单大致是这样:
1.可以被以某种形式呼叫出来,如按下esc;
2.在这个选单中功能键有不同的定义,如原本方向键控制走路,但现在改为控制光标的位置;
3.按下确定键后有对应功能被执行;
4.可以被关闭。
那么我的办法是编写两个子程,其中一个处理选单中的事件,另外一个专门负责画选单。
在从步行切换到选单的时候,可能需要清除当前的键值。如果步行中使用了SDL_EnableKeyRepeat方法把键盘的频率变高,对于选单来说就太快了。所以可能要在调用选单之前写上:
SDL_EnableKeyRepeat(0, 0);
event.key.keysym.sym := 0;
这样降低了键盘的反应,同时清除当前的键值,要不然呼出选单之后它可能还会自己转一会(如果之前用了PollEvent方式,我还没搞清楚原因)。不过如果在行走中使用的是WaitEvent方式,事情就会简单很多。PollEvent方式看来是太快了,在选单中不合适。
处理选单事件的子程:
procedure MenuSystem;
var
  menu: integer;
begin
  while (SDL_WaitEvent(@event) >= 0) do
  begin
    case event.type_ of
      SDL_QUITEV: //这里处理窗口退出事件
        if messagebox(0, 'Are you sure to quit?', 'KYS Windows', MB_OKCANCEL) = IDOK then Quit;
      SDL_KEYUP:
        begin
          if (event.key.keysym.sym = sdlk_down) then
          begin
            menu := menu+1;
            if menu > 3 then menu := 0; //按下下键的溢出
            showMenusystem(menu); //每次当前选中发生变化时, 均重画选单
          end;
          if (event.key.keysym.sym = sdlk_up) then
          begin
           


相关文档:

Delphi正则表达式使用方法(TPerlRegEx)

Delphi正则表达式使用方法(TPerlRegEx)
正 文:
    使用Delphi开发软件无疑是一种比较高效率的方式,完全对象的语言,严格控制的语法,可视化开发环境的性能,编译器的速度和已编译代码的效率,编程语言的功能及其复杂性,数据库结构的灵活性和可扩展性,框架对设计和使用模式的扩充无疑都是delph ......

Delphi CRC32校验

网上Down的一个单元.自己改了下. unit utCRC32;
interface
uses
Windows,SysUtils,Classes;
const //Crc32表
Crc32Tab: Array[0..$FF] of LongInt =
($00000000, $77073096, $ee0e612c, $990951ba, $076dc419, $706af48f,
$e963a535, $9e6495a3, $0edb8832, $79dcb8a4, $e0d5e91e, $97d2d988,
$0 ......

Delphi部分函数、命令、属性中文说明

注册码:6amd-pdj686-apme9d-9cdr
密匙:yvx-27c
Delphi部分函数、命令、属性中文说明
Abort 函数 引起放弃的意外处理
Abs 函数 绝对值函数
AddExitProc 函数 将一过程添加到运行时库的结束过程表中
Addr 函数 返回指定对象的地址
AdjustLineBreaks 函数 将给定字符串的行分隔符调整为CR/LF序列
Align 属性 使控件� ......

Delphi下实现包含通配符的文本查找

本文最早在编程论坛上发表,文章地址:http://programbbs.com/bbs/view12-21351-1.htm,相关文件可以在上述地址的页面中下载。转载时请注明出处。
一、前言
通配符就是指“*”和“?”两个字符,“*”表示当前位置可以没有或者有多个任意字符;“?”表示当前位置有一个任意字符。 ......

SDL & Object Pascal (Delphi) [前言]

实际上这个名字叫[SDL & Delphi]也不成问题, 因为除了Delphi似乎也没有哪个流行的开发工具用的是Pascal语言。
SDL其实我也只学了不到两星期而已。刚开始我想试图用VC,因为这样资料最全,也很好找,但太久没用VC现在看C的代码有点困难(->这个算符是干吗的来着……)。其实作为一个专业不是计算机的人 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号