Jump to content
Sign in to follow this  
Shao

GUICtrlCreateEdit in GUICtrlCreateTab

Recommended Posts

Shao

Hello,

I try to display an edit in a tab's page but it looks to be refreshing for ever. Can you tell me what's wrong with my script, please ?

Thank you.

CODE

Func main_gui()

$return = "continue"

$main_gui = GUICreate($Soft_Name, $DesktopWidth, $DesktopHeight, 0, 0, BitOR($WS_CLIPSIBLINGS, $WS_OVERLAPPEDWINDOW, $WS_MAXIMIZE), $WS_EX_CLIENTEDGE)

; *************

; BARRE DE MENU

; *************

$mi_options = GUICtrlCreateMenu($m_Options)

$mi_statistiques = GUICtrlCreateMenu($m_Statistics, $mi_options)

$mi_stat_ouvrir = GUICtrlCreateMenuItem($m_Ouvrir, $mi_statistiques)

$mi_recherches = GUICtrlCreateMenu($m_Recherches, $mi_options)

$mi_rech_ouvrir = GUICtrlCreateMenuItem($m_Ouvrir, $mi_recherches)

$mi_rech_enregistrer = GUICtrlCreateMenuItem($m_Enregistrer, $mi_recherches)

GUICtrlCreateMenuItem("", $mi_options)

$mi_exercises = GUICtrlCreateMenuItem($m_Exercises, $mi_options)

GUICtrlCreateMenuItem("", $mi_options)

$mi_close = GUICtrlCreateMenuItem($m_Close, $mi_options)

$mi_parametres = GUICtrlCreateMenu($m_Parametres)

$mi_langue = GUICtrlCreateMenu($m_Langue, $mi_parametres)

$mi_francais = GUICtrlCreateMenuItem($m_Francais, $mi_langue)

$mi_english = GUICtrlCreateMenuItem($m_English, $mi_langue)

GUICtrlCreateMenuItem("", $mi_parametres)

$mi_administration = GUICtrlCreateMenu($m_Administration, $mi_parametres)

$mi_preferences = GUICtrlCreateMenuitem($m_Preferences, $mi_administration, 1)

; *******

; BOUTONS

; *******

; définition des variables de positionnement des boutons et contrôles

$ButtonWidth = 960

$LeftButton = ($DesktopWidth-$ButtonWidth)/2

; Exercices

$b_exercises = GUICtrlCreateButton($m_Exercices, $LeftButton, 30, 120, 25, 0)

GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")

; Dictionnaire

$g_translation = GUICtrlCreateGroup($m_Traduction, $LeftButton+120+100, 25, 740, 50)

; From

$l_de = GUICtrlCreateLabel($m_De, $LeftButton+220+25, 45, 25, 20, $SS_RIGHT)

GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")

$c_lang1 = GUICtrlCreateCombo($ini_Languages[1], $LeftButton+270+15, 45, 97, 25)

GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")

GUICtrlSetData(-1, $ini_Languages[2], $ini_Languages[1])

; To

$l_en = GUICtrlCreateLabel($m_En, $LeftButton+382+30, 45, 25, 20, $SS_RIGHT)

GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")

$c_lang2 = GUICtrlCreateCombo($ini_Languages[1], $LeftButton+437+15, 45, 97, 25)

GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")

GUICtrlSetData(-1, $ini_Languages[2], $ini_Languages[2])

; Mots à rechercher

$l_word = GUICtrlCreateLabel($m_Mots, $LeftButton+549+50, 45, 55, 20, $SS_RIGHT)

GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")

$i_word = GUICtrlCreateInput("", $LeftButton+654+10, 45, 200, 21, BitOR($ES_AUTOHSCROLL, $ES_MULTILINE))

; Rechercher

$b_search = GUICtrlCreateButton($m_Chercher, $LeftButton+864+10, 45, 55, 20, 0)

; donner le focus à la barre de recherche

ControlFocus($main_gui, "", $i_word)

; *************

; PAGE CENTRALE

; *************

