WideStudio Logo
WideStudio
Programming Guide
WideStudio Index
Table of contents


»ùÇà À̺¥Æ® ÇÁ·Î½ÃÀú:ÀÔ·Â ÇʵåÆí



EnterŰ·Î ƯÁ¤ÀÇ À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ½ÇÇàÇϱ⿡´Â

À̺¥Æ® ÇÁ·Î½ÃÀú¿¡¼­ ƯÁ¤ÀÇ À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ±âµ¿Çϵµ·Ï ÇØ¹ý½Ã´Ù. ¿©±â¼­´Â EnterŰÀÇ ÀÔ·ÂÀ¸·Î "ÀÔ·ÂÈ®Á¤"À̶ó´Â ¸íĪÀ» °¡Áö´Â À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ±âµ¿ÇÏ´Â ¿¹¸¦ µéÀÔ´Ï´Ù.

use mpfc;
# WSEV_KEY_HOOKÆ®¸®°Å(trigger)·Î WSCvifield  ÀνºÅϽº¿¡ ¼³Á¤ÇÕ´Ï´Ù.
sub cbop {
  my ($object) = @_;
  # (A) ÀԷµǿ©Àִ Ű¸¦ Ãëµæ.
  $key = mpfc::WSDkeyboard_getKey(mpfc::WSGIappKeyboard());


  # (B)  ۰¡ EnterŰÀ̸ç´Â
  if ($key == $mpfc::WSK_Return){
    # "ÀÔ·ÂÈ®Á¤"À̶õ ¸íĪÀ» °¡Áö´Â À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ½ÇÇà.
    mpfc::WSCbase_execProcedure($object,"ÀÔ·ÂÈ®Á¤");
  }
  return;
}
1;

(A)¿¡¼­ ÀÚÆÇ Àü¿ª ÀνºÅϽº¿¡¼­ Áö±Ý ÀԷµǿ©Àִ Ű¸¦ ÃëµæÇÕ´Ï´Ù.

(B)¿¡¼­ EnterŰÀÎÁö¸¦ ÆÇº°Çؼ­,±×·§´õ¶ó¸é (C)¿¡¼­ "ÀÔ·ÂÈ®Á¤"À̶õ EP¸íĪÀ» °¡Áö´Â EP¸¦ ½ÇÇà½Ãŵ´Ï´Ù. ±× ÀÔ·ÂÈ®Á¤ ½ÇÇà À̺¥Æ® ÇÁ·Î½ÃÀú´Â EnterŰ¿¡À§ÇÑ ÀÔ·ÂÈ®Á¤ µ¿ÀÛÀ» ÇÒ °æ¿ì¿¡ ÀÚÁÖ ÀÌ¿ëµË´Ï´Ù.

Ãʱ⶧ ÀÔ·ÂÀ¸·Î Àü¿¡ ÀԷ¹®ÀÚ¿­À» Ä¡¿ì±â¿¡´Â

»õ·Î ÃÊÁ¡ÀÌ ¸Â¾Æ¼­ ÀÔ·ÂÀ» ½ÃÀÛÇÒ °æ¿ì³ª »õ·Î ¸¶¿ì½º·Î Ŭ¸¯µÇ¿©¼­ ÀÔ·ÂÀ» ½ÃÀÛÇÏ´Â °æ¿ì¿¡ Àü¿¡ ÀÔ·ÂÇÑ ¹®ÀÚ¿­À» Ä¡¿ì´Â À̺¥Æ®ÇÁ·Î½ÃÀú¸¦ ÀÛ¼ºÇغ¾½Ã´Ù. ÁÖ·ÎÀÇ È帧Àº ´ÙÀ½°ú °°½À´Ï´Ù.

use mpfc;
# ÃÊÁ¡ÀÌ ¸Â¾ÆÀÖ´ø ÀÔ·Â Çʵ带 º¸ÁöÇÒ º¯¼ö
$focus_if = 0;

