°­ÁÂ

 ·Î±×ÀÎ  È¸¿ø°¡ÀÔ Category : Category

[±âÃʰ­Á #4] ¸Þ´º ¸¸µé±â #1
5th  2004-04-30 15:23:50, Á¶È¸ : 2,409, Ãßõ : 295
- Download #1 : TMenu_2.zip (4.0 KB), Download : 94

[±âÃʰ­Á #4] ¸Þ´º ¸¸µé±â #1
(Àüü ¼Ò½º´Â ÷ºÎµÈ ÆÄÀÏÀ» ÂüÁ¶ÇØÁÖ¼¼¿ä. ºÎºÐÀûÀ¸·Î¸¸ ¹ßÃéÇØ¼­ ¼³¸íÇÕ´Ï´Ù.)
========================================================================
[°á°ú]
: Ŭ¸¯µÈ Ç׸ñÀº ÆÄ¶õ»öÀ¸·Î Ç¥½ÃµÇ°í, ¸¶¿ì½º·Î °¡¸®Å°´Â Ç׸ñÀº °ËÁ¤»öÀ¸·Î Ç¥½ÃµË´Ï´Ù.


========================================================================
ÀÌ °­Á´ 3°³ÀÇ ÆÄÀÏ·Î ±¸¼ºµÇ¾ú½À´Ï´Ù.

1. start.curl
- Ç׸ñ¸íÀ» TMnuItem¿¡ StringÀ¸·Î ³Ñ°ÜÁÖ°í, ¸¸µé¾îÁø TMnuItemµéÀ» TMenu¿¡ º¸³À´Ï´Ù.

2. TMenuItem.scurl (Frame Ŭ·¡½º »ó¼Ó)
- Àüü ¸Þ´ºÁß ÇÑ Ç׸ñÀÔ´Ï´Ù.(¿¹: ¡°°øÁö»çÇס±, ¡°¼³Ä¡¡±...)
- ÇϳªÀÇ Ç׸ñÀº ÇϳªÀÇ FrameÀ¸·Î ¸¸µé¾îÁý´Ï´Ù.
À§ °á°úÈ­¸éÀ» º¸¸é, ±×¸²¿¡ 7°³ÀÇ Ç׸ñÀÌ ÀÖÁÒ? ¸ðµÎ 7°³ÀÇ Frame, Áï, 7°³ÀÇ TMenuItemÀÌ »ý¼ºµÇ¾îÁý´Ï´Ù.
- ¸¶¿ì½º À̺¥Æ®°¡ ¹ß»ýÇÒ¶§¸¶´Ù Ç׸ñÀÇ »öÀ» °ü¸®ÇÕ´Ï´Ù.

3. TMenu.scurl (VBox Ŭ·¡½º »ó¼Ó)
- ¸ðµç Ç׸ñÀ» °ü¸®ÇÏ´Â ¿ªÇÒÀÔ´Ï´Ù.
- »ý¼ºµÈ TMenuItem(=Frame)µéÀ» ºÙ¿©¼­ TMenu(=VBox)¿¡ ¿Ã·Á³õ½À´Ï´Ù.
- ¸Þ´º°¡ ¼±ÅõǾúÀ»¶§¿Í ¼±ÅõÇÁö ¾Ê¾ÒÀ»¶§ÀÇ À̺¥Æ®¸¦ °ü¸®ÇÕ´Ï´Ù.

[±×¸²]

========================================================================
TMenuItem.scurl

-----------------------------------------------------------
{constructor public {default
                          menu_item : String,
                          ...
                      }    
    set self.menu_item = menu_item    
    {construct-super
        width=100px, height=20px,
        background="beige",
        border-color="white", border-style="raised", border-width=1px,
        valign="center", halign="left",
        font-size=9pt,
        cursor=cursor-hand,  
        ...
}
-----------------------------------------------------------
¸Þ´º¿¡ µé¾î°¥ Ç׸ñ¸íÀ» ¹Þ½À´Ï´Ù.
»ó¼Ó¹ÞÀº Frame Ŭ·¡½ºÀÇ ¸ðµç ±â´ÉµéÀ» »ç¿ëÇϱâ À§ÇØ,
default¿¡ ¡°...¡±(rest-argument) °ú {construct-super ...}¸¦ Àû¾îÁÖ¾î¾ß ÇÕ´Ï´Ù.
{construct-super} ¾È¿¡¼­ ¿É¼ÇÀÇ °ªÀ» Àû´çÈ÷ ¹Ù²Ù¾î ÇÁ·¹ÀÓ ¸ð¾çÀ» ¸¸µì´Ï´Ù.
cursor = cursor-hand ¿É¼ÇÀº ÇÁ·¹ÀÓ¿¡ ¸¶¿ì½ºÆ÷ÀÎÅ͸¦ ¿Ã·Á³õ¾ÒÀ» ¶§,
È­»ìÇ¥¸¦ ¼Õ°¡¶ô ¸ð¾çÀ¸·Î ¹Ù²ãÁÝ´Ï´Ù.
-----------------------------------------------------------
    {self.event}    
    {self.add
        {HBox
            {Fill width=10px},                              
            self.menu_item
        }
    }    
-----------------------------------------------------------
»ý¼ºµÈ ÇÁ·¹ÀÓ¿¡ À̺¥Æ®¸¦ ´Þ¾ÆÁÖ±â À§ÇØ event ¸Þ¼Òµå¸¦ È£ÃâÇϰí, ÇÁ·¹ÀÓ¿¡ ±ÛÀÚ¸¦ Ãß°¡ÇÕ´Ï´Ù.
ÀÌ·¸°ÔÇØ¼­ ÇÑ °³ÀÇ ÇÁ·¹ÀÓÀÌ »ý¼ºµÇ°í, ¾Æ·¡´Â À̺¥Æ®¿¡ °ü·ÃµÈ ¸Þ¼ÒµåÀÔ´Ï´Ù.

¸¶¿ì½º°¡ ¸Þ´º¿¡ ¿Ã·ÁÁ® ÀÖÀ»¶§´Â °ËÁ¤»öÀ¸·Î, ¸Þ´º¿¡¼­ ³ª°¬À»¶§´Â ¿ø·¡»öÀ¸·Î,
Ŭ¸¯À» ÇßÀ»¶§´Â ÆÄ¶õ»öÀ¸·Î Ç¥½ÃÇÏ·Á°í ÇÕ´Ï´Ù.
-----------------------------------------------------------
{method public open{event}:void    
    {self.add-event-handler
        {on PointerEnter do                  
           {self.entered}
        }
}    
{self.add-event-handler
        {on PointerLeave do  
            {if self.select? ==  true then
                {self.selected}
             else
                {self.unselected}  
            }            
        }
}
-----------------------------------------------------------
self.add-event-handler : ÇöÀç(self) ÇÁ·¹ÀÓ¿¡ À̺¥Æ®¸¦ Ãß°¡ÇÑ´Ù´Â ¸Þ¼ÒµåÀÔ´Ï´Ù.
¸¶¿ì½º Æ÷ÀÎÅͰ¡ µé¾î¿ÔÀ» ¶§ °ËÁ¤»öÀÌ µÇ¾ßÇϰí(entered ¸Þ¼Òµå È£Ãâ),
¸¶¿ì½º Æ÷ÀÎÅͰ¡ ¶°³µÀ» ¶§´Â ¸Þ´º°¡ ¿ø·¡ »öÀ¸·Î µ¹¾Æ¿Í¾ß Çϴµ¥,
¼±ÅÃµÈ ¸Þ´º¿´´Ù¸é ÆÄ¶õ»öÀ¸·Î ³²¾Æ¾ßÇϰí(selected ¸Þ¼Òµå È£Ãâ),
¼±ÅÃÀÌ ¾ÈµÇ¾ú´Ù¸é ±âº»»öÀÎ º£ÀÌÁö»öÀ¸·Î ³²¾Æ¾ß ÇÕ´Ï´Ù.(unselected ¸Þ¼Òµå È£Ãâ)
-----------------------------------------------------------
  || *** entered ¸Þ¼Òµå ***  
  {method public open{entered}:void
    set self.background = "black"                    
    set self.color = "beige"                          
    set self.font-weight = "bold"
  }
-----------------------------------------------------------
  || *** selected ¸Þ¼Òµå ***  
  {method public open{selected}:void
    set self.select?=true
    set self.background = "blue"                
    set self.color = "white"                      
    set self.font-weight = "bold"      
  }
-----------------------------------------------------------
  || *** unselected ¸Þ¼Òµå ***  
  {method public open{unselected}:void
    set self.select?=false
    set self.background = "beige"                
    set self.color = "black"                      
    set self.font-weight = "normal"  
}
-----------------------------------------------------------
À§ 3°³ÀÇ ¸Þ¼Òµå´Â ¸¶¿ì½º µ¿ÀÛ¿¡ µû¸¥ Ç׸ñ »öÀ» ¹Ù²Ù´Â ³»¿ëÀÔ´Ï´Ù.
À§ÀÇ ¿É¼Ç ¸»°íµµ ¿©·¯ ¿É¼ÇµéÀ» »ç¿ëÇÏ¿©º¸¼¼¿ä.

ÁÖÀÇ ÇÒ Á¡À¸·Î´Â selected / unselected ¸Þ¼ÒµåÀÇ °æ¿ì,
È£ÃâµÉ¶§¸¶´Ù select? º¯¼ö¿¡ true / false °ªÀ» ÁÖ¾î, PointerLeave À̺¥Æ®¿¡¼­ ±¸º°µÉ¼öÀÖ°Ô ÇÕ´Ï´Ù.

========================================================================
TMenu.scurl
-----------------------------------------------------------
field protected frame_array : {Array-of TMenuItem} = {{Array-of TMenuItem}}    
field protected frame_index : int = -1  
    {constructor public {default                      
                          ...
                      }  
    let i:int=0
    {for element : any in ... do            
        {if element isa TMenuItem then    
            set element.user-data = i
            set i = i+1
            {self.frame_array.append element}            
        }                                        
    }  
    {self.event}
    {construct-super ...}    
}
-----------------------------------------------------------
VBox Ŭ·¡½º¸¦ »ó¼Ó¹Þ¾Æ ¸ðµç ±â´ÉÀ» »ç¿ëÇϱâ À§ÇØ
¡°...¡±(rest-argument) °ú {construct-super ...}¸¦ Àû¾îÁÝ´Ï´Ù.

»ý¼ºµÈ TMenuItem µéÀ» ¹Þ¾Æ¼­ ¹è¿­·Î ÀúÀåÇÕ´Ï´Ù.
Frame ¿É¼Ç Áß¿¡ user-data¶ó´Â°Ô Àִµ¥, Frame¿¡ °íÀ¯ ¹øÈ£¸¦ ÇÒ´çÇØÁÖ´Â ¿É¼ÇÀÔ´Ï´Ù
»ý¼ºµÈ TMenuItem ¸¶´Ù ¹øÈ£¸¦ ÁÖ¾î ±¸º°Çϱâ À§ÇØ ÀÌ ¿É¼ÇÀ» »ç¿ëÇÕ´Ï´Ù.
TMenuItemÀº FrameÀ» »ó¼Ó¹Þ¾Ò±â ¶§¹®¿¡ °¡´ÉÇÕ´Ï´Ù.
-----------------------------------------------------------
|| *** event ¸Þ¼Òµå ***  
  {method public open{event}:void    
    {for i:int=0 below self.frame_array.size do          
        {self.frame_array[i].add-event-handler    
            {on PointerPress at this : TMenuItem do
                {if (self.frame_index != -1) then
                    {self.frame_array[self.frame_index].unselected}
                }                  
                set self.frame_index = this.user-data  
                {this.selected}                
            }  
        }        
}
}
-----------------------------------------------------------
°¢°¢ÀÇ Ç׸ñ(=TMenuItem)¿¡´Â ¸¶¿ì½º¸¦ Ŭ¸¯ÇßÀ»¶§ÀÇ À̺¥Æ®¸¦ Ãß°¡Çϴµ¥
Ŭ¸¯À» ÇÏ¸é ¼±ÅÃµÈ Ç׸ñÀÇ user-data °ªÀº frame_index¿¡ ³Ö¾îµÑ ¿¹Á¤ÀÔ´Ï´Ù.
µû¶ó¼­, frame_index ÀÇ °ªÀÌ -1ÀÌ ¾Æ´Ï¶ó¸é, ¾î¶² Ç׸ñÀÌ ¼±ÅõǾî ÀÖ´Ù´Â ¶æÀÔ´Ï´Ù.

Ŭ¸¯À» ÇÒ ¶§,
Àü¿¡ ¼±ÅÃµÈ Ç׸ñÀÇ »öÀº ±âº»»öÀ¸·Î ¹Ù²ãÁÖ±â À§ÇØ, unselected ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù.
±×¸®°í, ÇöÀç ¼±ÅõǴ Ç׸ñÀÇ user-data °ªÀ» ´Ù½Ã frame_index¿¡ ³Ö¾îµÎ°í,
ÆÄ¶õ»öÀ¸·Î Ç¥½ÃÇϱâ À§ÇØ selected ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù.

========================================================================

ª°Ô ¼³¸íÇÏ·Á°í Çߴµ¥ ¶Ç ±æ¾îÁö°í ¸»¾Ò³×¿ä.
...Á¶±Ý¾¿ ³ª¾ÆÁö°ÚÁÒ...
±×·³, ´ÙÀ½ °­Á¿¡¼­ °è¼Ó....

- 5th -


  ÃßõÇÏ±â   ¸ñ·Ïº¸±â

¹øÈ£ ºÐ·ù Á¦¸ñ ÀÛ¼ºÀÚ ÀÛ¼ºÀÏ   Ãßõ Á¶È¸
65 ÃʱÞÀÀ¿ë  [±âÃʰ­Á #15] °Ô½ÃÆÇ ¸¸µé±â #4    5th 2004/06/08 503 3006
64 ÃʱÞÀÀ¿ë  [±âÃʰ­Á #14] °Ô½ÃÆÇ ¸¸µé±â #3    5th 2004/06/08 386 2552
63 ÃʱÞÀÀ¿ë  [±âÃʰ­Á #13] °Ô½ÃÆÇ ¸¸µé±â #2    5th 2004/06/08 276 3083
62 ÃʱÞÀÀ¿ë  [±âÃʰ­Á #12] °Ô½ÃÆÇ ¸¸µé±â #1  [1]  5th 2004/06/08 390 3626
61 ÃʱÞÀÀ¿ë  [±âÃʰ­Á #11] ¹æ¸í·Ï ¸¸µé±â #3  [15]  5th 2004/05/17 318 2658
60 ÃʱÞÀÀ¿ë  [±âÃʰ­Á #10] ¹æ¸í·Ï ¸¸µé±â #2  [3]  5th 2004/05/17 297 2833
59 ÃʱÞÀÀ¿ë  [±âÃʰ­Á #9] ¹æ¸í·Ï ¸¸µé±â #1  [3]  5th 2004/05/17 279 2653
58 ÃʱÞÀÀ¿ë  [±âÃʰ­Á #8] RecordSet class¸¦ ÀÌ¿ëÇÑ µ¥ÀÌÅÍ ´Ù·ç±â #3    5th 2004/05/11 347 2211
57 ÃʱÞÀÀ¿ë  [±âÃʰ­Á #7] RecordSet class¸¦ ÀÌ¿ëÇÑ µ¥ÀÌÅÍ ´Ù·ç±â #2  [19]  5th 2004/05/11 348 2299
56 ÃʱÞÀÀ¿ë  [±âÃʰ­Á #6] RecordSet class¸¦ ÀÌ¿ëÇÑ µ¥ÀÌÅÍ ´Ù·ç±â #1  [1]  5th 2004/05/11 280 2537
55 ÃʱÞÀÀ¿ë  [±âÃʰ­Á #5] ¸Þ´º ¸¸µé±â #2    5th 2004/04/30 344 2237
ÃʱÞÀÀ¿ë  [±âÃʰ­Á #4] ¸Þ´º ¸¸µé±â #1    5th 2004/04/30 295 2409
53 ÃʱÞÀÀ¿ë  [±âÃʰ­Á #3] ¸Þ´º ¸¸µé±â – ½ÃÀÛ  [1]  5th 2004/04/30 314 2216
52 ÃʱÞÀÀ¿ë  [±âÃʰ­Á #2] Æ®¸®±¸Á¶ ¸¸µé±â #2    5th 2004/04/27 280 2701
51 ÃʱÞÀÀ¿ë  [±âÃʰ­Á #1] Æ®¸®±¸Á¶ ¸¸µé±â #1  [1]  5th 2004/04/27 318 2793
50 ÃÊ±Þ  [À¥¼­¹ö¿ÍÀÇ ¸¸³² #6] SAX¸¦ ÀÌ¿ëÇØ¼­ XML µ¥ÀÌÅ͸¦ RecordSet À¸·Î ¹Þ±â    vidkid 2004/04/27 372 2369
49 ÃÊ±Þ  [À¥¼­¹ö¿ÍÀÇ ¸¸³² #5] SAX ÆÄ¼­¸¦ ÀÌ¿ëÇÑ XML µ¥ÀÌÅÍ ºÐ¼®  [10]  vidkid 2004/04/27 571 10339
48 ÃÊ±Þ  [À¥¼­¹ö¿ÍÀÇ ¸¸³² #4] µ¥ÀÌÅ͸¦ RecordSet À¸·Î ¹Þ±â - ·¹ÄÚµå¼Â¿¡ ³Ö±â  [13]  vidkid 2004/04/22 324 2641
47 ÃÊ±Þ  [À¥¼­¹ö¿ÍÀÇ ¸¸³² #3] µ¥ÀÌÅ͸¦ RecordSet À¸·Î ¹Þ±â - ÇÁ·Î½ÃÀú ¸¸µé±â  [3]  vidkid 2004/04/21 491 4015
46 ÃÊ±Þ  [À¥¼­¹ö¿ÍÀÇ ¸¸³² #2] GET / POST ¸Þ¼Òµå  [15]  vidkid 2004/04/21 534 6628

    ¸ñ·Ïº¸±â   ÀÌÀüÆäÀÌÁö   ´ÙÀ½ÆäÀÌÁö [1] 2 [3][4][5]
       

Copyright 1999-2010 Zeroboard / skin by zero