; définition des variables de positionnement et de dimensions de l'éditeur

; l'éditeur et l'onglet se positionnent dans la fenêtre en s'ajustant à la résolution d'écran

$EditWidth = $DesktopWidth *0.90

$Left = ($DesktopWidth-$EditWidth) /2

$EditHeight = ($DesktopHeight -85)*0.85

$Top = 85 +( ($DesktopHeight -85)-$EditHeight ) /2

$TabTop = $Top-20

$Editor = GUICtrlCreateTab ($Left+2, $TabTop, $EditWidth, $EditHeight+40)

$EditorLexique = GUICtrlCreateTabItem(" " & $m_Lexique)

$g_page = GUICtrlCreateEdit("", $Left, $Top, $EditWidth, $EditHeight, BitOR($ES_AUTOVSCROLL, $WS_VSCROLL, $ES_READONLY))

GUICtrlSetBkColor(-1, 0xa09bb8)

GUISetState(@SW_SHOW)

While 1

$mainMsg = GUIGetMsg()

Switch $mainMsg

; ***********************

; CAS DE LA BARRE DE MENU

; ***********************

Case $mi_close

$play = 0

ExitLoop

Case $mi_preferences

settings_gui()

ContinueLoop

Case $mi_francais

IniWrite($ini_Settings, "langues", "défaut", "Français")

$play = 1

ExitLoop

Case $mi_english

IniWrite($ini_Settings, "langues", "défaut", "English")

$play = 1

ExitLoop

Case $mi_exercises

Edit_Cleaner()

Exercices("continue")

ContinueLoop

Case $mi_stat_ouvrir

Local $c_Number, $TotalReponses, $BonnesReponses, $TR_Taux, $BR_Taux, $epreuves_lignes, $erreurs_lignes

stat_read($c_Number, $TotalReponses, $BonnesReponses, $TR_Taux, $BR_Taux, $epreuves_lignes, $erreurs_lignes)

StatDisplay($c_Number, $TotalReponses, $BonnesReponses, $TR_Taux, $BR_Taux, 1, $epreuves_lignes, $erreurs_lignes)

ContinueLoop

Case $mi_rech_ouvrir

rech_read()

ContinueLoop

Case $mi_rech_enregistrer

rech_record()

ContinueLoop

; ************************

; CAS DES CONTROLES DU GUI

; ************************

Case $GUI_EVENT_CLOSE

$play = 0

ExitLoop

Case $b_exercises

Edit_Cleaner()

Exercices("continue")

ContinueLoop

Case $b_search

Entree()

ContinueLoop

Case $b_close_edit

Edit_Cleaner()

ContinueLoop

EndSwitch

WEnd

GUIDelete($main_gui)

EndFunc

----------------

Now playing: Orchestral Manoeuvres in the Dark - Was It Something I Said

via FoxyTunes

Share this post


Link to post
Share on other sites
Zedna

Example from AutoIt helpfile for GUICtrlCreateTabItem()

#include <GUIConstantsEx.au3>

Opt('MustDeclareVars', 1)

Example()

