Page 1 sur 1
[R] Comment écrire dans plusieurs TABS ( GUICtrlCreateTab )
Posté : jeu. 04 juin 2009 08:17
par OzOne
Bonjour a vous tous
Voila je créé un script pour centraliser de l'information de j'aimerai ajouter du texte dans chaque TAB et je n'arrive pas pourriez vous m'aider s'il vous plaît ?
Voici mon code: ( Dans le fichier .txt j'ai environ 47 lignes donc 47 TABS et j'aimerai écrire des infos diférentes dans chaque "TAB" )
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#Include <File.au3>
#Include <GuiTab.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Informations:", 625, 434, 192, 124)
$Serverslist = GUICtrlCreateList("", 16, 24, 161, 378, BitOR($LBS_SORT,$WS_VSCROLL))
GUICtrlSetFont(-1, 8, 400, 0, "Lucida Console")
$Tab1 = GUICtrlCreateTab(192, 24, 409, 377)
GUICtrlSetFont(-1, 8, 400, 0, "Lucida Console")
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
GUICtrlCreateTabItem("")
$Label1 = GUICtrlCreateLabel("Welcome", 216, 56, 366, 15)
GUICtrlSetFont(-1, 8, 400, 0, "Lucida Console")
GUICtrlSetColor(-1, 0x0066CC)
;GUISetBkColor(0x000333)
;GUICtrlSetBkColor($Serverslist, 0x00ff00)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
; Open Global It List and Show in $Serverslist = GUICtrlCreateList
Dim $Globalitlist[200]
Dim $Serverlistread[200]
$filez = FileOpen("global.txt", 0)
If $filez = -1 Then
MsgBox(0, "Error:", "Unable to open file." & @CRLF & "global.txt")
EndIf
$Globalitlistlines = _FileCountLines("global.txt")
For $i = 1 To $Globalitlistlines
$Globalitlist[$i] = FileReadLine(1)
GUICtrlSetData($Serverslist,$Globalitlist[$i])
;MsgBox(0,"TEST",$Globalitlist[$i])
;GUICtrlSetData($Globalitlist[$i],$i)
Next
FileClose($filez)
Local $sItems, $createtab, $gettabitem
While 1
$Readlist = GUICtrlRead($Serverslist)
If $Readlist <> "" Then
if _GUICtrlTab_GetRowCount($Tab1) > 0 then
$gettabitem = _GUICtrlTab_GetItem($Tab1, 0)
If $gettabitem[1] = $Readlist Then
Else
_GUICtrlTab_DeleteAllItems($Tab1)
$createtab = GUICtrlCreateTabItem($Readlist)
EndIf
Else
$createtab = GUICtrlCreateTabItem($Readlist)
EndIf
EndIf
$Readlist=""
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Merci d'avance.
Re: [..] Comment écrire dans plusieurs TABS ( GUICtrlCreateTab )
Posté : jeu. 04 juin 2009 10:02
par guitarist
Donc ce qui faut c'est une base de donné non?Si oui je te conseille de faire un fichier .ini regarde la doc.Si je me trompe dis-le

Re: [..] Comment écrire dans plusieurs TABS ( GUICtrlCreateTab )
Posté : jeu. 04 juin 2009 10:10
par OzOne
Merci pour ta réponse

