Jump to content

Timing ToolTip on ContextMenu


Sunaj
 Share

Recommended Posts

Yep, got heavy (for me anyways!) issue with getting the timing right on ToolTips for context menu - I modified the very clever code by eltorro ("ToolTip and Statusbar text change when mouse cursor over a dropdown menu") to run with GUIOnEventMode on and added the context menu to appear when pressing right mouse button in the GUI. So.. If someone can help me get the below code to behave so that:

1) The Tooltips only appear automatically after say 1.5 seconds of letting the mouse pointer hover above a context menu entry

2) The Tooltips disappear automatically when the mouse pointer is moved

It would be, seriously, superb!

:PUpdate 12/30/06: See this post for a complete and functional solution to the thread - only possible due to brilliant code provided by eltorro. :D

Update 12/28/06: Unfortunately, using Auto3Lib for the task proved to be a unworkable (since using tooltips on context menus is not a native windows options) therefore my two main objectives in this thread has NOT been achieved - anyways, have sent message to the original author of the GUIRegisterMsg'r code for hooking the context menu (eltorro) & is hoping for other solutions to show up!

#Include <GuiConstants.au3>
#include <Array.au3>

Opt("GUIOnEventMode", 1)

$USE_TOOLTIP = TRUE
Dim $a_CtrlIDArray[1]
Dim $a_CtrlMsgArray[1]
Dim $ControlID
$Global_I = 0
Dim $__ControlID
$HoverActive = 0
$Temp_Found = 0
$defaultstatus = "Ready"
Dim $status
Dim $Timer

Const $WM_MENUSELECT = 0x011F
GUIRegisterMsg($WM_MENUSELECT,"func_MouseOverMenu")

$Form1 = GUICreate('TITLE', 400, 285)
$filemenu = GUICtrlCreateMenu("&File")
func_AddCtrl($filemenu,"FileMenu")
$file1 = GUICtrlCreateMenuitem("Label 1", $filemenu)
func_AddCtrl($file1,"This is Label1")
$file2 = GUICtrlCreateMenuitem("Label 2", $filemenu)
func_AddCtrl($file2,"Label 2 at Your Service")
$file3 = GUICtrlCreateMenuitem("Label3", $filemenu)
func_AddCtrl($file3,"Pleased to meet you from Label 3")
$file4 = GUICtrlCreateMenuitem("Label 4", $filemenu)
func_AddCtrl($file4,"Well, you get the picture, Label 4")
GUISetOnEvent($GUI_EVENT_CLOSE, "func_Exit")

$contextmenu    = GUICtrlCreateContextMenu ()
$fileitem       = GUICtrlCreateMenuitem ("Open", $contextmenu)
func_AddCtrl($fileitem,"Works in contaxt menuitem 'Open' as well!")
$saveitem       = GUICtrlCreateMenuitem ("Save", $contextmenu)
func_AddCtrl($saveitem,"Works in contaxt menuitem 'Save' as well!")
GUICtrlCreateMenuitem ("", $contextmenu)    ; separator
$infoitem       = GUICtrlCreateMenuitem ("Info", $contextmenu)
func_AddCtrl($infoitem,"Works in contaxt menuitem 'Info' as well!")

GUISetState()

While 1
    Sleep(333)
WEnd

Func func_MouseOverMenu($hWndGUI, $MsgID, $WParam, $LParam)
    Local $id = BitAnd($WParam, 0xFFFF)
    For $x= 0 To UBound($a_CtrlIDArray) -1
        If $id = ($a_CtrlIDArray[$x]) Then
            If $USE_TOOLTIP Then
                ToolTip($a_CtrlMsgArray[$x])
            EndIf
            ExitLoop
        EndIf
    Next
EndFunc

Func func_AddCtrl($ControlID,$ControlMsg)
    _ArrayAdd($a_CtrlIDArray,$ControlID)
    _ArrayAdd($a_CtrlMsgArray,$ControlMsg)
EndFunc

Func func_Exit()
    Exit
EndFunc
Edited by Sunaj
Link to comment
Share on other sites

Hi Googemyster;

yea.. I think you're on to something here but so far it causes the tooltip to shutdown immediately before I can read it. :P

Look at mouseover function at bottom

#Include <GuiConstants.au3>
#include <Array.au3>

Opt("GUIOnEventMode", 1)

$USE_TOOLTIP = TRUE
Dim $a_CtrlIDArray[1]
Dim $a_CtrlMsgArray[1]
Dim $ControlID
$Global_I = 0
Dim $__ControlID
$HoverActive = 0
$Temp_Found = 0
$defaultstatus = "Ready"
Dim $status
Dim $Timer