Func Example()
    Local $tab, $tab0, $tab0OK, $tab0input
    Local $tab1, $tab1combo, $tab1OK
    Local $tab2, $tab2OK, $msg
        GUICreate("My GUI Tab", 250, 150); will create a dialog box that when displayed is centered

    GUISetBkColor(0x00E0FFFF)
    GUISetFont(9, 300)

    $tab = GUICtrlCreateTab(10, 10, 200, 100)

    $tab0 = GUICtrlCreateTabItem("tab0")
    GUICtrlCreateLabel("label0", 30, 80, 50, 20)
    $tab0OK = GUICtrlCreateButton("OK0", 20, 50, 50, 20)
    $tab0input = GUICtrlCreateInput("default", 80, 50, 70, 20)

    $tab1 = GUICtrlCreateTabItem("tab----1")
    GUICtrlCreateLabel("label1", 30, 80, 50, 20)
    $tab1combo = GUICtrlCreateCombo("", 20, 50, 60, 120)
    GUICtrlSetData(-1, "Trids|CyberSlug|Larry|Jon|Tylo", "Jon"); default Jon
    $tab1OK = GUICtrlCreateButton("OK1", 80, 50, 50, 20)

    $tab2 = GUICtrlCreateTabItem("tab2")
    GUICtrlSetState(-1, $GUI_SHOW); will be display first
    GUICtrlCreateLabel("label2", 30, 80, 50, 20)
    $tab2OK = GUICtrlCreateButton("OK2", 140, 50, 50)

    GUICtrlCreateTabItem(""); end tabitem definition

    GUICtrlCreateLabel("Click on tab and see the title", 20, 130, 250, 20)

    GUISetState()

    ; Run the GUI until the dialog is closed
    While 1
        $msg = GUIGetMsg()

        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
        If $msg = $tab Then
            ; display the clicked tab
            WinSetTitle("My GUI Tab", "", "My GUI Tab" & GUICtrlRead($tab))
        EndIf
    WEnd
EndFunc   ;==>Example

It looks like you missed

GUICtrlCreateTabItem(""); end tabitem definition

Share this post


Link to post
Share on other sites
Shao

It looks like you missed

GUICtrlCreateTabItem(""); end tabitem definition
hello

Excuseme but I didn't forget to use GUICtrlCreateTabItem. I based the creation of the tab on the helpfile of AutoIt, so I don't really understand what's wrong.

CODE

$Editor = GUICtrlCreateTab ($Left+2, $TabTop, $EditWidth, $EditHeight+40)

$EditorLexique = GUICtrlCreateTabItem(" " & $m_Lexique)

$g_page = GUICtrlCreateEdit("", $Left, $Top, $EditWidth, $EditHeight, BitOR($ES_AUTOVSCROLL, $WS_VSCROLL, $ES_READONLY))

GUICtrlSetBkColor(-1, 0xa09bb8)

----------------

Now playing: Various Artists - Doin' It - Nathan's Theme

via FoxyTunes

----------------

Now playing: Various Artists - Doin' It - Nathan's Theme

via FoxyTunes

Share this post


Link to post
Share on other sites
Zedna

You are wrong. Read it carefully!

CODE

$Editor = GUICtrlCreateTab ($Left+2, $TabTop, $EditWidth, $EditHeight+40)

$EditorLexique = GUICtrlCreateTabItem(" " & $m_Lexique)

$g_page = GUICtrlCreateEdit("", $Left, $Top, $EditWidth, $EditHeight, BitOR($ES_AUTOVSCROLL, $WS_VSCROLL, $ES_READONLY))

GUICtrlSetBkColor(-1, 0xa09bb8)

GUICtrlCreateTabItem("")

GUISetState(@SW_SHOW)

...

Share this post


Link to post
Share on other sites
Shao

You are wrong. Read it carefully!

CODE

$Editor = GUICtrlCreateTab ($Left+2, $TabTop, $EditWidth, $EditHeight+40)

$EditorLexique = GUICtrlCreateTabItem(" " & $m_Lexique)

$g_page = GUICtrlCreateEdit("", $Left, $Top, $EditWidth, $EditHeight, BitOR($ES_AUTOVSCROLL, $WS_VSCROLL, $ES_READONLY))

GUICtrlSetBkColor(-1, 0xa09bb8)

GUICtrlCreateTabItem("")

GUISetState(@SW_SHOW)

...

I added this line

CODE
GUICtrlCreateTabItem(""); end tabitem definition

but it doesn't work ; still the same problem.

----------------

Edited by Shao

Share this post


Link to post
Share on other sites
Shao

ok, problem identified and fixed.

I had forgotten to delete

Case $b_close_edit
Edit_Cleaner()
ContinueLoop

... in Switch $mainMsg ... EndSwitch.

This created a constant loop.

----------------

Now playing: Bob Sinclar - Love Generation

via FoxyTunes

Share this post


Link to post
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
Sign in to follow this  

×