# WSEV_FOCUS_CH Æ®¸®°Å(trigger)·Î ±âµ¿µÉ ¼­ºêEP
sub _focus_ch_ {
  my ($object) = @_;
  # (A) ÃÊÁ¡ÀÌ À̵¿µÇ¿©¼­ ¿Ô´Â°¡¸¦ Á¶»ç
  if ($focus_if != 0 &&
      mpfc::WSCbase_getInstanceName($focus_if) != mpfc::WSCbase_getInstanceName($object) &&
      mpfc::WSCbase_getFocus($object) != &mpfc::False ){

    #(B)´Ù¸¥ °´Ã¼¿¡¼­ ÃÊÁ¡ÀÌ À̵¿Çؿ °æ¿ì,
    #Ä¡¿ï ŸÀ̹ÖÀ» ÇÁ·¡±×(flag)¿¡ ¿Ü¾î³õ´Ù
    mpfc::WSCbase_setVariantData($object,"CLEAR TIMING",1);
    #(C)»õ·Î ÃÊÁ¡ÀÌ ¸ÂÀº°ÍÀÌ ÀÚ½Å.
    $focus_if = $object;
  }
  return;
}

#WSEV_MOUSE_PRESS Æ®¸®°Å(trigger)·Î ±âµ¿µÇ´Â ¼­ºêEP
sub _btn_press_ {
  my ($object) = @_;
  # (D) ¸¶¿ì½º·Î Ŭ¸¯µÇ¸ç´Â
  # Ä¡¿ï ŸÀ̹ÖÀ» ÇÁ·¡±×(flag)¿¡ ¿Ö¾î³õ´Ù
  mpfc::WSCbase_setVariantData($object,"CLEAR TIMING",1);
  mpfc::WSCbase_setProperty($object,"cursorPos",0);
  # (E) »õ·Î ÃÊÁ¡ÀÌ ¸ÂÀº°ÍÀÌ ÀÚ½Å.
  $focus_if = $object;
  return;
}

# WSEV_KEY_PRESS Æ®¸®°Å(trigger)·Î ±âµ¿µÇ´Â ¼­ºêEP
sub _key_hook_ {
  my ($object) = @_;
  # (F) Ű ÀÔ·ÂÇÒ¶§¿¡ Ä¡¿ï ŸÀ̹ÖÀΰ¡¸¦ Á¶»ç
  $fl = mpfc::WSCbase_getVariantData($object,"CLEAR TIMING");
  if (mpfc::WSCvariant_getLong($fl) == 1){
    $key = mpfc::WSDkeyboard_getKey(mpfc::WSGIappKeyboard());
    # (G) Ä¡¿ï ŸÀַ̹ΠÀ̵¿ Ű¾Æ´Ï¸ç´Â
    if ($key != $mpfc::WSK_Tab &&
        $key != $mpfc::WSK_Up &&
        $key != $mpfc::WSK_Down &&
        $key != $mpfc::WSK_Left &&
        $key != $mpfc::WSK_Right ){
      # (H) Ãë¼Ò.
      mpfc::WSCbase_setProperty($object,"labelString","");
    }else{
      return;
    }
  }
  # (I) Ä¡¿ï ŸÀÌ¹Ö ÇÁ·¡±×(flag)¸¦ Ä¡¿î´Ù.
  mpfc::WSCbase_setVariantData($object,"CLEAR TIMING",0);
  return;
}
# Àü¿¡ ÀÔ·ÂµÈ ¹®ÀÚ¿­À» Ä¡¿ï º»Ã¼
# WSEV_INITIALIZE Æ®¸®°Å(trigger)·Î ÀÔ·Â Çʵ忡 ¼³Á¤ÇÕ´Ï´Ù.
sub ifdclr {
  my ($object) = @_;
  # ÃÊÁ¡ÀÌ ¸ÂÀº °æ¿ì¿¡ ±âµ¿µÇ´Â ¼­ºêEP¸¦ ¼³Á¤
  mpfc::WSCbase_addProcedure($object,"ac1","_focus_ch_",$mpfc::WSEV_FOCUS_CH);

  # ¸¶¿ì½º°¡ Ŭ¸¯µÇ¿´À»¶§ ±âµ¿µÇ´Â ¼­ºêEP¸¦ ¼³Á¤
  mpfc::WSCbase_addProcedure($object,"ac2","_btn_press_",$mpfc::WSEV_MOUSE_PRESS);

  # Ű ÀԷµǿ´À»¶§ ±âµ¿µÇ´Â ¼­ºêEP¸¦ ¼³Á¤
  mpfc::WSCbase_addProcedure($object,"ac3","_key_hook_",$mpfc::WSEV_KEY_HOOK);
}
1;