Const $WM_MENUSELECT = 0x011F
GUIRegisterMsg($WM_MENUSELECT,"func_MouseOverMenu")

$Form1 = GUICreate('TITLE', 400, 285)
$filemenu = GUICtrlCreateMenu("&File")
func_AddCtrl($filemenu,"FileMenu")
$file1 = GUICtrlCreateMenuitem("Label 1", $filemenu)
func_AddCtrl($file1,"This is Label1")
$file2 = GUICtrlCreateMenuitem("Label 2", $filemenu)
func_AddCtrl($file2,"Label 2 at Your Service")
$file3 = GUICtrlCreateMenuitem("Label3", $filemenu)
func_AddCtrl($file3,"Pleased to meet you from Label 3")
$file4 = GUICtrlCreateMenuitem("Label 4", $filemenu)
func_AddCtrl($file4,"Well, you get the picture, Label 4")
GUISetOnEvent($GUI_EVENT_CLOSE, "func_Exit")

$contextmenu    = GUICtrlCreateContextMenu ()
$fileitem       = GUICtrlCreateMenuitem ("Open", $contextmenu)
func_AddCtrl($fileitem,"Works in contaxt menuitem 'Open' as well!")
$saveitem       = GUICtrlCreateMenuitem ("Save", $contextmenu)
func_AddCtrl($saveitem,"Works in contaxt menuitem 'Save' as well!")
GUICtrlCreateMenuitem ("", $contextmenu)    ; separator
$infoitem       = GUICtrlCreateMenuitem ("Info", $contextmenu)
func_AddCtrl($infoitem,"Works in contaxt menuitem 'Info' as well!")

GUISetState()

While 1
    Sleep(333)
WEnd

Func func_MouseOverMenu($hWndGUI, $MsgID, $WParam, $LParam)
    Local $id = BitAnd($WParam, 0xFFFF)
    For $x= 0 To UBound($a_CtrlIDArray) -1
        If $id = ($a_CtrlIDArray[$x]) Then
            If $USE_TOOLTIP Then
                ToolTip($a_CtrlMsgArray[$x])
            EndIf
            ;;Added This, Give er a try
            $pos = MouseGetPos()
                If $pos = $pos Then
                    Sleep(2000)
                Else
                    ToolTip("")
                EndIf
                ;;;;;;;;;;;;;;;;;;;;
            ExitLoop
        EndIf
    Next
EndFunc

Func func_AddCtrl($ControlID,$ControlMsg)
    _ArrayAdd($a_CtrlIDArray,$ControlID)
    _ArrayAdd($a_CtrlMsgArray,$ControlMsg)
EndFunc

Func func_Exit()
    Exit
EndFunc
Link to comment
Share on other sites

I fixed the code to this:

$pos = MouseGetPos()

If $pos = MouseGetPos() Then ; fix here

Sleep(2000)

Else

Sleep(2000) ; add or remove does not do much diff

ToolTip("")

EndIf

ExitLoop

But this is not working - it produces a bad lagging and also does not take into account if the users moves the mouse during the sleep time - I think that sleep will ultimately have to be used in quite a different way for this to work..!

ok add a sleep(2000) in My else statement before the Tooltip("")

Link to comment
Share on other sites

Hmm, I honestly think that this one will require something like A3LToolTip.au3 (see Auto3Lib) to make it work the way I described in the first post of this thread. Tracked down the "_ToolTip_SetDelayTime" function but cannot get it worked into my code..

Anyways, I'll be off to a bit of xmas chilling & return tomorrow hoping to find a smooth solution posted :P ! Merry xmas or whatever u people celebrate these days!

Edited by Sunaj
Link to comment
Share on other sites

Hmm, I honestly think that this one will require something like A3LToolTip.au3 (see Auto3Lib) to make it work the way I described in the first post of this thread. Tracked down the "_ToolTip_SetDelayTime" function but cannot get it worked into my code..

Anyways, I'll be off to a bit of xmas chilling & return tomorrow hoping to find a smooth solution posted :P ! Merry xmas or whatever u people celebrate these days!

You might want to take a look at the note pad demo in Auto3Lib. It shows how to add a tool tip to a control. The nice thing about it is, once you've attached it to the control, you don't have to do anything else (no message capture, delays, etc.). If you get stuck, post a message in the Auto3Lib thread with some code and I'll see what I can do to help you out.
Auto3Lib: A library of over 1200 functions for AutoIt
Link to comment
Share on other sites

