SDL & Object Pascal (Delphi) [3] ÖÆ×÷Ò»¸öÑ¡µ¥
Ò»¸öÑ¡µ¥´óÖÂÊÇÕâÑù£º
1.¿ÉÒÔ±»ÒÔijÖÖÐÎʽºô½Ð³öÀ´£¬Èç°´ÏÂesc£»
2.ÔÚÕâ¸öÑ¡µ¥Öй¦ÄܼüÓв»Í¬µÄ¶¨Ò壬ÈçÔ±¾·½Ïò¼ü¿ØÖÆ×ß·£¬µ«ÏÖÔÚ¸ÄΪ¿ØÖƹâ±êµÄλÖã»
3.°´ÏÂÈ·¶¨¼üºóÓжÔÓ¦¹¦Äܱ»Ö´ÐУ»
4.¿ÉÒÔ±»¹Ø±Õ¡£
ÄÇôÎҵİ취ÊDZàдÁ½¸ö×ӳ̣¬ÆäÖÐÒ»¸ö´¦ÀíÑ¡µ¥ÖеÄʼþ£¬ÁíÍâÒ»¸öרߺÔð»Ñ¡µ¥¡£
ÔÚ´Ó²½ÐÐÇл»µ½Ñ¡µ¥µÄʱºò£¬¿ÉÄÜÐèÒªÇå³ýµ±Ç°µÄ¼üÖµ¡£Èç¹û²½ÐÐÖÐʹÓÃÁË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
Ïà¹ØÎĵµ£º
ÀûÓÃWindows APIº¯ÊýWritePrivateProfileString
ºÍGetPrivateProfileString¿É¶Ô.INIÎļþ½øÐжÁд²Ù×÷¡£Æäʵ£¬¶Ô.INIÎļþµÄ¶ÁдÍêÈ«¿ÉÒÔÀûÓÃDelphiµÄÄÚÖú¯ÊýÀ´Êµ
ÏÖ¡£ÏÂÃæ¾Í½éÉÜһЩ¶Ô.INIÎļþ¶ÁдʱÏà¹ØµÄÀ༰ÆäÊôÐÔ·½·¨¡£
1¡¢TIniFile¶ÔÏó
ÒÔDelphiÖУ¬¶¨ÒåÁËÒ»¸öTIniFile¶ÔÏ󣬽«.INIÎļþ·â×°ÔÚÆäÖУ¬²¢ÌṩһЩ·½·¨ ......
ÏûÏ¢µÄ´¦ÀíÁ÷³Ì£¬Á÷³ÌÈçÏ£º
ÆäÅÉ·¢´¦Àí¹ý³ÌÏêϸÈçÏ£º
×¢Ò⣺TWinControlÀïÃæWndProcÓе÷ÓÃϵͳAPI DefWindowProc,¸Ãº¯Êýµ÷ÓÃȱʡµÄ´°¿Ú¹ý³ÌÀ´ÎªÓ¦ÓóÌÐòûÓд¦ÀíµÄÈκδ°¿ÚÏûÏ¢ÌṩȱʡµÄ´¦Àí¡£¶øTWinControlÀïÃæDefaultHandlerÓÖµ÷ÓÃÁËϵͳAPI CallWindowProc£¬¸Ãº¯ÊýCallWindowProc½«ÏûÏ¢ÐÅÏ¢´«Ë͸øÖ¸¶¨µÄ´°¿ ......
±¾ÎÄ×îÔçÔÚ±à³ÌÂÛ̳ÉÏ·¢±í£¬ÎÄÕµØÖ·£ºhttp://programbbs.com/bbs/view12-21351-1.htm£¬Ïà¹ØÎļþ¿ÉÒÔÔÚÉÏÊöµØÖ·µÄÒ³ÃæÖÐÏÂÔØ¡£×ªÔØÊ±Çë×¢Ã÷³ö´¦¡£
Ò»¡¢Ç°ÑÔ
ͨÅä·û¾ÍÊÇÖ¸“*”ºÍ“?”Á½¸ö×Ö·û£¬“*”±íʾµ±Ç°Î»ÖÿÉÒÔûÓлòÕßÓжà¸öÈÎÒâ×Ö·û£»“?”±íʾµ±Ç°Î»ÖÃÓÐÒ»¸öÈÎÒâ×Ö·û¡£ ......
·½·¨1£º¿ÉдΪº¯Êý£¬ÔÙµ÷ÓÃ
Application.CreateForm(TForm1, Form1);
Form1.ShowModal;
Form1.Free;
·½·¨2£º
Form1:= TForm1.Create(Application);
try
Form1.ShowModal;
finally
  ......