¸ÕÀú ÃÊÁ¡°ü·ÃÀÇ ¼­ºêEP¿¡°üÇÏ¿© ¼³¸íÇÕ´Ï´Ù. ÃÊÁ¡ÀÌ »õ·Î ¸ÂÀº°ÍÀ» ¾Ë±âÀ§ÇØ Àü¿¡ ÃÊÁ¡ÀÌ ¸Â¾Ò´ø °´Ã¼¸¦ Á¤Àû(static)º¯¼ö¿¡ º¸ÁöÇØ³õ°Ú½À´Ï´Ù.

(A)¿¡¼­´Â ¿ì¼± º¸ÁöÇØ³õÀº °´Ã¼¿Í ÀÚ½ÅÀÌ ´Ù¸¥ °´Ã¼Àΰ¡¸¦ Á¶»çÇÕ´Ï´Ù. ´Ù¸£¸é »õ·Î ÃÊÁ¡ÀÌ ¸ÂÀº°ÍÀ» ÀǹÌÇØ¼­, (B)¿¡¼­ Ä¡¿ï ÇÁ·¡±×(flag)¸¦ ¼¼¿ö³õ½À´Ï´Ù. ±× ´ÙÀ½¿¡ (C)¿¡¼­ ÀÚ½ÅÀ» ±× Á¤Àû(static) º¯¼ö¿¡ º¸ÁöÇÕ´Ï´Ù.

´ÙÀ½¿¡´Â ¸¶¿ì½ºÀÇ Å¬¸¯°ü·Ã¿¡ ¼­ºêEP¿¡°ü¿¡¼­ ¼³¸íÇÕ´Ï´Ù. (D)¿¡¼­ Ä¡¿ï ÇÁ·¡±×¸¦ ¼¼¿ö¼­ ÀÔ·Â Ä«¼³À» ¼±µÎ·Î ¼³Á¤ÇÕ´Ï´Ù. ±×ÈÄ¿¡ (E)¿¡¼­ ÀÚ½ÅÀ» ÃÊÁ¡º¸ÁöÀÇ Á¤Àû(static) º¯¼ö¿¡ º¸ÁöÇÕ´Ï´Ù.

´ÙÀ½¿¡´Â Ű ÀԷ°ü·ÃÀÇ ¼­ºêEP¿¡ ´ëÇØ¼­ ¼³¸íÇÕ´Ï´Ù. Ű ÀԷ°ü·ÃÀÇ ¼­ºêEP¿¡¼­´Â Ä¡¿ï ÇÁ·¡±×(flag)¸¦ ¼¼¿ï °æ¿ì, ¹®ÀÚ¿­¸¦ Ä¡¿ö¼­ ±× Ä¡¿ï ÇÁ·¡±×(flag)¸¦ Ä¡¿ó´Ï´Ù. ¿ì¼± (F)¿¡¼­ Ä¡¿ï ÇÁ·¡±×(flag)°¡ ¼¼¿öÀúÀִ°¡¸¦ Á¶»çÇÕ´Ï´Ù. (G)¿¡¼­´Â À̵¿ ۸¦ ÀÔ·ÂÇѰÍÀ¸·Î Ä¡¿öÁöÁö¾Êµµ·Ï ±× ۸¦ ÆÇº°Çؼ­, (H)·Î Ä¡¿ö¼­ (I)·Î Ä¡¿ï ÇÁ·¡±×(flag)¸¦ Ä¡¿ó´Ï´Ù.

Document Release 3.70 for WideStudio ver 3.70, Feb 2004


WideStudio documents index | Table of contents

Copyright(C) T. Hirabayashi, 2000-2004 Last modified: Feb 25, 2004