Unfortunately, using Auto3Lib for the task proved to be a unworkable (since using tooltips on context menus is not a native windows options) therefore my two main objectives in this thread, to extend the code provided in the first posting with these two features:

1) The Tooltips only appear automatically after say 1.5 seconds of letting the mouse pointer hover above a context menu entry

2) The Tooltips disappear automatically when the mouse pointer is moved

..has NOT been achieved :P - anyways, have sent message to the original author of the GUIRegisterMsg'r code for hooking the context menu (eltorro) & is hoping for other solutions to show up!

Edited by Sunaj
Link to comment
Share on other sites

Ah.. found the this: http://msdn.microsoft.com/msdnmag/issues/03/11/CQA/ a microsoft blog entry describing how you can use the $WM_ENTERIDLE (0x0121) message to find out whether the mouse pointer is currently within a context menu or not. Following code is my attempt at using a GUIRegisterMsg($WM_ENTERIDLE,"func_DetectIdle") together with GUIRegisterMsg($WM_MENUSELECT,"func_MouseOverMenu") to make the code work.. Still not working, but its getting closer - if someone with a good grasp on GUIRegisterMsg could step in I think its nailed! :P --simply put this code should remove the tooltips over the context menu whenever the mouse pointer is moved OFF the context menu!

#include <GuiConstants.au3>
#include <Array.au3>

Opt("GUIOnEventMode", 1)

;$USE_TOOLTIP = True
Global Const $WM_ENTERIDLE = 0x0121
Global Const $WM_MENUSELECT = 0x011F
Global Const $WM_SYSCOMMAND = 0x112 ; works on exit, minimize, questionsmark..etc.
GUIRegisterMsg($WM_MENUSELECT,"func_MouseOverMenu")
GUIRegisterMsg($WM_ENTERIDLE,"func_DetectIdle")
Dim $a_CtrlIDArray[1],$a_CtrlMsgArray[1],$USE_TOOLTIP = TRUE,$WParam,$LParam
$hGui_Main = GUICreate('Demo', 400, 285)
$hContextmenu    = GUICtrlCreateContextMenu () ; do i need to use a Auto3Lib native call here?
$hFileitem       = GUICtrlCreateMenuitem ("Open", $hContextmenu)
func_AddToolTipCtrl($hFileitem,"Works in context menuitem '$hFileitem' as well!")
$hSaveitem       = GUICtrlCreateMenuitem ("Save", $hContextmenu)
func_AddToolTipCtrl($hSaveitem,"Works in context menuitem '$hSaveitem' as well!")
$hInfoitem       = GUICtrlCreateMenuitem ("Info", $hContextmenu)
func_AddToolTipCtrl($hInfoitem,"Works in context menuitem '$hInfoitem' as well!")

GUISetOnEvent($GUI_EVENT_CLOSE, "func_Exit")
GUISetState()

While 1
    Sleep(333)
WEnd

Func func_MouseOverMenu($hWndGUI, $MsgID,$WParam,$LParam)
    For $i = 0 To UBound($a_CtrlIDArray) - 1
        If ($a_CtrlIDArray[$i]) = BitAnd($WParam, 0xFFFF) Then ; see http://tols17.oulu.fi/~vtatila/ohjy/english/ohjy38.html
            ;ConsoleWrite("$WParam: " & $WParam & @CRLF)
            ;ConsoleWrite("$LParam: " & $LParam & @CRLF)
            ;ConsoleWrite("BitAnd($WParam, 0xFFFF): " & BitAnd($WParam, 0xFFFF) & @CRLF)
            ;ConsoleWrite("$a_CtrlIDArray[$i]: " & $a_CtrlIDArray[$i] & @CRLF)
            ToolTip($a_CtrlMsgArray[$i])
            ExitLoop
        EndIf
    Next
EndFunc

Func func_DetectIdle($hWndGUI, $MsgID,$WParam,$LParam) ; (not working) should be able to detect when the mouse moves off the context menu area, see http://msdn.microsoft.com/msdnmag/issues/03/11/CQA/
    $i_temp = $LParam
    ConsoleWrite(@CRLF & $WParam & " & " & $LParam & " & " & $hWndGUI  & " & " & $MsgID)
    If $LParam = $i_temp Then
    ; do nothing
    Else
        ToolTip("")
    EndIf
EndFunc

