Jump to content

Gui - tabs duplicate image in all


Rfsvieira
 Share

Recommended Posts

Hello, i have read the wiki for tabs, and search in some sites for code ideas, and get what i have now

1st i have the broblem that wen i choice one iten the image appears in all tabs

i resolved that with the -----GUISwitch($GUI, $TabID)----

Now i have a problema that wen i choice the iten the image doesn t appear only if i change tab i go back to the tab

Any idea?

#include <GuiConstantsEx.au3>
#include <GuiTab.au3>


Global $dir =("FULL\")

$GUI = GUICreate("Test Script", 500, 500)

$hTab = GUICtrlCreateTab(5, 10, 500, 450)

$Tab1 = GUICtrlCreateTabItem("Tab1")

$Tab2 = GUICtrlCreateTabItem("Tab2")

$Pic1 = GUICtrlCreatePic("", 15, 202, 25, 25); pic coordenades and size

$Pic2 = GUICtrlCreatePic("", 15, 234, 25, 25)
$Pic3 = GUICtrlCreatePic("", 15, 264, 25, 25)

$Combo3 = GUICtrlCreateCombo("Corpo", 47, 268, 65, 25); combobox place

GUICtrlSetFont(-1, 8, 400, 0, "Arial")
jcorpo($combo3)                                         ; getdata funcion

$Combo2 = GUICtrlCreateCombo("Corpo", 47, 238, 65, 25)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
jcorpo($combo2)
$Combo1 = GUICtrlCreateCombo("Corpo", 47, 206, 65, 25)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
jcorpo($combo1)

$Tab3 = GUICtrlCreateTabItem("Tab3")

;GUICtrlSetState($Tab2, $GUI_SHOW); tessting code



GUICtrlCreateTabItem("")

$Switch_Button = GUICtrlCreateButton("Switch Next", 20, 470, 80, 20)

GUISetState(@SW_SHOW, $GUI)

While 1
    Switch GUIGetMsg()

        Case $combo1
            GUISwitch($GUI, $Tab2)
            img1($combo1, $Pic1, 15, 202)
            GUISwitch($GUI)
        case $combo2
            img1($combo2, $pic2, 15, 234)
        Case $combo3
            img1($combo3, $Pic3, 15, 264)

        Case $GUI_EVENT_CLOSE
            Exit
        Case $Switch_Button

            $iCurrent_TabIndex = _GUICtrlTab_GetCurSel($hTab)
            $iNext_TabIndex = $iCurrent_TabIndex



            Switch $iCurrent_TabIndex

                Case 0, 1
                    $iNext_TabIndex += 1
                Case 2
                    $iNext_TabIndex = 0
            EndSwitch



            _GUICtrlTab_SetCurSel($hTab, $iNext_TabIndex)
    EndSwitch

WEnd





Func img1($var, $imp, $x1, $y1)
;
$Read = GUICtrlRead($var)
If $Read = "A" Then

    $imp = GUICtrlCreatePic($dir & "A.bmp", $x1, $y1, 25, 25)
EndIf

If $Read = "B" Then

    $imp = GUICtrlCreatePic($dir & "B.bmp", $x1, $y1, 25, 25)
EndIf

If $Read = "C" Then

    $imp = GUICtrlCreatePic($dir & "C.bmp", $x1, $y1, 25, 25)
EndIf

If $Read = "" Then

    $imp = GUICtrlCreatePic($dir & "", $x1, $y1, 25, 25)

;Else

;   $imp = GUICtrlCreatePic($dir & "null.bmp", $x1, $y1, 25, 25)
EndIf

EndFunc

Func jcorpo($varcomb)
GUICtrlSetData($varcomb, "A|B|C")
EndFunc



func _exit()
    Exit
EndFunc

 

Link to comment
Share on other sites

  • Moderators

Rfsvieira,

No need for any GUISwitch lines if you do it the right way - this works fine when I test it with my images:

#include <GuiConstantsEx.au3>
#include <GuiTab.au3>
#include <GuiComboBox.au3>

Global $sDir = "FULL\"

$hGUI = GUICreate("Test Script", 500, 500)

$cTab = GUICtrlCreateTab(5, 10, 500, 450)

$cTab_0 = GUICtrlCreateTabItem("Tab 0") ; Tabs start at 0 so I always do the same

$cTab_1 = GUICtrlCreateTabItem("Tab 1")

$cPic_1 = GUICtrlCreatePic("", 15, 202, 25, 25); pic coordenades and size
$cPic_2 = GUICtrlCreatePic("", 15, 234, 25, 25)
$cPic_3 = GUICtrlCreatePic("", 15, 264, 25, 25)

$cCombo_3 = GUICtrlCreateCombo("", 47, 268, 65, 25)
_GUICtrlComboBox_SetCueBanner($cCombo_3, "Corpo") ; Use this to get initial text that does not appear in the dropdown list
GUICtrlSetFont($cCombo_3, 8, 400, 0, "Arial")
_jcorpo($cCombo_3)
$cCombo_2 = GUICtrlCreateCombo("", 47, 238, 65, 25)
_GUICtrlComboBox_SetCueBanner($cCombo_2, "Corpo")
GUICtrlSetFont($cCombo_2, 8, 400, 0, "Arial")
_jcorpo($cCombo_2)
$cCombo_1 = GUICtrlCreateCombo("", 47, 206, 65, 25)
_GUICtrlComboBox_SetCueBanner($cCombo_1, "Corpo")
GUICtrlSetFont($cCombo_1, 8, 400, 0, "Arial")
_jcorpo($cCombo_1)

$cTab_2 = GUICtrlCreateTabItem("Tab 2")

GUICtrlCreateTabItem("")

$cSwitch = GUICtrlCreateButton("Switch Next", 20, 470, 80, 20)

GUISetState(@SW_SHOW, $hGUI)

While 1
    Switch GUIGetMsg()

        Case $GUI_EVENT_CLOSE
            Exit
        Case $cCombo_1
            _Image($cCombo_1, $cPic_1)
        Case $cCombo_2
            _Image($cCombo_2, $cPic_2)
        Case $cCombo_3
            _Image($cCombo_3, $cPic_3)
        Case $cSwitch

            ; Much more elegant way to move to the next tab
            _GUICtrlTab_SetCurSel($cTab, Mod(_GUICtrlTab_GetCurSel($cTab) + 1, 3))
    EndSwitch



WEnd



Func _Image($cCombo, $cPic)

    Switch GUICtrlRead($cCombo)
        Case "A"
            ; Do not recreate the image - just set a new image in the picture control 
            GUICtrlSetImage($cPic, $sDir & "A.bmp")
        Case "B"
            GUICtrlSetImage($cPic, $sDir & "B.bmp")
        Case "C"
            GUICtrlSetImage($cPic, $sDir & "C.bmp")
    EndSwitch



EndFunc   ;==>_Image

Func _jcorpo($cCombo)
    GUICtrlSetData($cCombo, "A|B|C")
EndFunc   ;==>_jcorpo



Func _exit()
    Exit
EndFunc   ;==>_exit

Please ask if you have any questions.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

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

×
×
  • Create New...