易截截图软件、单文件、免安装、纯绿色、仅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
           


相关文档:

常用的BCB & Delphi 函数

常用的BCB & Delphi 函数
关键字:BCB,delphi,函数
作者:鲁小班    更新:2003-08-12    浏览:12686
翻译的不好,请见谅。
翻译:鲁小班
文件: ActnList
CreateAction 函数 创建一个指定类型的Action,显示在action list editor中。
EnumRegisteredAction 过程 枚举已经注册的 ......

15本Delphi书籍(PDF格式)下载 (转)

15本Delphi书籍(PDF格式)下载 (转)

文件名:  Delphi组件参考大全.rar
下载地址:  http://www.rayfile.com/files/678ca1e3-f73f-11de-9d02-0014221b798a/
文件名:  Delphi信息系统开发实例精选.rar
下载地址:  http://www.rayfile.com/files/fb328f02-f73e-11de-8a76-0014221b798a/
文件名 ......

Delphi 究竟产生了几个String对象的问题

技术交流,DH讲解. 这个是在CSDN上面看见的问题.我说说自己的想法. procedure TForm1.btn1Click(Sender: TObject);
var
Str:String;
begin
Str:='abc' ;

Str:=str+'d';

str:=copy(Str,1,3);

str:=UpperCase(str);
end;
问题1答案:2010下
Unit4.pas.29: begin
005144E0 55 p ......

delphi 使用ado 读写 vfp或者dbase4的数据库


tableDB.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ ExtractFilePath(dir) +';Extended Properties=dBase 5.0;Persist Security Info=False;';
       tableDB.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(dir)+';Extended Pro ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号