Func func_AddToolTipCtrl($ControlID,$ControlMsg)
    _ArrayAdd($a_CtrlIDArray,$ControlID)
    _ArrayAdd($a_CtrlMsgArray,$ControlMsg)
EndFunc

Func func_Exit()
    Exit
EndFunc
Link to comment
Share on other sites

This will do what you want.

;Menu With Timed Tooltips
;Stephen Podhajecki [eltorro] gehossafats@netmdc.com

#Include <GuiConstants.au3>
#include <Array.au3>
Global $USE_TOOLTIP = TRUE
Global $DEBUG = True

Local $aCtrlArray[1], $aCtrlMsgArray[1], $ControlID, $Global_I = 0, $__ControlID, $HoverActive = 0, $Temp_Found = 0, $szTemp_Array[2]

Global $defaultstatus = "Ready"
Global $status

Global $MenuItemId
Global $EVENT
Global $TIMERENABLED         = False    ; Flag set when SetTimer api is called.
Global $TIP_TIMER                            ; Timestamp holder for tooltip visiblilty
Global Const $TIP_TIMER_ID = 999        ; Timer id for SetTimer api
Global Const $TIPSHOW         = 1        ; Event
Global Const $TIPVISIBLE     = 2        ; Event
Global Const $TIPCLOSE         = 128        ; Event
Global Const $TIP_TTL         = 3000     ; how long to show tooltip
Global Const $TIP_DELAY     = 750        ; how long to wait to show tooltip
Global Const $MSG_INTERVAL = 100        ; Interval Windows will use to send

;Window Message Hooks.
Global Const $WM_ENTERMENULOOP    = 0x0211
Global Const $WM_EXITMENULOOP     = 0x0212
Global Const $WM_MENUSELECT         = 0x011F
Global Const $WM_ENTERIDLE         = 0x0121
Global Const $WM_TIMER                 = 0x0113

GUIRegisterMsg ($WM_ENTERMENULOOP, "MenuTipHandler")
GUIRegisterMsg ($WM_MENUSELECT, "MenuTipHandler")
GUIRegisterMsg ($WM_EXITMENULOOP, "MenuTipHandler")
GuiRegisterMsg ($WM_TIMER, "TimerCallBack")

$Form1 = GUICreate('Menu ToolTips', 400, 285)
$filemenu = GUICtrlCreateMenu("&File")
_AddCtrl($filemenu, "FileMenu")
$file1 = GUICtrlCreateMenu("Label 1", $filemenu)
$file2 = GUICtrlCreateMenuitem("Label 2", $filemenu)
_AddCtrl($file2, "Label 2 at Your Service")
$file3 = GUICtrlCreateMenuitem("Label3", $filemenu)
_AddCtrl($file3, "Pleased to meet you from Label 3")
$file4 = GUICtrlCreateMenuitem("Label 4", $filemenu)
_AddCtrl($file4, "Well, you get the picture, Label 4")
$statuslabel = GUICtrlCreateLabel($defaultstatus, 0, 250, 300, 16, BitOR($SS_SIMPLE, $SS_SUNKEN))
$statuslabel2 = GUICtrlCreateLabel($defaultstatus, 300, 250, 100, 16, BitOR($SS_SIMPLE, $SS_SUNKEN))
$file11 = GUICtrlCreateMenuitem("Label 11", $file1)
_AddCtrl($file11, "This is Label11 subitem of Label1")
GUISetState()
While 1
    If Main() = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
Exit

Func Main()
    $msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE
            Return $msg
        Case $msg = $file1
            MsgBox(266288, "Menu Clicked", "Label1 clicked.")
        Case $EVENT = $TIPSHOW
            If $TIP_TIMER Then
                If ((TimerDiff($TIP_TIMER) >= $TIP_DELAY) and ($MenuItemId > 0)) Then ShowMenuTip()
            EndIf
        Case $EVENT = $TIPCLOSE
            VoidMenuTip()
            $EVENT = 0
        Case $EVENT = $TIPVISIBLE
            If TimerDiff($TIP_TIMER) >= $TIP_TTL + $TIP_DELAY Then $EVENT = $TIPCLOSE
        EndSelect
        Sleep(50)
EndFunc   ;==>Main

Func _AddCtrl($ControlID, $ControlMsg)
    _ArrayAdd($aCtrlArray, $ControlID)
    _ArrayAdd($aCtrlMsgArray, $ControlMsg)
EndFunc   ;==>_AddCtrl

