MouseUp Event Procedure में Shift नाम का एक Argument और होता है। MouseUp Event Generate होते समय यदि हम Keyboard के Ctrl, Alt अथवा Shift अथवा इनके Combination को Press करके रखते हैं, तो Shift Argument में उस Special Key अथवा Keey Combination की जानकारी होती है। इसका पता भी हम If Statement का प्रयोग करके लगा सकते हैं कि MouseUp Event के समय Keyboard के किस Shift Key को Press किया गया था।
- यदि MouseUp Event के समय Shift Button को Press किया गया हो, तो Event Procedure के Shift नाम के Argument में Visual Basic का vbShiftMask Constant मान Stored होता है। हम इस मान के स्थान पर Integer मान 1 भी Use कर सकते हैं।
- यदि MouseUp Event के समय Shift Button को Press किया गया हो, तो Event Procedure के Shift नाम के Argument में Visual Basic का vbCtrlMask Constant मान Stored होता है। हम इस मान के स्थान पर Integer मान 2 भी Use कर सकते हैं।
- यदि MouseUp Event के समय Alt Button को Press किया गया हो, तो Event Procedure के Shift नाम के Argument में Visual Basic का vbAltMask Constant मान Stored होता है। हम इस मान के स्थान पर Integer मान 4 भी Use कर सकते हैं।
जब MouseUp Event के समय किसी Shift Button को Press किया गया होता है, तो वह Button True Return करता है। इस स्थिति में हम If Statement द्वारा ये Check करवा सकते हैं कि किसी Shift Button को Press किया गया है अथवा नहीं। इस प्रक्रिया को हम निम्न MouseUp Procedure द्वारा समझ सकते हैं:
Private Sub Form_MouseUp _ (Button As Integer, Shift As Integer, X As Single, Y As Single) If Shift = vbCtrlMask Then MsgBox "Control Key was pressed" End If If Shift = vbAltMask Then MsgBox "Alt Key was pressed" End If If Shift = vbShiftMask Then MsgBox "Shift Key was pressed" End If End Sub
इस Procedure को Create करने के बाद Form को Run करते समय हम जिस किसी भी Shift Key को Press करके रखते हैं, उस Shift Key से सम्बंधित Message Box Display हो जाता है। यदि हम एक से ज्यादा Shift Key Combination को Identify करना चाहें, तो हमें इस Trick के आधार पर काम करना होता है कि जब भी हम MouseUp Event के समय किसी Shift Key को Press करके रखते हैं, तो वह Key कोई ना कोई Non-Zero मान Return करता है, जो कि True को Represent करता है।
Private Sub Form_MouseUp _ (Button As Integer, Shift As Integer, X As Single, Y As Single) If Shift = 0 Then MsgBox "No Shift Key was pressed. Key Value : 0" End If If Shift = vbCtrlMask Then MsgBox "Control Key was pressed. Key Value : " & vbCtrlMask End If If Shift = vbAltMask Then MsgBox "Alt Key was pressed. Key Value : " & vbAltMask " End If If Shift = vbShiftMask Then MsgBox "Shift Key was pressed. Key Value : " & vbShiftMask " End If Dim blnIsAlt As Boolean Dim blnIsCtrl As Boolean Dim blnIsShift As Boolean blnIsAlt = Shift And vbAltMask blnIsCtrl = Shift And vbCtrlMask blnIsShift = Shift And vbShiftMask If blnIsCtrl And blnIsShift And blnIsAlt Then MsgBox "Ctrl and Shift Button is Pressed" Exit Sub End If If blnIsAlt And blnIsShift Then MsgBox "Alt and Shift Button is Pressed" End If If blnIsAlt And blnIsCtrl Then MsgBox "Alt and Ctrl Button is Pressed" End If If blnIsCtrl And blnIsShift Then MsgBox "Ctrl and Shift Button is Pressed" End If End Sub
जब हम कोई Shift Key Press नहीं करते हैं, तब Shift Argument में Zero होता है, जो कि False को Represent करता है, लेकिन जब हम किसी Shift Key को Press करते हुए Click करते हैं, तब MouseUp Event के Shift Argument में उस Shift Key का कोई Integer Number होता है। Visual Basic में 0 के अलावा सभी मान True को Represent करते हैं, इसलिए जब हमें दो Shift Keys को एक साथ Check करना होता है, तब एक Boolean Type के Variable में निम्नानुसार मानों को Check करके True या False के रूप में Keys की Information को Hold किया जाता हैः
blnIsAlt = Shift And vbAltMask
blnIsCtrl = Shift And vbCtrlMask
blnIsShift = Shift And vbShiftMask
पहले Statement में हमने Shift व vbAltMask Constant के बीच AND Masking किया है। AND Masking में दोनों ही Identifiers के मान यदि True हों, तो Resultant मान भी True होता है, जिसका मतलब ये है कि Mouse के Button को Press करते समय Alt Button को Press करके रखा गया था। लेकिन यदि Mouse का Button Press करते समय Keyboard के Alt Button को Press करके नहीं रखा गया हो, तो Shift Argument में vbAltMask के मान के स्थान पर False यानी Zero होगा अथवा किसी अन्य Shift Button का Integer मान होगा, जिससे AND Masking के दौरान Shift Argument व vbAltMask दोनों के मानों में Difference होने के कारण False Return होगा और blnIsAlt नाम के Boolean Type के Variable में False Store हो जाएगा।
इसी तरह से blnIsCtrl व blnIsShift नाम के Boolean Type के Variable में भी उसी स्थिति में True Store होता है, जब Keyboard से क्रमच्चः Control Key अथवा Shift Key को Press करके रखते हुए Mouse से Click किया गया हो।
जब हम एक से ज्यादा Shift Keys को Press करके रखते हुए Mouse के Button को Press करते हैं, तब एक से ज्यादा Boolean Variables में AND Masking के दौरान True Store हो जाता है और If Statement में हम फिर से इन Boolean Variables की Values की AND Masking करके ये पता लगा लेते हैं, कि एक से ज्यादा Shift Keys Press की गई थीं अथवा नहीं, क्योंकि यदि Mouse Clicking के समय एक से ज्यादा Shift Keys को Press किया गया हो, तो एक से अधिक Boolean Variables में True होगा और जिन दो Boolean Variables में True Stored होगा, उन्हीं से सम्बंधित If Statement True Return करेगा और Execute होगा।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Visual Basic 6 in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Visual Basic 6 in Hindi | Page: 175 | Format: PDF