effectivement je pourrais mettre les informations dans un fichier ou plusieurs fichiers .ini mais le problème que j'ai surtout pour le moment c'est de mettre des informations par TAB.
Les tabs que je créé se créé automatiquement depuis le fichier .txt.
Et je n'arrive pas a ajouter plusieurs labels par tabs.
Re: [..] Comment écrire dans plusieurs TABS ( GUICtrlCreateTab )
Posté : jeu. 04 juin 2009 10:13
par guitarist
Si j'ai bien compris ce qui te faut c'est de mettre plusieurs label par TAB pour cela je pense que tu peux simplement faire appel aux positionnement des Labels et d'organiser la présentation je ne suis vraiment pas très sur mais si c'est ce que je pense alors..
Ou alors faire des ToolTips regarde sur la doc ça peut être utile
Re: [..] Comment écrire dans plusieurs TABS ( GUICtrlCreateTab )
Posté : jeu. 04 juin 2009 10:22
par jumby
Au moment ou tu construis ta GUI, il faut non seulement créer le TAB, mais aussi créer des TABitem(ce qui constitue les éléments du ctrlcreateTAB et qui on un texte).
Un petit exemple en reprenant la GUI de ton script avec 1 guictrltabitem :
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#Include <File.au3>
#Include <GuiTab.au3>
$Form1 = GUICreate("Informations:", 625, 434, 192, 124)
$Serverslist = GUICtrlCreateList("", 16, 24, 161, 378, BitOR($LBS_SORT,$WS_VSCROLL))
GUICtrlSetFont(-1, 8, 400, 0, "Lucida Console")
$Tab1 = GUICtrlCreateTab(192, 24, 409, 377)
$Tab2 = GuictrlcreatetabItem("Ton texte") ; Ici tu ajoutes le texte de ton choix
GUICtrlSetFont(-1, 8, 400, 0, "Lucida Console")
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
GUICtrlCreateTabItem("")
$Label1 = GUICtrlCreateLabel("Welcome", 216, 56, 366, 15)
GUICtrlSetFont(-1, 8, 400, 0, "Lucida Console")
GUICtrlSetColor(-1, 0x0066CC)
;GUISetBkColor(0x000333)
;GUICtrlSetBkColor($Serverslist, 0x00ff00)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Re: [..] Comment écrire dans plusieurs TABS ( GUICtrlCreateTab )
Posté : jeu. 04 juin 2009 10:26
par guitarist
Je pense quand même que un ToolTip pourrai alléger ta GUI et serait plus esthétique.
Re: [..] Comment écrire dans plusieurs TABS ( GUICtrlCreateTab )
Posté : jeu. 04 juin 2009 10:44
par OzOne
Merci pour vos réponses.
En faite je créé mes " _GUICtrlTab_GetItem " dans ma boucle car ceux si se créé quand je clique sur un nom dans
Code : Tout sélectionner
$Serverslist = GUICtrlCreateList("", 16, 24, 161, 378, BitOR($LBS_SORT,$WS_VSCROLL))
. Donc dès que je clique sur un nom qui est generé depuis mon .txt le script créé un tabitem avec le même nom de la liste, ensuite j'aimerai ajouter du text dans la Tab.
Code : Tout sélectionner
$Readlist = GUICtrlRead($Serverslist)
If $Readlist <> "" Then
if _GUICtrlTab_GetRowCount($Tab1) > 0 then
$gettabitem = _GUICtrlTab_GetItem($Tab1, 0)
If $gettabitem[1] = $Readlist Then
Else
_GUICtrlTab_DeleteAllItems($Tab1)
$createtab = GUICtrlCreateTabItem($Readlist)
EndIf
Else
$createtab = GUICtrlCreateTabItem($Readlist)
EndIf
EndIf
$Readlist=""
Merci d'avance.
Re: [..] Comment écrire dans plusieurs TABS ( GUICtrlCreateTab )
Posté : jeu. 04 juin 2009 11:01
par jumby
Pour rajouter du texte en réutilisant ton script, il te suffit d'ajouter ton texte dans la fonction GuictrlcreateTabItem.
Exemple :
Code : Tout sélectionner
$createtab = GUICtrlCreateTabItem("ton texte"&$Readlist&"ton texte")
Re: [..] Comment écrire dans plusieurs TABS ( GUICtrlCreateTab )
Posté : jeu. 04 juin 2009 11:13
par OzOne
Merci pour ta réponse mais ca écrit toujours dans le titre du tab pour etre plus claire je viens d'uploader une image
Voci
Merci d'avance.
Re: [..] Comment écrire dans plusieurs TABS ( GUICtrlCreateTab )
Posté : jeu. 04 juin 2009 11:31
par jumby
Ok alors pour ajouter du texte il faut comme dans ton script où apparait le "Welcome", passer par la fonction : guictrlcreatelabel
Il n'y a pas plus pratique. Le mieux est de passer par Koda pour placer où l'on souhaite le texte etc.
Re: [..] Comment écrire dans plusieurs TABS ( GUICtrlCreateTab )
Posté : jeu. 04 juin 2009 20:36
par Tlem
@OzOne
La coloration syntaxique du code est réservée aux forums :
Merci.
Re: [..] Comment écrire dans plusieurs TABS ( GUICtrlCreateTab )
Posté : sam. 06 juin 2009 10:25
par SagePourpre
Voilà ... c'est quelque chose comme ça que tu cherchais ?
Ce mini-script utilise ce qu'il trouve dans le fichier ini afin de construire ses onglets et leur contenu.
► Afficher le texte
Code : Tout sélectionner
#include<array.au3>
#include <GuiConstantsEX.au3>
$firsttab = ""
$gui = GUICreate("Exemple",500,200,@DesktopWidth /2,@DesktopHeight /2)
GUISetState(@SW_SHOW)
GUICtrlCreateTab(30,30,400,150)
$ini = "exemple.ini"
$tab = IniReadSectionNames($ini)
For $i = 1 To $tab[0]
$tabnum = GUICtrlCreateTabItem($tab[$i])
$nom = IniRead($ini,$tab[$i],"nom","")
$adresse = IniRead($ini,$tab[$i],"adresse","")
GUICtrlCreateLabel($nom,50,70,100,50)
GUICtrlCreateLabel($adresse,50,100,100,50)
If $i = 1 Then
$firsttab = $tabnum
EndIf
Next
GUICtrlCreateTabItem("")
GUICtrlSetState($firsttab,$GUI_show)
While 1
Sleep(200)
WEnd
Pour que le script fonctionne, tu dois tout d'abord crée le fichier exemple.ini avec les informations ci-dessous
à l'intérieur.
Code : Tout sélectionner
[Test]
Nom=test
adresse = blublu
[Mouette morte]
nom = La mouette morte...
adresse = 111 54
[R] Comment écrire dans plusieurs TABS ( GUICtrlCreateTab )
Posté : lun. 08 juin 2009 14:30
par OzOne
Merci beaucoup SagePourpre c'est ce que je cherchais !!!
Un grand merci et je suis dsl pour le code en couleur.