Func ShowMenuTip()
    DebugMsg("<<ShowMenuTip>>", 1)
    If $TIP_TIMER > 0 Then
        If $MenuItemId > 0 Then
            For $x = 0 To UBound($aCtrlArray) - 1
                If $MenuItemId = ($aCtrlArray[$x]) Then
                    GUICtrlSetData($statuslabel, $aCtrlMsgArray[$x])
                    ToolTip($aCtrlMsgArray[$x])
                    $EVENT = $TIPVISIBLE
                    ExitLoop
                EndIf
            Next
        EndIf
    EndIf
EndFunc   ;==>ShowMenuTip

Func VoidMenuTip()
    ToolTip("")
    GUICtrlSetData($statuslabel, $defaultstatus)
    $TIP_TIMER = 0
EndFunc   ;==>VoidMenuTip

Func StartTimer($hWndGUI, $TimerId, $Interval)
    If $TIMERENABLED = True Then StopTimer($hWndGUI,$TimerId)
    $retval = DllCall("User32.dll", "int", "SetTimer", "hwnd", $hWndGUI, "int", $TimerId, "int", $Interval, "int", 0)
    $TIMERENABLED = True
EndFunc   ;==>StartTimer

Func StopTimer($hWndGUI, $TimerId)
    $retval = DllCall("User32.dll", "int", "KillTimer", "hwnd", $hWndGUI, "int", $TimerId)
    $TIMERENABLED = False
EndFunc   ;==>StopTimer

Func TimerCallBack($hWndGUI, $MsgID, $WParam, $LParam)
    Local $TimerId = BitAND($WParam, 0xFFFF)
    If $TimerId = $TIP_TIMER_ID Then Main()
    Return $GUI_RUNDEFMSG
EndFunc   ;==>TimerCallBack

Func MenuTipHandler($hWndGUI, $MsgID, $WParam, $LParam)
    Local $id = BitAND($WParam, 0xFFFF)
    Select
        Case $MsgID = $WM_ENTERMENULOOP
            DebugMsg("MenuEnterLoop", 1)
            StartTimer($Form1, $TIP_TIMER_ID, $MSG_INTERVAL)
        Case $MsgID = $WM_MENUSELECT
            DebugMsg("MenuSelect", 1)
            If $USE_TOOLTIP Then
                If Not ($MenuItemId = $id) Then
                    $MenuItemId = $id
                        ToolTip("") ;make tip disappear on move away.
                    If $MenuItemId > 0 Then
                        $TIP_TIMER = TimerInit()
                        $EVENT = $TIPSHOW
                    EndIf
                EndIf
            EndIf
        Case $MsgID = $WM_EXITMENULOOP
            DebugMsg("MenuExitLoop", 1)
            StopTimer($Form1, $TIP_TIMER_ID)
            $EVENT = $TIPCLOSE
    EndSelect
    DebugMsg( "hWndGui= " & $hWndGUI & @LF & "MsgId= " & $MsgID & @LF & "WParam= " & $WParam & @LF & "$LParam= " & $LParam, 1)
    DebugMsg("ID= " & $id, 1)
    Return $GUI_RUNDEFMSG
EndFunc   ;==>MenuTipHandler

Func DebugMsg($sMsg, $CR = 0)
    If $DEBUG Then
        If $CR Then $sMsg = $sMsg & @LF
        ConsoleWrite($sMsg)
    EndIf
EndFunc   ;==>DebugMsg
Link to comment
Share on other sites

Absolutely awesome! :P

This will do what you want.

