Ich habe mal eine Frage zu dem leeren von GUI's, bzw. GUI-Elementen.
Gibt es eine Funktion die mir die gesamte GUI leert oder muss ich immer wieder mit GUIDelete() einzelne Elemente meiner GUI löschen ???
Ich habe mal eine Frage zu dem leeren von GUI's, bzw. GUI-Elementen.
Gibt es eine Funktion die mir die gesamte GUI leert oder muss ich immer wieder mit GUIDelete() einzelne Elemente meiner GUI löschen ???
Mit GuiCtrlSetData einfach alle Guis mit "" füllen?
Mein Problem ist nur das ich nicht alle meiner GUI-Elemente benutze.
Um es etwas genauer zu erklären :
- Habe eine GUI
- In dieser GUI ein Menü mit zwei Punkten die man auswählen kann
- Je nachdem welchen Menüpunkt ich auswähle, wird eine andere Funktion
aufgerufen
- In diesen Funktion habe ich unterschiedliche Labels usw.
Habe das Problem, wenn ich den ersten Menüpunkt aufrufe wird etwas in der GUI angezeigt und wenn ich danach auf den zweiten Menüpunkt klicke wird der neue Inhalt einfach nur drübergeschrieben.
Gibt es nicht sowas wie z.B. : GUIClear() oder so ????
ZitatOriginal von DjPro2k7
Mein Problem ist nur das ich nicht alle meiner GUI-Elemente benutze.Um es etwas genauer zu erklären :
- Habe eine GUI
- In dieser GUI ein Menü mit zwei Punkten die man auswählen kann
- Je nachdem welchen Menüpunkt ich auswähle, wird eine andere Funktion
aufgerufen
- In diesen Funktion habe ich unterschiedliche Labels usw.Habe das Problem, wenn ich den ersten Menüpunkt aufrufe wird etwas in der GUI angezeigt und wenn ich danach auf den zweiten Menüpunkt klicke wird der neue Inhalt einfach nur drübergeschrieben.
dann änderst du nur die werte der benutzten?!
Hi!
Meinst du GUICTRLSetState? Damit kannst du Controls verstecken und wieder anzeigen.
peethebee
Nein benutze nicht einfach nur andere Werte.
Habe so zu sagen zwei verschiedene Aussehen pro funktion.
Hier ist mein Skript vielleicht verstehst du dann mein Problem besser
#include "SQLite.au3"
#include <GUIConstants.au3>
GUICreate("Bundesliga", 500, 500)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$tabmenue = GUICtrlCreateMenu ("&Tabelle")
$tabitem = GUICtrlCreateMenuitem ("anzeigen",$tabmenue)
$tagmenue = GUICtrlCreateMenu("&Spieltage")
$tagitem = GUICtrlCreateMenuItem("anzeigen",$tagmenue)
GUISetState(@SW_SHOW)
$z = 30
$s = 60
$platz = 1
While 1
$msg = GUIGetMsg()
Select
Case $msg = $tabitem
tabelle()
Case $msg = $tagitem
spieltag()
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
WEnd
Func spieltag()
GUICtrlCreateCombo ("Spieltag 1", 30,30)
GUICtrlSetData(-1,"Spieltag 2|Spieltag 3","Spieltag 1")
$b1 = GUICtrlCreateButton("zeigen",250,30)
If $msg = $b1 Then
Msgbox(0,"Info","Only a test...")
EndIf
$combo = GUICtrlRead (-1)
GUICtrlCreateLabel($combo,60,60)
EndFunc
Func tabelle()
GUICtrlCreateLabel("Platz", 30, 30)
GUICtrlCreateLabel("Club", 100, 30)
GUICtrlCreateLabel("Spiele", 170, 30)
GUICtrlCreateLabel("Siege", 220, 30)
GUICtrlCreateLabel("Unendschieden", 260, 30)
GUICtrlCreateLabel("Niederlagen", 345, 30)
GUICtrlCreateLabel("Tore", 410, 30)
GUICtrlCreateLabel("Punkte", 440, 30)
Local $hQuery,$aRow
_SQLite_Startup ("sqlite3.dll"); lade der dll
_SQLite_Open("bundesliga.db");lade der Datenbank
_SQLite_Query(-1,"Select * from '1bundesliga' ORDER BY punkte DESC",$hQuery); muster abfrage
While _SQLite_FetchData ($hQuery, $aRow) = $SQLITE_OK ;schleife bis ende der abfrage
GUICtrlCreateLabel($platz,$z,$s)
GUICtrlCreateLabel($aRow[1],$z+40,$s)
GUICtrlCreateLabel($aRow[2],$z+150,$s)
GUICtrlCreateLabel($aRow[3],$z+200,$s)
GUICtrlCreateLabel($aRow[4],$z+270,$s)
GUICtrlCreateLabel($aRow[5],$z+350,$s)
GUICtrlCreateLabel($aRow[6]&" : "&$aRow[7],$z+385,$s)
GUICtrlCreateLabel($aRow[8],$z+420,$s)
$s += 30
$platz += 1
WEnd
_SQLite_Close()
_SQLite_Shutdown()
EndFunc
Edit BugFix: Spoiler gesetzt
Es empfiehlt sich alle Controls zuerst zu definieren und dann, wie schon gesagt bei Bedarf auf Enable oder Disable zu setzen.
Sehe nix, was dagegen spricht in deinem Bsp.
seh ich genauso
erst definieren und dann mit GuiCtrlSetState auf enable/disable und mit GuiCtrlSetData kannst du sie ggf. dann ändern...
greetz oli
Okay hab ich jetzt so gemacht!
Ist zwar umständlich, aber funzt so.
Also danke für eure Hilfe
ZitatOriginal von DjPro2k7
Okay hab ich jetzt so gemacht!
Ist zwar umständlich, aber funzt so.Also danke für eure Hilfe
Mag auf den ersten Blick etwas umständlicher aussehen. Du kannst dann aber das Skript viel leichter lesen.
Es hat sich als eine Art Standard eingebürgert, ein Skript etwa in dieser Form aufzubauen:
- Includes
- Optionen
- Konstanten/Variablen -Deklarationen
- GUI Deklarationen
- Hauptprogramm
- Funktionen
Natürlich hat da jeder auch seine 'eigene Note'.
Aber das macht es, gerade für den Hilfe gebenden, einfacher dein Skript zu lesen.