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

      Delphi 2010只剩下六天的试用期了,15天的试用期过得真快.百度了很久也依旧未搜索到破解补丁,看来这版本的防盗版工作做得确实不错.无奈之下只好自己对它做做手脚了.
      测试了一下,delphi只有在启动程序的时候把时间记录给更新到当前日期,系统内并不驻留相应的 ......

引用 [转]delphi编译错误中英对照表

在编译delphi程序时会出现在些提示,全是E文的,现在给大家一个对照表,可以更好的理解错误提示信息!
';' not allowed before 'ELSE' ElSE前不允许有“;”
'' clause not allowed in OLE automation section 在OLE自动区段不允许“”子句
'' is not a type identifier 不是类型标识符
'' not prev ......

Delphi 动态创建窗口的几种方法

  方法1:可写为函数,再调用
  Application.CreateForm(TForm1, Form1);
  Form1.ShowModal;
  Form1.Free;
  方法2:
  Form1:= TForm1.Create(Application);
  try
     Form1.ShowModal;
  finally
     ......

Delphi中使用@取函数地址的问题

例如以下代码:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs;
type
  TForm1 = class(TForm)
    procedure one();
    function two(x,y:integer):integer;
  private
    ......

SDL & Object Pascal (Delphi) [前言]

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