; <Lrz> 09.08.2006 ¯à®¨§¢¥¤¥ ®¯â¨¬¨§ æ¨ï à ¡®âë ª®¯®ª DEL ¨ Backspace? 㬥ìè¥ à §¬¥à ¢ë¯®«ï¥¬®£® ª®¤ . ;ä䥪⨢®¥ ¯à®£à ¬¬¨à®¢ ¨¥ ¢ KOLIBRI ;Ž¯â¨¬¨§¨à®¢ ë© ª®¬¯®¥â EditBox (ˆáå®¤ë© ¢ ਠ⠮â Maxxxx32) ;Ž¯â¨¬¨§ æ¨ï ª®¬ ¤. ;<Lrz> - ’¥¯«®¢ €«¥ªá¥© www.lrz.land.ru ;§ £®«®¢®ª ¯à¨«®¦¥¨ï use32 ; âà á«ïâ®à, ¨á¯®«ì§ãî騩 32 à §àï¤ëå ª®¬ ¤ë org 0x0 ; ¡ §®¢ë© ¤à¥á ª®¤ , ¢á¥£¤ 0x0 db 'MENUET01' ; ¨¤¥â¨ä¨ª â®à ¨á¯®«ï¥¬®£® ä ©« (8 ¡ ©â) dd 0x1 ; ¢¥àá¨ï ä®à¬ â § £®«®¢ª ¨á¯®«ï¥¬®£® ä ©« dd start ; ¤à¥á, ª®â®àë© á¨á⥬ ¯¥à¥¤ ñâ ã¯à ¢«¥¨¥ ; ¯®á«¥ § £à㧪¨ ¯à¨«®¦¥¨ï ¢ ¯ ¬ïâì dd i_end ; à §¬¥à ¯à¨«®¦¥¨ï dd i_end and not 3 ; Ž¡ê¥¬ ¨á¯®«ì§ã¥¬®© ¯ ¬ïâ¨, ¤«ï á⥪ ®â¢¥¤¥¬ 0å100 ¡ ©â ¨ ¢ë஢¨¬ £à¨æã 4 ¡ ©â dd i_end and not 3 ; à ᯮ«®¦¨¬ ¯®§¨æ¨î á⥪ ¢ ®¡« á⨠¯ ¬ïâ¨, áà §ã § ⥫®¬ ¯à®£à ¬¬ë. ‚¥àè¨ á⥪ ¢ ¤¨ ¯ §®¥ ¯ ¬ïâ¨, 㪠§ ®¬ ¢ëè¥ dd 0x0,0x0 ; 㪠§ ⥫ì áâபã á ¯ à ¬¥âà ¬¨. ; ¥á«¨ ¯®á«¥ § ¯ã᪠¥à ¢® ã«î, ¯à¨«®¦¥¨¥ ¡ë«® ; § ¯ã饮 á ¯ à ¬¥âà ¬¨ ¨§ ª®¬ ¤®© áâப¨ ; 㪠§ ⥫ì áâபã, ¢ ª®â®àãî § ¯¨á ¯ãâì, ; ®âªã¤ § ¯ã饮 ¯à¨«®¦¥¨¥ include 'editbox.inc' use_edit_box ;Ž¡« áâì ª®¤ start: ;’®çª ¢å®¤ ¢ ¯à®£à ¬¬ã mov eax,40 ;ãáâ ®¢¨âì ¬ áªã ¤«ï ®¦¨¤ ¥¬ëå ᮡë⨩ mov ebx,0x27 ;á¨á⥬ ¡ã¤¥â ॠ£¨à®¢ âì ⮫쪮 á®®¡é¥¨¥ ® ¯¥à¥à¨á®¢ª¥, ¦ â ª®¯ª , ®¯à¥¤¥«ñ ï à ¥¥, ᮡë⨥ ®â ¬ëè¨ (çâ®-â® á«ã稫®áì - ¦ ⨥ ª®¯ªã ¬ëè¨ ¨«¨ ¯¥à¥¬¥é¥¨¥; á¡à áë¢ ¥âáï ¯à¨ ¯à®ç⥨¨) ¨ ¦ ⨥ ª« ¢¨è¨ int 0x40 red_win: call draw_window ;¯¥à¢® ç «ì® ¥®¡å®¤¨¬® à¨á®¢ âì ®ª® still: ;®á®¢®© ®¡à ¡®â稪 mov eax,10 ;Ž¦¨¤ âì ᮡëâ¨ï int 0x40 ;®¦¨¤ âì ᮡë⨥ ¢ â¥ç¥¨¥ 2 ¬¨««¨á¥ªã¤ cmp al,0x1 ;¥á«¨ ¨§¬¥¨«®áì ¯®«®¦¥¨¥ ®ª jz red_win cmp al,0x2 ;¥á«¨ ¦ â ª« ¢¨è â® ¯¥à¥©â¨ jz key cmp al,0x3 ;¥á«¨ ¦ â ª®¯ª â® ¯¥à¥©â¨ jz button mouse_edit_boxes editboxes,editboxes_end jmp still ;¥á«¨ ¨ç¥£® ¨§ ¯¥à¥ç¨á«¥®£® ⮠ᮢ ¢ 横« ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; button: mov eax,17 ;¯®«ãç¨âì ¨¤¥â¨ä¨ª â®à ¦ ⮩ ª« ¢¨è¨ int 0x40 test ah,ah ;¥á«¨ ¢ ah 0, â® ¯¥à¥©â¨ ®¡à ¡®â稪 ᮡë⨩ still jz still or eax,-1 ;¢ eax,-1 - 5 ,¡ ©â®¢ ã á ¦¥ ⮫쪮 3 ¢ë©â¨ int 0x40 ;¤ «¥¥ ¢ë¯®«ï¥âáï ¢ë室 ¨§ ¯à®£à ¬¬ë key: mov eax,2 ;§ £à㧨¬ § 票¥ 2 ¢ ॣ¨áâ®à eax int 0x40 ;¯®«ã稬 ª®¤ ¦ ⮩ ª« ¢¨è¨ key_edit_boxes editboxes,editboxes_end jmp still ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>> draw_window: ;à¨á®¢ ¨¥ ®ª ¯à¨«®¦¥¨ï mov eax,12 ;¢ ॣ¨áâà ¢¥á⨠§ 票¥ = 12 mov ebx,1 ;¯à¨á¢®¨âì 1 int 0x40 xor eax,eax ;®¡ã«¨âì eax mov ebx,50*65536+390 ;[ª®®à¤¨ â ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ x] mov ecx,30*65536+200 ;[ª®®à¤¨ â ¯® ®á¨ y]*65536 + [à §¬¥à ¯® ®á¨ y] mov edx,0x03AABBCC ;0xXYRRGGBB Y =3 - ¢ë¢®¤ à ¬ª¨, ¨á¯®«ì§ãï áªà¨ mov esi,0x805080DD ;0xXYRRGGBB - 梥⠧ £®«®¢ª mov edi,0x005080DD ;0x00RRGGBB - 梥â à ¬ª¨ int 0x40 ; à¨á®¢ âì ®ª® ¯à¨«®¦¥¨ï add eax,4 ;¥á«¨ ¯à¥¤¯®« £ ¥âáï ¨á¯®«ì§®¢ âì ᪠«ïàë© ¯à®æ¥áá®à, â® ¬®¦® ¨á¯®«ì§®¢ âì ¤ î ¨áâàãªæ¨î mov ebx,8*65536+8 ; [ª®®à¤¨ â ¯® ®á¨ x]*65536 + [ª®®à¤¨ â ¯® ®á¨ y] mov ecx,0x10DDEEFF ; 0xX0RRGGBB, £¤¥ RR, GG, BB § ¤ îâ 梥â ⥪áâ mov edx,hed ; 㪠§ ⥫ì ç «® áâப¨ mov esi,i_end1 - hed ; ¤«¨ áâப¨, ¤®«¦ ¡ëâì ¥ ¡®«ìè¥ 255 int 0x40 ;¢ë¢¥á⨠⥪áâ draw_edit_boxes editboxes,editboxes_end ;à¨á®¢ ¨¥ edit box'®¢ add eax,8 ;”ãªæ¨ï 12 - ç âì/§ ª®ç¨âì ¯¥à¥à¨á®¢ªã ®ª . mov ebx,2 ;®¤äãªæ¨ï 2 - § ª®ç¨âì ¯¥à¥à¨á®¢ªã ®ª . int 0x40 ret ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ;DATA ¤ ë¥ editboxes: edit1 edit_box 168,10,50,0xffffff,0,0,0,512,ed_buffer.1,ed_focus edit2 edit_box 168,10,30,0xffffff,0,0,0,99,ed_buffer.2,ed_figure_only edit3 edit_box 35,10,70,0xffffff,0,0,0,9,ed_buffer.3,ed_figure_only edit4 edit_box 16,10,90,0xffffff,0,0,0,1,ed_buffer.4,ed_figure_only editboxes_end: ;data_of_code dd 0 ed_buffer: .1: rb 513;256 .2: rb 100 .3: rb 10 .4: rb 2 ;text_b: db 'Š®«-¢® ᨬ¢®«®¢' ;buffer: dd 0 buffer_end: hed db 'EDITBOX optimization and retype <Lrz> date 01.02.2007' i_end1: rb 2048 i_end: keymap: