Du bist nicht angemeldet.

Kontrollzentrum

Spenden

Jeder Euro hilft uns, euch zu helfen.

Adsense

Downloads

Stabil: 3.3.8.1 (Q, H)
Stabil: 3.3.10.2 (Q, H)
Beta: 3.3.11.4 (Q, H)
SciTE: 4/5/2014 (Q, H)
Hilfe Deutsch: 12/23/2013 (Q)
Download: OrganizeIncludes (Q)
Stand: 08.04.2014 - 15:42 Uhr

Lieber Besucher, herzlich willkommen bei: AutoIt.de - Das deutsche AutoIt-Forum. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

  • »DarkManX« ist der Autor dieses Themas

Registrierungsdatum: 10. März 2012

  • Private Nachricht senden

1

Montag, 12. März 2012, 01:03

GUI - Mehrere Forms

Hallo,

zunächst: bin ziemlich neu und kenne mich mit AutoIt noch nciht so gut aus, also habt Geduld mit mir. Habe mir mal den Koda GUI Builder runtergeladen und soweit ist alles in Ordnung und klar, Nur ist mir nicht wirklich klar wie ich mehrere Forms mit einem "Main Menu" einbauen kann. Man hat quasi ein Dropdownmenü und für jeden Punkt gibt es eine eigene Seite. Muss man dann einfach alles auf eine Seite machen und bei einem Untermenüklick alle Buttons etc, die nicht zu der bestimmten Seite gehören, unsichtbar machen?

Bei einem neuen Form erstellt ja quasi ein neues au3 Dokument. Oder kann ich das irgendwie includen? Wäre ja auch irgendwie ganz komisch, wenn man viele Elemente reduntant machen müsste. Oder packt man alles ein Dokument und fragt die dementsprechenden Seiten mit 'ner switch-Abzweigung ab? Wäre über ein paar Tips dankbar!

Vielen Dank

Registrierungsdatum: 11. Januar 2007

Wohnort: Niedersachsen, Horneburg

  • Private Nachricht senden

2

Montag, 12. März 2012, 07:41

Morgen!
Also, du kannst nicht so einfach mehrere GUI´s durch eine Menüleiste steuern... Es ist zwar möglich, aber eher über Umwege. Was du aber machen kannst, ist eine GUI erstellen und darin mit einem Tab arbeiten - das hat den Vorteil das du nicht selber iwelche Buttons verstecken mußt, sondern bei einem Tab-Klick wird eben die Seite umgeschaltet.

Grüsse!

[EDIT]
Eine neue Form.... Du kannst jede Form einfach in dein Script einbinden! Das ist überhaupt kein Problem. Und abfragen kannst du die Form 'Elemente' durch eine einfache Case/Switch Schleife oder durch die Option 'Opt("GUIOnEventMode", 1)'.
WOW, schon über 7 Jahre hier :D

GTAu3 (Irrlicht) eine GTA2 Interpretation in AU3
SpaceTrek (Irrlicht/QuickDraw) ein Klassischer 2D Space-Shooter (Beta)
IrrPlanet (Irrlicht) ein Tool um 2D Planetentexturen als 3D-Planet sammt Effekten abzuspeichern

Pinger (V1.1) ein einfaches aber nützliches (Wlan) Ping-Tool
SciTEexecuter das C++ Add-On für SciTE und AutoIt3
CompressHEX die HEX-Variablen Kompression für Source-Code

i2c

/* back home */

Registrierungsdatum: 21. Oktober 2009

Wohnort: MV

Beruf: Feelancer(in)

  • Private Nachricht senden

3

Montag, 12. März 2012, 07:56

Simples Beispiel zum ein- und ausblenden von Controls.

  Spoiler Spoiler

AutoIt-Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <GUIConstants.au3>

#region - GUI Create
GUICreate("", 400, 400, -1, -1)
$idCombo = GUICtrlCreateCombo("eins", 4, 4)
GUICtrlSetData(-1, "zwei")
GUICtrlSetData(-1, "drei")
#endregion - GUI Create
GUISetState(@SW_SHOW)

_createControls()

