Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 12/30/2014 in all areas

  1. The problem in overlapping controls. #include <StaticConstants.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> Opt('MustDeclareVars', 1) f_toolbar() Func f_toolbar() Local $id_button_1_a, $id_button_2_a, $id_button_3_a Local $id_button_1_b, $id_button_2_b, $id_button_3_b Local $id_button_close Local $h_toolbar_gui, $msg_pop, $id_output_lbl ; -- Declare and set mouse over variables Local $last_tool_b_id = 0 ; ID of last button/icon visited Local $a_cursor_b_info ; GUIGetCursorInfo() array Local $win_w = 400 ; GUI width Local $win_h = 400 ; GUI height Local $icon_file = @SystemDir & "\shell32.dll" ; -- Create the GUI ------------------------------------------------------------------------------------------------------- $h_toolbar_gui = GUICreate("Toolbar hover - Test ...", $win_w, $win_h) ; -- A frame for the toolbar GUICtrlCreateLabel("", 3, 3, $win_w-3, 44, $SS_ETCHEDFRAME ) GUICtrlSetState(-1, $GUI_DISABLE) ; -- The Toolbar ; -- 1. Toolbar button ----------------------------------------------------------------------------------------------------- $id_button_1_a = GUICtrlCreateButton("1", 4, 4, 40, 40, $BS_ICON) ; Create BUTTON GUICtrlSetImage(-1, $icon_file, -71, 1) ; Add ICON to button GUICtrlSetState(-1, $GUI_HIDE) ; Hide ICON BUTTON again $id_button_1_b = GUICtrlCreateIcon($icon_file, -71, 4, 4, 40, 40, $BS_CENTER) ; Create ICON to display ; -- 2. Toolbar button ----------------------------------------------------------------------------------------------------- $id_button_2_a = GUICtrlCreateButton("2", 44, 4, 40, 40, $BS_ICON) ; Create BUTTON GUICtrlSetImage(-1, $icon_file, -5, 1) ; Add ICON to button GUICtrlSetState(-1, $GUI_HIDE) ; Hide ICON BUTTON again $id_button_2_b = GUICtrlCreateIcon($icon_file, -5, 44, 4, 40, 40, $BS_CENTER) ; Create ICON to display ; -- 3. Toolbar button ----------------------------------------------------------------------------------------------------- $id_button_3_a = GUICtrlCreateButton("3", 84, 4, 40, 40, $BS_ICON) GUICtrlSetImage(-1, $icon_file, -28, 1) ; Add ICON to button GUICtrlSetState(-1, $GUI_HIDE) ; Hide ICON BUTTON again $id_button_3_b = GUICtrlCreateIcon($icon_file, -28, 84, 4, 40, 40, $BS_CENTER) ; Create ICON to display ; -- Lable CTRL for feedback $id_output_lbl = GUICtrlCreateLabel("Move mouse over toolbar ...", 4, 100, $win_w-8, 16) ; Lable for feedback GUICtrlSetBkColor($id_output_lbl, 0xFFFFFF) ; -- The Close button $id_button_close = GUICtrlCreateButton("Close", $win_w/2-40, $win_h-40, 80, 24, $BS_DEFPUSHBUTTON) GUISetState(@SW_SHOW) While 1 $msg_pop = GUIGetMsg() Select Case $msg_pop = $GUI_EVENT_CLOSE ExitLoop Case $msg_pop = $id_button_close ExitLoop Case $msg_pop = $id_button_1_a Or $msg_pop = $id_button_1_b GUICtrlSetState($id_button_1_a, $GUI_SHOW) MsgBox(32, "DEBUG", "Button 1 pressed ...", 0, $h_toolbar_gui) Case $msg_pop = $id_button_2_a Or $msg_pop = $id_button_2_b GUICtrlSetState($id_button_2_a, $GUI_SHOW) MsgBox(32, "DEBUG", "Button 2 pressed ...", 0, $h_toolbar_gui) Case $msg_pop = $id_button_3_a Or $msg_pop = $id_button_3_b GUICtrlSetState($id_button_3_a, $GUI_SHOW) MsgBox(32, "DEBUG", "Button 3 pressed ...", 0, $h_toolbar_gui) Case Else $a_cursor_b_info = GUIGetCursorInfo($h_toolbar_gui) ; - $aArray[4] = ID of the control that the mouse cursor is hovering over (or 0 if none) Select ; -- Button 1 - Cursor ------------------------------------------------------------------------------------- Case $a_cursor_b_info[4] = $id_button_1_b And $last_tool_b_id = 0 ; MOUSE OVER GUICtrlSetState($id_button_1_a, $GUI_SHOW) GUICtrlSetState($id_button_1_b, $GUI_HIDE) GUICtrlSetData($id_output_lbl, "Mouse OVER - Ctrl ID:" & @TAB & $a_cursor_b_info[4]) GUICtrlSetBkColor($id_output_lbl, 0xFFFF00) _Swap($id_button_1_a, $id_button_1_b) $last_tool_b_id = $id_button_1_b ; -- DEBUG ----------------------------------------------------------------- ConsoleWrite("> ... " & "$last_tool_b_id - Ctrl ID:" & @TAB & $last_tool_b_id & @CRLF) ; -- DEBUG ----------------------------------------------------------------- Case $a_cursor_b_info[4] <> $id_button_1_b And $last_tool_b_id = $id_button_1_b ; NO MOUSE OVER GUICtrlSetState($id_button_1_a, $GUI_SHOW) GUICtrlSetState($id_button_1_b, $GUI_HIDE) $a_cursor_b_info[4] = 0 GUICtrlSetData($id_output_lbl, "Mouse AWAY - Ctrl ID:" & @TAB & $a_cursor_b_info[4]) GUICtrlSetBkColor($id_output_lbl, 0x99CCFF) _Swap($id_button_1_a, $id_button_1_b) $last_tool_b_id = 0 ; -- DEBUG ----------------------------------------------------------------- ConsoleWrite("> ... " & "$last_tool_b_id - Ctrl ID:" & @TAB & $last_tool_b_id & @CRLF) ; -- DEBUG ----------------------------------------------------------------- ; -- Button 2 - Cursor ------------------------------------------------------------------------------------- Case $a_cursor_b_info[4] = $id_button_2_b And $last_tool_b_id = 0 ; MOUSE OVER GUICtrlSetState($id_button_2_a, $GUI_SHOW) GUICtrlSetState($id_button_2_b, $GUI_HIDE) GUICtrlSetData($id_output_lbl, "Mouse OVER - Ctrl ID:" & @TAB & $a_cursor_b_info[4]) GUICtrlSetBkColor($id_output_lbl, 0xFFFF00) _Swap($id_button_2_a, $id_button_2_b) $last_tool_b_id = $id_button_2_b ; -- DEBUG ----------------------------------------------------------------- ConsoleWrite("> ... " & "$last_tool_b_id - Ctrl ID:" & @TAB & $last_tool_b_id & @CRLF) ; -- DEBUG ----------------------------------------------------------------- Case $a_cursor_b_info[4] <> $id_button_2_b And $last_tool_b_id = $id_button_2_b ; NO MOUSE OVER GUICtrlSetState($id_button_2_a, $GUI_SHOW) GUICtrlSetState($id_button_2_b, $GUI_HIDE) $a_cursor_b_info[4] = 0 GUICtrlSetData($id_output_lbl, "Mouse AWAY - Ctrl ID:" & @TAB & $a_cursor_b_info[4]) GUICtrlSetBkColor($id_output_lbl, 0x99CCFF) _Swap($id_button_2_a, $id_button_2_b) $last_tool_b_id = 0 ; -- DEBUG ----------------------------------------------------------------- ConsoleWrite("> ... " & "$last_tool_b_id - Ctrl ID:" & @TAB & $last_tool_b_id & @CRLF) ; -- DEBUG ----------------------------------------------------------------- ; -- Button 3 - Cursor ------------------------------------------------------------------------------------- Case $a_cursor_b_info[4] = $id_button_3_b And $last_tool_b_id = 0 ; MOUSE OVER GUICtrlSetState($id_button_3_a, $GUI_SHOW) GUICtrlSetState($id_button_3_b, $GUI_HIDE) GUICtrlSetData($id_output_lbl, "Mouse OVER - Ctrl ID:" & @TAB & $a_cursor_b_info[4]) GUICtrlSetBkColor($id_output_lbl, 0xFFFF00) _Swap($id_button_3_a, $id_button_3_b) $last_tool_b_id = $id_button_3_b ; -- DEBUG ----------------------------------------------------------------- ConsoleWrite("> ... " & "$last_tool_b_id - Ctrl ID:" & @TAB & $last_tool_b_id & @CRLF) ; -- DEBUG ----------------------------------------------------------------- Case $a_cursor_b_info[4] <> $id_button_3_b And $last_tool_b_id = $id_button_3_b ; NO MOUSE OVER GUICtrlSetState($id_button_3_a, $GUI_SHOW) GUICtrlSetState($id_button_3_b, $GUI_HIDE) $a_cursor_b_info[4] = 0 GUICtrlSetData($id_output_lbl, "Mouse AWAY - Ctrl ID:" & @TAB & $a_cursor_b_info[4]) GUICtrlSetBkColor($id_output_lbl, 0x99CCFF) _Swap($id_button_3_a, $id_button_3_b) $last_tool_b_id = 0 ; -- DEBUG ----------------------------------------------------------------- ConsoleWrite("> ... " & "$last_tool_b_id - Ctrl ID:" & @TAB & $last_tool_b_id & @CRLF) ; -- DEBUG ----------------------------------------------------------------- EndSelect EndSelect WEnd GUIDelete() EndFunc ;==> f_toolbar() Func _Swap(ByRef $iNum1, ByRef $iNum2) Local $Temp = $iNum1 $iNum1 = $iNum2 $iNum2 = $Temp EndFunc ;==>_Swap Here is a complete example of using Toolbar control. #Include <GUIConstantsEx.au3> #Include <GUIImageList.au3> #Include <GUIToolbar.au3> #Include <StaticConstants.au3> #Include <ToolbarConstants.au3> #Include <WindowsConstants.au3> #Include <WinAPIEx.au3> $hForm = GUICreate('MyGUI', 332, 332) $hTool = GUICreate('', 332, 64, 0, 0, $WS_CHILD, 0, $hForm) $Dummy = GUICtrlCreateDummy() $hToolbar = _GUICtrlToolbar_Create($hTool, BitOR($BTNS_BUTTON, $BTNS_SHOWTEXT, $TBSTYLE_FLAT, $TBSTYLE_TOOLTIPS), $TBSTYLE_EX_DOUBLEBUFFER) $hImageList = _GUIImageList_Create(32, 32, 5, 1, 5) Dim $Icon[5] = [19, 205, 298, 300, 304] For $i = 0 To 4 $hIcon = _WinAPI_ShellExtractIcon(@SystemDir & '\shell32.dll', $Icon[$i], 32, 32) _GUIImageList_ReplaceIcon($hImageList, -1, $hIcon) _WinAPI_DestroyIcon($hIcon) Next _GUICtrlToolbar_SetImageList($hToolbar, $hImageList) _GUICtrlToolbar_AddString($hToolbar, 'Button 1') _GUICtrlToolbar_AddString($hToolbar, 'Button 2') _GUICtrlToolbar_AddString($hToolbar, 'Button 3') _GUICtrlToolbar_AddString($hToolbar, 'Button 4') _GUICtrlToolbar_AddString($hToolbar, 'Button 5') _GUICtrlToolbar_AddButton($hToolbar, 10000, 0, 0) _GUICtrlToolbar_AddButton($hToolbar, 10001, 1, 1) _GUICtrlToolbar_AddButtonSep($hToolbar, 5) _GUICtrlToolbar_AddButton($hToolbar, 10002, 2, 2) _GUICtrlToolbar_AddButton($hToolbar, 10003, 3, 3) _GUICtrlToolbar_AddButton($hToolbar, 10004, 4, 4) _GUICtrlToolbar_SetButtonSize($hToolbar, 64, 64) _GUICtrlToolbar_SetMetrics($hToolbar, 0, 0, 1, 0) _GUICtrlToolbar_SetIndent($hToolbar, 1) _SendMessage($hToolbar, $TB_AUTOSIZE) GUISwitch($hForm) ; Main GUI controls... GUICtrlCreateLabel('', 0, 64, 335, 2, $SS_ETCHEDHORZ) GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND') GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY') GUISetState(@SW_SHOWNOACTIVATE, $hTool) GUISetState(@SW_SHOW, $hForm) While 1 Switch GUIGetMsg() Case 0 ContinueLoop Case $GUI_EVENT_CLOSE ExitLoop Case $Dummy $ID = GUICtrlRead($Dummy) Switch $ID Case 10000 ; Button 1 MsgBox(64, 'Toolbar', 'Button 1 has been pressed!', 0, $hForm) Case 10001 ; Button 2 MsgBox(64, 'Toolbar', 'Button 2 has been pressed!', 0, $hForm) Case 10002 ; Button 3 MsgBox(64, 'Toolbar', 'Button 3 has been pressed!', 0, $hForm) Case 10003 ; Button 4 MsgBox(64, 'Toolbar', 'Button 4 has been pressed!', 0, $hForm) Case 10004 ; Button 5 MsgBox(64, 'Toolbar', 'Button 5 has been pressed!', 0, $hForm) Case Else EndSwitch EndSwitch WEnd Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam) Local $ID = BitAND($wParam, 0xFFFF) Switch $hWnd Case $hTool Switch $ID Case 10000 To 10004 ; Button 1 - Button 5 GUICtrlSendToDummy($Dummy, $ID) Case Else EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) Local $tNMIA = DllStructCreate($tagNMITEMACTIVATE, $lParam) Local $hTarget = DllStructGetData($tNMIA, 'hWndFrom') Local $ID = DllStructGetData($tNMIA, 'Code') Switch $hWnd Case $hTool Switch $hTarget Case $hToolbar Switch $ID Case $TBN_GETINFOTIPW ;~ Local $tNMTBGIT = DllStructCreate($tagNMTBGETINFOTIP, $lParam) Local $tNMTBGIT = DllStructCreate($tagNMHDR & ';ptr Text;int TextMax;int Item;lparam lParam;', $lParam) Local $Item = DllStructGetData($tNMTBGIT, 'Item') Local $Text = '' Switch $Item Case 10000 ; Button 1 $Text = 'Tooltip 1' Case 10001 ; Button 2 $Text = 'Tooltip 2' Case 10002 ; Button 3 $Text = 'Tooltip 3' Case 10003 ; Button 4 $Text = 'Tooltip 4' Case 10004 ; Button 5 $Text = 'Tooltip 5' Case Else EndSwitch If $Text Then DllStructSetData(DllStructCreate('wchar[' & DllStructGetData($tNMTBGIT, 'TextMax') & ']', DllStructGetData($tNMTBGIT, 'Text')), 1, $Text) EndIf EndSwitch EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY In addition, you can use my Skin UDF. #Include <GDIPlus.au3> #Include <GUIConstantsEx.au3> #Include <Skin.au3> _GDIPlus_Startup() $hForm = GUICreate('MyGUI', 401, 160) GUISetBkColor(0xF0F0F0) $Button1 = _Skin_AddButton(12, 119, 29, 29, _LoadBitmap('down_normal.bmp'), _LoadBitmap('down_over.bmp'), _LoadBitmap('down_push.bmp')) $Button2 = _Skin_AddButton(46, 119, 29, 29, _LoadBitmap('up_normal.bmp'), _LoadBitmap('up_over.bmp'), _LoadBitmap('up_push.bmp')) $Button3 = _Skin_AddButton(87, 124, 29, 29, _LoadBitmap('down_normal_small.bmp'), _LoadBitmap('down_over_small.bmp'), _LoadBitmap('down_push_small.bmp')) $Button4 = _Skin_AddButton(111, 124, 29, 29, _LoadBitmap('up_normal_small.bmp'), _LoadBitmap('up_over_small.bmp'), _LoadBitmap('up_push_small.bmp')) $Button5 = _Skin_AddButton(323, 14, 64, 64, _LoadBitmap('cd_normal.bmp'), _LoadBitmap('cd_over_push.bmp'), _LoadBitmap('cd_over_push.bmp')) GUISetState() While 1 _Skin_Helper($hForm) $Msg = GUIGetMsg() Switch $Msg Case $GUI_EVENT_CLOSE ExitLoop Case $Button1 ConsoleWrite('#1' & @CR) Case $Button2 ConsoleWrite('#2' & @CR) Case $Button3 ConsoleWrite('#3' & @CR) Case $Button4 ConsoleWrite('#4' & @CR) Case $Button5 ConsoleWrite('#5' & @CR) EndSwitch WEnd GUIDelete() _Skin_Destroy() Func _LoadBitmap($sPath) Local $hBitmap, $hImage _GDIPlus_Startup() $hImage = _GDIPlus_ImageLoadFromFile($sPath) $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage) _GDIPlus_ImageDispose($hImage) _GDIPlus_Shutdown() Return $hBitmap EndFunc ;==>_LoadBitmap
    2 points
  2. Yes, and now I'm going to spend the next couple hours trying to figure it out...
    1 point
  3. @mikell - That pattern fails on... $name = "gsh: kae,as" $string = "gsh: kae,as|du2: ad,43|gsh: kae,asx|gshy: 3d3,adf|gsh: kae,as" $separator = "|" $final = StringRegExpReplace($string, _ '(\Q' & $name & $separator & '\E?)|(\Q' & $separator & '\E?\Q' & $name & '\E)', "") MsgBox(0, "", $final) @gcue - You're requirements are a long way from where we started, please define the complete strings that you are working with...
    1 point
  4. I have a comment on the _IEJS_CallObjExecScript() down by the Eval call. If both failed, it is the only place where a recursion would happen. Why would they both fail? Your browser is not allowing javascript injection or the browsers javascript interpreter is broken. Why?: 1. You haven't enabled javascript. 2. There was an update on Dec 18 (if you check the IE11 posts around the internet and on this forum), you need to uninstall that. https://www.google.com/webhp?#q=KB3025390
    1 point
  5. $xlCellTypeLastCell is an object model constant. You really should read up on the whole Excel model, to get a better understanding of how to work with it. http://msdn.microsoft.com/en-us/library/office/ff194068(v=office.15).aspx http://msdn.microsoft.com/en-us/library/office/ff196157(v=office.15).aspx
    1 point
  6. MikahS

    Sending plain text mail

    First topic in the search, link
    1 point
  7. For completeness, this was also asked on SO, here.
    1 point
  8. Are you using Internet Explorer 11? The last update for IE11 on Dec 18, KB3025390 , broke alot of internal functions all across the coding communities. The solution has been to uninstall the update until microsoft fixes it.
    1 point
×
×
  • Create New...