[R] Remplacement d'un label par une combo apres refresh

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
hardfloor
Niveau 4
Niveau 4
Messages : 69
Enregistré le : mer. 31 juil. 2013 09:37
Status : Hors ligne

[R] Remplacement d'un label par une combo apres refresh

#1

Message par hardfloor »

Bonjour à tous,
Voilà j'ai un petit souci tout con, mais qui me prend la tête!
Je voudrais remplacer un label texte par une combobox apres un rafraichissement via une boucle.

Je vous ai recrée la situation

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>

$read1 = iniread("test.ini", "section", "mod", "")

#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("Form1", 616, 439, 192, 124)
$Tab1 = GUICtrlCreateTab(0, 0, 145, 25)
$TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
$Button1 = GUICtrlCreateButton("modifier l'ini", 192, 208, 129, 33)
$Button2 = GUICtrlCreateButton("ecrire l'ini", 20, 208, 129, 33)
$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
$Label1 = GUICtrlCreateLabel("Test combo", 48, 72, 60, 17)
If $read1 = "inactif" Then
;~ $Combo58 = ""
$Label2 = GUICtrlCreateLabel($read1, 120, 72, 40, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
Else
$Combo58 = GUICtrlCreateCombo("--", 120, 72, 41, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData($Combo58, "1|2|3|4|5")
EndIf
GUICtrlSetState(-1,$GUI_SHOW)
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            iniwrite("test.ini", "section", "mod", "inactif4")
            for $i = 1 To 2
                iniread("test.ini", "section", "mod", "")
            Next
            $Combo58 = GUICtrlCreateCombo("--", 120, 80, 41, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
             GUICtrlSetData($Combo58, "1|2|3|4|5")
        Case $Button2
             iniwrite("test.ini", "section", "mod", "inactif")
    EndSwitch
WEnd

 
Donc le bouton "ecrire" ecrit l'ini avec le resultat "inactif" ce que donne un label "resultat" sur la gui donc tout va bien!
L'autre bouton "modifier l'ini" écrit "resultat4", donc étant donné que c'est différent du resultat escompté , j'aimerais que ma combobox remplace le texte "inactif"! apres la lecture de la boucle!
J'arrive à faire apparaitre ma combo mais je la recrée une 2 ieme fois et donc elle s'ecrit par dessus les onglets. je voudrais simplement réutiliser la premiere...........
si vous avez pas compris, je réexplique!
:mrgreen: :mrgreen:
Modifié en dernier par hardfloor le lun. 23 sept. 2013 15:24, modifié 1 fois.
Avatar du membre
FireFox
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 217
Enregistré le : dim. 14 oct. 2012 01:30
Localisation : Picardie/Île-de-France, France
Status : Hors ligne

Re: [..] Remplacement d'un label par une combo apres refresh

#2

Message par FireFox »

Bonjour,
Où veux-tu remplacer le label? Parce ton système de tab est un peu bizarre.

A mon avis tu auras besoin de la fonction GUISwitch pour créer ton Combo sur la bonne tab OU peut être GUICtrlSetState (avec $GUI_HIDE/SHOW) ou GUICtrlDelete.

Cdlt, FireFox.
Modifié en dernier par FireFox le lun. 23 sept. 2013 14:38, modifié 1 fois.
hardfloor
Niveau 4
Niveau 4
Messages : 69
Enregistré le : mer. 31 juil. 2013 09:37
Status : Hors ligne

Re: [..] Remplacement d'un label par une combo apres refresh

#3

Message par hardfloor »

Oui les 2 tab sont necessaires!

Car dans mon code, le bouton "modifier" se trouve dans le premier onglet et doi modifier une listview Et le texte de 3 onglets.
Donc j'arrive bien a rafraichir les données des tableaux(qui se trouvent dans 3 onglets) avec un seul bouton, mais pas changer le texte^^

Dans mon exemple c'est le texte "inactif" qui doit se changer en combobox apres le rafraichissement.
Avatar du membre
FireFox
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 217
Enregistré le : dim. 14 oct. 2012 01:30
Localisation : Picardie/Île-de-France, France
Status : Hors ligne

Re: [..] Remplacement d'un label par une combo apres refresh

#4

Message par FireFox »

Pour moi c'est pas assez clair, il me faudrait plus de détails: quel contrôle modifier (par sa variable si plusieurs contrôles du même type, remplacer quel contrôle par lequel, ...

Cdlt, FireFox.
hardfloor
Niveau 4
Niveau 4
Messages : 69
Enregistré le : mer. 31 juil. 2013 09:37
Status : Hors ligne

Re: [..] Remplacement d'un label par une combo apres refresh

#5

Message par hardfloor »

Bon du coup je ne sais pas comment etre plus clair :(

Je veux juste que mon texte " inactif" qui est ecrit en rouge (qui se trouve dans le 2ième onglet) devienne une combobox lorsque l'on a préssé le bouton "modifier" du premier onglet.
Avatar du membre
FireFox
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 217
Enregistré le : dim. 14 oct. 2012 01:30
Localisation : Picardie/Île-de-France, France
Status : Hors ligne

Re: [..] Remplacement d'un label par une combo apres refresh

#6

Message par FireFox »

Ca l'est déjà plus.

Je ne sais pas si tu veux vraiment re-créer un combobox ou le modifier.

J'ai modifié un peu le code de la GUI car selon le cas c'était soit le label soit la combobox qui était créé.
► Afficher le texte
Cdlt, FireFox.
hardfloor
Niveau 4
Niveau 4
Messages : 69
Enregistré le : mer. 31 juil. 2013 09:37
Status : Hors ligne

Re: [..] Remplacement d'un label par une combo apres refresh

#7

Message par hardfloor »

Bon alors le code est plus clair, la combo apparait bien, mais le hic c'est que l'on en recrée une! Donc elle s'affiche aussi dans l'onglet 1. il ne faut pas qu'elle apparaisse dans le premier onglet. :wink:
Avatar du membre
FireFox
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 217
Enregistré le : dim. 14 oct. 2012 01:30
Localisation : Picardie/Île-de-France, France
Status : Hors ligne

Re: [..] Remplacement d'un label par une combo apres refresh

#8

Message par FireFox »

D'où ma précédente interrogation, veux-tu la déplacer ou la cacher et en créer une autre?

Cdlt, FireFox.
hardfloor
Niveau 4
Niveau 4
Messages : 69
Enregistré le : mer. 31 juil. 2013 09:37
Status : Hors ligne

Re: [..] Remplacement d'un label par une combo apres refresh

#9

Message par hardfloor »

Je veux simplement que

SI le resultat du ini est "inactif" ==> le texte inactif rouge apparait et pas le combo

Si le resultat du ini est diférrent de "inactif" ==> je veux que mon combobox apparait à la place du texte

lorque l'on presse "modifier" le "inactif" rouge doit disparaitre et laisser place au combo
Mais le combo ne doit pas etre ailleurs que dans l'onglet 2!

Apres si tu dois en recrée une pour les besoin du code, peu importe, du moment que le combo apparait uniquement dans l'onglet 2.
Avatar du membre
FireFox
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 217
Enregistré le : dim. 14 oct. 2012 01:30
Localisation : Picardie/Île-de-France, France
Status : Hors ligne

Re: [..] Remplacement d'un label par une combo apres refresh

#10

Message par FireFox »

Si j'ai bien compris ça doit donner:
► Afficher le texte
Cdlt, FireFox.
hardfloor
Niveau 4
Niveau 4
Messages : 69
Enregistré le : mer. 31 juil. 2013 09:37
Status : Hors ligne

Re: [..] Remplacement d'un label par une combo apres refresh

#11

Message par hardfloor »

Voilà^^ :mrgreen: :mrgreen:

Un grand merci à toi et à ta patience!! :wink:
Bon va falloir que je m'habitue à manipuler GUICtrlSetState() ca reduit pas mal les lignes de codes^^

Merci bien, sujet résolu :mrgreen:
Répondre