#region - GUI SelectLoop
While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = -3 ;$GUI_EVENT_CLOSE
            Exit
        Case $msg = $idCombo
            Select
                Case GUICtrlRead($idCombo) = "eins"
                    For $i = 0 To UBound($aEins) - 1
                        GUICtrlSetState($aEins[$i], $GUI_SHOW)
                    Next
                    For $i = 0 To UBound($aZwei) - 1
                        GUICtrlSetState($aZwei[$i], $GUI_HIDE)
                    Next
                    For $i = 0 To UBound($aDrei) - 1
                        GUICtrlSetState($aDrei[$i], $GUI_HIDE)
                    Next
                Case GUICtrlRead($idCombo) = "zwei"
                    For $i = 0 To UBound($aEins) - 1
                        GUICtrlSetState($aEins[$i], $GUI_HIDE)
                    Next
                    For $i = 0 To UBound($aZwei) - 1
                        GUICtrlSetState($aZwei[$i], $GUI_SHOW)
                    Next
                    For $i = 0 To UBound($aDrei) - 1
                        GUICtrlSetState($aDrei[$i], $GUI_HIDE)
                    Next
                Case GUICtrlRead($idCombo) = "drei"
                    For $i = 0 To UBound($aEins) - 1
                        GUICtrlSetState($aEins[$i], $GUI_HIDE)
                    Next
                    For $i = 0 To UBound($aZwei) - 1
                        GUICtrlSetState($aZwei[$i], $GUI_HIDE)
                    Next
                    For $i = 0 To UBound($aDrei) - 1
                        GUICtrlSetState($aDrei[$i], $GUI_SHOW)
                    Next
            EndSelect
    EndSelect
WEnd
#endregion - GUI SelectLoop

Func _createControls()
    Global $aEins[2], $aZwei[2], $aDrei[2]
    $aEins[0] = GUICtrlCreateButton("eins", 4, 40)
    $aEins[1] = GUICtrlCreateInput("eins", 4, 80)
    $aZwei[0] = GUICtrlCreateButton("zwei", 4, 40)
    GUICtrlSetState(-1, $GUI_HIDE)
    $aZwei[1] = GUICtrlCreateInput("zwei", 4, 80)
    GUICtrlSetState(-1, $GUI_HIDE)
    $aDrei[0] = GUICtrlCreateButton("drei", 4, 40)
    GUICtrlSetState(-1, $GUI_HIDE)
    $aDrei[1] = GUICtrlCreateInput("drei", 4, 80)
    GUICtrlSetState(-1, $GUI_HIDE)
EndFunc   ;==>_createControls
MfG i2c
BBM-ID 7593FD26


Join us: irc.afterworkchat.net Channel: #autoit

Als Gott sah, dass er die Menscheit nicht mit Seuche, Pest und Sintflut bestrafen konnte, schickte er mich!


[SciTE/Notepad++] Send To Pastebin/Get From Pastebin
[SciTE/Notepad++] Regexp Tester

Registrierungsdatum: 16. Oktober 2011

  • Private Nachricht senden

4

Montag, 12. März 2012, 08:54

Hi,
ich hatte auch mal danach gesucht und fand diese Lösung am Besten, da die GUIs mit all Ihren Controls usw auf einmal hidden bzw shown werden können:

  Spoiler Spoiler

AutoIt-Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$hParent = GUICreate("",500,500)
$hBtn = GUICtrlCreateButton("Zeige mir alle Inputboxen!",0,0,500,40)
GUISetState()

$hChild = GUICreate("",500,400, 0, 100, 0x40000000, -1, $hParent)
For $i = 0 To 10
    GUICtrlCreateInput("",0,20*$i,500,20)
Next
GUISetState(@SW_HIDE)


Do
    $nMsg = GUIGetMsg()
    Select
        Case $nMsg = $hBtn
            GUISetState(@SW_SHOW,$hChild)
    EndSelect
Until $nMsg = -3


LG OIS

  • »DarkManX« ist der Autor dieses Themas

Registrierungsdatum: 10. März 2012

  • Private Nachricht senden

5

Montag, 12. März 2012, 16:56

@oispnr Danke, das funktioniert ganz gut. Ich weiß nur nicht ob es so performant ist alles zu erstellen, was evtl mal angezeigt werden soll. Das verstecken macht es ja nur unsichtbar, hält es aber alles im Speicher. Nungut, vlt nimmt es ja nicht so viele Resourcen weg.
Danke jedenfalls!

Registrierungsdatum: 16. Oktober 2011

  • Private Nachricht senden

6

Montag, 12. März 2012, 18:42

Also da bin ich jetzt ehrlich gesagt nicht der Experte, aber ich denke da solltest du dir keine Gedanken machen. Eine Alternative wäre zB. eine eigene Funktion zu schreiben, die _Gui1Create() oder so nennen und noch eine, die _Gui1Delete() heißt oder so, dann könntest du es auch leicht hinkriegen und würdest dann auch komplett löschen.
Aber ich denke von der Performance ist meine Variante besser, da du hier alles am Anfang erstellst und später nur sagst: versteck, zeig. Andernfalls muss es ja jedesmal gelöscht werden und neu erstellt werden und so...

LG OIS

autoit.de Webutation