Wie kann man ein "GUICtrl..." von einer GUI in einer anderen GUI ändern???
Opt("GUIOnEventMode", 1) funktioniert bei mir immer.
GUI zu GUI
-
- [ offen ]
-
moppel11 -
7. September 2008 um 21:34 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
Ähm, was?
Bitte noch mal erklären, evtl. mit Code.peethebee
-
$pic5 = GUICtrlCreatePic("error.gif", 209, 232, 16, 16)
GUICtrlDelete($pic5)
GUICtrlCreatePic("check.gif", 205, 228, 24, 24)das funktioniert
ich möchte so etwa von einer anderen GUI aus machen.
-
- Offizieller Beitrag
ich möchte so etwa von einer anderen GUI aus machen.
Ich verstehe auch nicht, was du meinst.
"andere GUI" - Ist das eine selbsterstellte, oder wird sie von einem Programm zur Verfügung gestellt? -
Es sind zwei AutoIt-GUIs
Aus der "ersten" rufe ich ein Autoit-Programm auf was ein Event startet was eine Änderung in der "ersten" erzeugen soll siehe Beispiel, aus error.gif wird check.gifFunc _Funktion()
$pic5 = GUICtrlCreatePic("error.gif", 209, 232, 16, 16)
GUICtrlDelete($pic5)
GUICtrlCreatePic("check.gif", 205, 228, 24, 24)
EndFunc -
- Offizieller Beitrag
Oh man, deine Erklärungen sind aber nebulös
Allem Anschein nach hast du doch schon Code - dann zeig ihn mal (nicht nur 5 Zeilen, die uns wenig sagen).Gib einfach an:
- Ausgangsstatus (GUI, Controls)
- was passiert
- wie soll darauf reagiert werden -
-
- Offizieller Beitrag
$pic5 = GUICtrlCreatePic("error.gif", 209, 232, 16, 16)
GUICtrlDelete($pic5)
GUICtrlCreatePic("check.gif", 205, 228, 24, 24)das funktioniert
ich möchte so etwa von einer anderen GUI aus machen.
Wieso GuiCtrDelete ? Schau mal in der hilfe nach unter :
GUICtrlSetImageZitat aus der Hilfe von GuiCtrlCreatePic :
Funktion GUICtrlCreatePic Nachdem die Dialogbox angezeigt wurde, kann das Bild mit GUICtrlSetImage aktualisiert werden.
-
es gibt viele Möglichkeiten, dein Problem zu lösen.
erstens: um ein Bild in einer GUI zu ändern ist es besser GuiCtrlSetImage zu verwenden, anstatt GuiCtrlDelete und dann GuiCtrlCreatePic
hier mal einige Möglichkeiten; Ich hab versucht es so zu erklären, wie du deinen Frage gestellt hast also sehr kurz und nicht im Detail verständlich
1)Erstelle in GUI1 einen Button mit einer Bildänderfunktion
Vom GUI2 aus klickst du mit ControlClick auf diesen Button...2)GUI1 ließt alle paar Sekunden eine Ini-Datei aus
GUI2 ändert die Ini-Datei3)Wie Methode 2, nur via MemoryWrite / MemoryRead
4)GUI1 verwende GuiRegisterMsg mit der enstsprechenden Bildänderfunktion
GUI2 Sende die Message an GUI15)GUI2 schreibt in StdOut
GUI1 ließt StdinlgE
-
- Offizieller Beitrag
Alle GUIs in eine schleife packen oder OnEventModus nutzen und du kannst bequem alles in jeder GUI ändern :). peethebee
-
Den OnEventModus nutze ich.
Es geht nicht nur um Bilder, Buttons aktivieren und deaktivieren oder Labels ändern. -
Du solltest dir vielleicht diese Befehle ansehen:
[autoit]ControlHide
[/autoit]
ControlShow
ControlDisable
ControlEnable
ControlMoveDamit kannst du fremde und eigene Gui's verändern.