;Menu With Timed Tooltips
;Stephen Podhajecki [eltorro] gehossafats@netmdc.com
oÝ÷ Ûú®¢×§^jw±µéÝyÛޮȨíæëYbj{¡×²¢êh²×¶­²êi¢»l²Ö§uªÝmèZ¾)à¶%¶*l¢w(×±¶g§ºÈ§¶Å§-±©Á¬²Ø^æjYë¢Çw%¹×r^jj¡×¢iÛ¢·±iË©àzÇ(h­yÛh¶¡×ºÚ"µÍÓY[HÚ][YYÛÛÂÔÝ[ÙZXÚÚHÙ[Ü×HÙZÜÜØY]Ð]YËÛÛBÂÐÛÛYÈÕRSÛ][[ÙHHÔÝ[ZBÐÚ[ÙÎÂØJH[[ÝYYYÜÛY

HHÛ[ÛÝÕRBØH[[ÝYXYÙÚ[È[Ú[KÙHÜYÚ[[H[ÜÈÜXYÙÚ[ÂØÊHÚ[ÙYÙÈ[[[ÈHÝÈÔHØYÙHY[ÙHÝXÙYÙ
HÛÜÜÈÚ]ÛÛ^Y[ÈÛÈÝÈHXÚÈYÈH[[Y[YXØ]ÙBÈÛÛ^Y[ÈÈÕ[ÝÈÜYÚÝ[ÈÚ[[ÝÙHÈ[ÝY]Ø^H[ÈHØ[YHØ^HÈÜX[Y[ËÛÜÜÈ[[YÜHØ^HÜÝHÙÈY[ÈÝËÂÚ[ÛYH    ÑÝZPÛÛÝ[Ë]LÉÝÂÚ[ÛYH  Ð^K]LÉÝÂÜ
    ][ÝÑÕRSÛ][[ÙI][ÝËJBÛØ[ ÌÍÕTÑWÕÓÓTHQBØØ[   ÌÍØPÝ^VÌWK ÌÍØPÝÙÐ^VÌWK ÌÍÐÛÛÛQ   ÌÍÑÛØ[ÒHH ÌÍ××ÐÛÛÛQ   ÌÍÒÝXÝ]HH  ÌÍÕ[ÑÝ[H   ÌÍÜÞ[Ð^VÌBÛØ[   ÌÍÙY][Ý]ÈH ][ÝÔXYI][ÝÂÛØ[    ÌÍÜÝ]ÂÛØ[    ÌÍÓY[R][RYÛØ[  ÌÍÒQPÛÝ[HÈÚ[ÌÈÈXXÚYÛÛÈÛÜÙYÛØ[    ÌÍÑUSÛØ[   ÌÍÕSQTSPQH[ÙHÈYÈÙ]Ú[Ù][YHÈØ[YÛØ[   ÌÍÕTÕSQTÈ[YÝ[ÛÜÛÛÚX[BÛØ[ÛÛÝ ÌÍÕTÕSQTÒQHNNHÈ[YYÜÙ][YBÛØ[ÛÛÝ ÌÍÕTÒÕÈHHÈ][ÛØ[ÛÛÝ  ÌÍÕTTÒPHHÈ][ÛØ[ÛÛÝ    ÌÍÕTÕHÌÌÈÈÝÈÛÈÈÚÝÈÛÛÛØ[ÛÛÝ   ÌÍÕTÑSVHHÌÌÈÈÝÈÛÈÈØZ]ÈÚÝÈÛÛÛØ[ÛÛÝ  ÌÍÓTÑ×ÒSTSHÌÈÈ[[Ú[ÝÜÈÚ[ÙHÈÙ[ÕÚ[ÝÈYÜØYÙHÛÚÜËÛØ[ÛÛÝ  ÌÍÕÓWÑSTQSSÓÔHLBÛØ[ÛÛÝ  ÌÍÕÓWÑVUQSSÓÔHLÛØ[ÛÛÝ   ÌÍÕÓWÓQSTÑSPÕHLQÛØ[ÛÛÝ  ÌÍÕÓWÕSQTHLLÂÛØ[ÛÛÝ  ÌÍÕÓWÑSTQHHLBÕRTYÚÝÙÈ
    ÌÍÕÓWÑSTQSSÓÔ    ][ÝÓY[U[][ÝÊBÕRTYÚÝÙÈ
    ÌÍÕÓWÓQSTÑSPÕ    ][ÝÓY[U[][ÝÊBÕRTYÚÝÙÈ
    ÌÍÕÓWÑVUQSSÓÔ    ][ÝÓY[U[][ÝÊBÕRTYÚÝÙÈ
    ÌÍÕÓWÑSTQH ][ÝÓY[U[][ÝÊHÈÈXZÙHÛÛ^Y[YÈØXÚ[[Ý[ÈÚ[ÙY[HÚ]Ý]ÛÜÚ[È]ÝZTYÚÝÙÈ
    ÌÍÕÓWÕSQT  ][ÝÕ[YØ[XÚÉ][ÝÊBÌÍÑÜLHHÕRPÜX]J ÌÎNÓY[HÛÛÉÌÎNË

JBÌÍÙ[[Y[HHÕRPÝÜX]SY[J    ][ÝÉ[Ñ[I][ÝÊBÐYÝ
    ÌÍÙ[[Y[K ][ÝÑ[SY[I][ÝÊBÌÍÙ[LHHÕRPÝÜX]SY[J  ][ÝÓX[I][ÝË ÌÍÙ[[Y[JBÌÍÙ[LHÕRPÝÜX]SY[Z][J  ][ÝÓX[][ÝË  ÌÍÙ[[Y[JBÐYÝ
    ÌÍÙ[L    ][ÝÓX[][ÝÙXÙI][ÝÊBÌÍÙ[LÈHÕRPÝÜX]SY[Z][J   ][ÝÓX[É][ÝË    ÌÍÙ[[Y[JBÐYÝ
    ÌÍÙ[LË  ][ÝÔXÙYÈYY][ÝHÛHX[É][ÝÊBÌÍÙ[MHÕRPÝÜX]SY[Z][J ][ÝÓX[
    ][ÝË  ÌÍÙ[[Y[JBÐYÝ
    ÌÍÙ[M    ][ÝÕÙ[[ÝHÙ]HXÝKX[
    ][ÝÊBÌÍÜÝ]ÛX[HÕRPÝÜX]SX[
    ÌÍÙY][Ý]ËLÌM]Ô   ÌÍÔÔ×ÔÒSTK   ÌÍÔÔ×ÔÕSÑSJBÌÍÜÝ]ÛX[HÕRPÝÜX]SX[
    ÌÍÙY][Ý]ËÌLLM]Ô  ÌÍÔÔ×ÔÒSTK   ÌÍÔÔ×ÔÕSÑSJBÌÍÙ[LLHHÕRPÝÜX]SY[Z][J    ][ÝÓX[LI][ÝË    ÌÍÙ[LJBÐYÝ
    ÌÍÙ[LLK  ][ÝÕÈÈX[LHÝX][HÙX[I][ÝÊBÌÍÚÛÛ^Y[HHÕRPÝÜX]PÛÛ^Y[H

BÌÍÚ[Z][HHÕRPÝÜX]SY[Z][H
    ][ÝÓÜ[][ÝË ÌÍÚÛÛ^Y[JBÐYÝ
    ÌÍÚ[Z][K ][ÝÕÛÜÜÈ[ÛÛ^Y[Z][H  ÌÎNÉÌÍÚ[Z][IÌÎNÈÈÙ[  ÌÌÎÉ][ÝÊBÌÍÚØ]Z][HHÕRPÝÜX]SY[Z][H
    ][ÝÔØ]I][ÝË    ÌÍÚÛÛ^Y[JBÐYÝ
    ÌÍÚØ]Z][K   ][ÝÕÛÜÜÈ[ÛÛ^Y[Z][H  ÌÎNÉÌÍÚØ]Z][IÌÎNÈÈÙ[    ÌÌÎÉ][ÝÊBÌÍÚ[Ú][HHÕRPÝÜX]SY[Z][H
    ][ÝÒ[É][ÝË ÌÍÚÛÛ^Y[JBÐYÝ
    ÌÍÚ[Ú][K    ][ÝÕÛÜÜÈ[ÛÛ^Y[Z][H  ÌÎNÉÌÍÚ[Ú][IÌÎNÈÈÙ[ ÌÌÎÉ][ÝÊBÕRTÙ]Û][
    ÌÍÑÕRWÑUSÐÓÔÑK ][Ý×Ñ^]  ][ÝÊBÕRTÙ]Ý]J
BÚ[HBÛY
ÌÌÊBÑ[[È][ÛÜ

BÙ[XÝØÙH    ÌÍÑUSH   ÌÍÕTÒÕÂY  ÌÍÕTÕSQT[Y

[YY ÌÍÕTÕSQTH   ÝÏH   ÌÍÕTÑSVJH[
    ÌÍÓY[R][RY   ÝÈ
JH[ÚÝÓY[U

B[YØÙH    ÌÍÑUSH   ÌÍÕTTÒPBY[YY    ÌÍÕTÕSQTH   ÝÏH   ÌÍÕTÕ
È  ÌÍÕTÑSVH[ÚYY[U

B[Ù[XÝ[[Â[ÈÐYÝ
    ÌÍÐÛÛÛQ   ÌÍÐÛÛÛÙÊBÐ^PY
    ÌÍØPÝ^K ÌÍÐÛÛÛQ
BÐ^PY
    ÌÍØPÝÙÐ^K ÌÍÐÛÛÛÙÊB[[Â[ÈÚÝÓY[U

BY  ÌÍÕTÕSQT    ÝÈ[Ü ÌÍÞHÈPÝ[
    ÌÍØPÝ^JHHBY ÌÍÓY[R][RYH
    ÌÍØPÝ^VÉÌÍÞJH[ÕRPÝÙ]]J   ÌÍÜÝ]ÛX[   ÌÍØPÝÙÐ^VÉÌÍÞJBÛÛ
    ÌÍØPÝÙÐ^VÉÌÍÞJB   ÌÍÑUSH   ÌÍÕTTÒPB    ÌÍÒQPÛÝ[H^]ÛÜ[Y^[Y[[ÈÏOIÝÔÚÝÓY[U[ÈÚYY[U

BÛÛ
    ][ÝÉ][ÝÊB   ÌÍÒQPÛÝ[HÕRPÝÙ]]J   ÌÍÜÝ]ÛX[   ÌÍÙY][Ý]ÊB ÌÍÕTÕSQTH[[ÈÏOIÝÕÚYY[U[ÈÝ[Y  ÌÍÚÛÕRK    ÌÍÕ[YY   ÌÍÒ[[
BY  ÌÍÕSQTSPQHYH[ÝÜ[Y  ÌÍÚÛÕRK    ÌÍÕ[YY
B   ÌÍÜ][HØ[
    ][ÝÕÙÌ  ][ÝË  ][ÝÚ[ ][ÝË  ][ÝÔÙ][Y][ÝË   ][ÝÚÛ    ][ÝË  ÌÍÚÛÕRK    ][ÝÚ[ ][ÝË  ÌÍÕ[YY   ][ÝÚ[ ][ÝË  ÌÍÒ[[    ][ÝÚ[ ][ÝË
B   ÌÍÕSQTSPQHYB[[ÈÏOIÝÔÝ[Y[ÈÝÜ[Y    ÌÍÚÛÕRK    ÌÍÕ[YY
B   ÌÍÜ][HØ[
    ][ÝÕÙÌ  ][ÝË  ][ÝÚ[ ][ÝË  ][ÝÒÚ[[Y][ÝË   ][ÝÚÛ    ][ÝË  ÌÍÚÛÕRK    ][ÝÚ[ ][ÝË  ÌÍÕ[YY
B   ÌÍÕSQTSPQH[ÙB[[ÈÏOIÝÔÝÜ[Y[È[YØ[XÚÊ    ÌÍÚÛÕRK    ÌÍÓÙÒQ ÌÍÕÔ[K  ÌÍÓ[JBØØ[  ÌÍÕ[YYH]S
    ÌÍÕÔ[KBY    ÌÍÕ[YYH  ÌÍÕTÕSQTÒQ[][ÛÜ

B]  ÌÍÑÕRWÔSQTÑÂ[[ÈÏOIÝÕ[YØ[XÚÂ[ÈY[U[    ÌÍÚÛÕRK    ÌÍÓÙÒQ ÌÍÕÔ[K  ÌÍÓ[JB   ÌÍÒQPÛÝ[
ÏHBY   ÌÍÒQPÛÝ[   ÝÏHÈ[ÛXZÙHÛÛ^ØXÛ[ÝH]Ø^BÛÛ
    ][ÝÉ][ÝÊB[YØØ[    ÌÍÚYH]S
    ÌÍÕÔ[KBÙ[XÝØÙH  ÌÍÓÙÒQH    ÌÍÕÓWÑSTQSSÓÔÝ[Y    ÌÍÑÜLK  ÌÍÕTÕSQTÒQ ÌÍÓTÑ×ÒSTS
BØÙH  ÌÍÓÙÒQH    ÌÍÕÓWÓQSTÑSPÕY   ÌÍÕTÑWÕÓÓT[YÝ
    ÌÍÓY[R][RYH  ÌÍÚY
HÜ
    ÌÍÓY[R][RYH  ÌÍÚY
H[  ÌÍÓY[R][RYH  ÌÍÚYÛÛ
    ][ÝÉ][ÝÊHÛXZÙHØXÛ[ÝH]Ø^B  ÌÍÒQPÛÝ[HY ÌÍÓY[R][RY   ÝÈ[   ÌÍÕTÕSQTH[Y[]

B   ÌÍÑUSH   ÌÍÕTÒÕÂ[Y[Y[YØÙH    ÌÍÓÙÒQH    ÌÍÕÓWÑVUQSSÓÔÝÜ[Y  ÌÍÑÜLK  ÌÍÕTÕSQTÒQ
BÚYY[U

B[Ù[XÝ]   ÌÍÑÕRWÔSQTÑÂ[[ÈÏOIÝÓY[U[[ÈÑ^]

B^][[Â
Edited by Sunaj
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...