Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 07:59

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



GUICtrlSetData ohne Button

Discussion on GUICtrlSetData ohne Button within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Aug 2011
Posts: 134
Received Thanks: 148
GUICtrlSetData ohne Button

Wie schreibe ich das , das ich wenn ich in Input1 was schreibe das sich das DIREKT in Label2 übertragen wird

Code:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("F", 301, 35, 302, 218)
$Input1 = GUICtrlCreateInput("", 8, 8, 121, 21)
GUICtrlSetLimit(-1, 17)
$Label1 = GUICtrlCreateLabel(">", 136, 8, 10, 17)
$Label2 = GUICtrlCreateLabel(" ", 152, 8, 143, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd
Emo! is offline  
Old 10/11/2011, 16:38   #2
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
PHP Code:
While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit

    EndSwitch
    
    if 
guictrlread($input1) <> GUICtrlRead($label1Then
        GUICtrlSetData
($Label1GUICtrlRead($Input1))
    endif

WEnd 
Ludder231 is offline  
Thanks
1 User
Old 10/11/2011, 17:28   #3
 
elite*gold: 0
Join Date: Aug 2011
Posts: 134
Received Thanks: 148
Dankii ^-^ #ThanksGive
Emo! is offline  
Old 10/11/2011, 17:41   #4
 
link's Avatar
 
elite*gold: 1
Join Date: Jul 2005
Posts: 553
Received Thanks: 454
Ugh, das ist aber eine ziemlich hässliche Lösung..

Schöner und performanter wäre es, wenn du ein Callback für WM_COMMAND registrierst und die Nachricht der Editbox selbst abfängst:
Code:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("F", 301, 35, 302, 218)
$Input1 = GUICtrlCreateInput("", 8, 8, 121, 21)
GUICtrlSetLimit(-1, 17)
$Label1 = GUICtrlCreateLabel(">", 136, 8, 10, 17)
$Label2 = GUICtrlCreateLabel(" ", 152, 8, 143, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

GUIRegisterMsg($WM_COMMAND, "MsgCallback")

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

Func MsgCallback($hWnd, $Msg, $wParam, $lParam)
    Switch $Msg
        Case $WM_COMMAND
            If $wParam = BitShift($EN_CHANGE, -16) + $Input1 Then
                GUICtrlSetData($Label2, GUICtrlRead($Input1))
            EndIf
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc
link is offline  
Old 10/11/2011, 17:49   #5
 
BlackHybrid's Avatar
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
Wieso so umständlich?
PHP Code:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form2 GUICreate("F"30135302218)
$Input1 GUICtrlCreateInput(""8812121)
GUICtrlSetLimit(-117)
$Label1 GUICtrlCreateLabel(">"13681017)
$Label2 GUICtrlCreateLabel(" "152814320)
GUICtrlSetFont(-1104000"MS Sans Serif")
GUIRegisterMsg($WM_COMMAND"WM_COMMAND")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit

    EndSwitch
WEnd

Func WM_COMMAND
($hWinHandle$iMsg$wParam$lParam)
    
$controlID BitAND($wParam0x0000FFFF)
    If 
$controlID $Input1 Then
        GUICtrlSetData
($Label1GUICtrlRead($Input1))
    EndIf
EndFunc 
BlackHybrid is offline  
Old 10/11/2011, 18:09   #6
 
link's Avatar
 
elite*gold: 1
Join Date: Jul 2005
Posts: 553
Received Thanks: 454
Wieso umständlich?

Hatte überlesen, dass wenn kein Return ausgeführt, automatisch zum AutoIt Handler zurückgesprungen wird, also ist das "Return $GUI_RUNDEFMSG" überflüssig.

Da der MsgHandler aber auch für andere Nachrichten registriert werden kann, habe ich vollständigkeitshalber abgefragt, ob es sich um die gewollte Nachricht handelt.
Und den Notification Code habe ich überprüft, damit der Text nicht wie in deinem Codeschnipsel unnötigerweise kopiert wird, wenn die EditBox z.B. den Fokus erhält.
link is offline  
Old 10/11/2011, 21:42   #7
 
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
Ich finde diese Art von "GUI Message abfragen" sehr interessant. Man kann sich doch damit die While Schleife, die Koda erstellt, sparen (zumindest halb):


Nur wird die Funktion halt nicht aufgerufen wenn man auf den Beenden Button klickt.
Habt ihr dazu evtl irgendwo Lektüre? Also iwelche Tutorials oder Websiten dazu?
klavier22 is offline  
Old 10/11/2011, 22:30   #8
 
BlackHybrid's Avatar
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
Soweit ich weis geht es nicht, da das Script pausiert wird wenn irgendeine Notification stattfindet.
Bin mir an der Stelle aber nicht wirklich sicher.
Wenn eine weitere Notification stattfindet sollte sich Beispielsweise wenn man Exit benutzt sich das Script schließen
BlackHybrid is offline  
Thanks
1 User
Old 10/12/2011, 00:36   #9
 
link's Avatar
 
elite*gold: 1
Join Date: Jul 2005
Posts: 553
Received Thanks: 454
Die Möglichkeit ein Callback für WM_CLOSE zu registrieren scheint wohl nicht implementiert zu sein.. Jedenfalls wird es nicht weitergeleitet.
Du könntest aber WM_SYSCOMMAND benutzen:

Code:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>

Global Const $SIZE_MAXIMIZED = 2
Global Const $SIZE_MINIMIZED = 1
Global Const $SC_CLOSE = 0xF060

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 142, 54, 211, 122, $WS_MAXIMIZEBOX + $WS_MINIMIZEBOX + $WS_CAPTION + $WS_POPUP + $WS_SYSMENU)
$Input1 = GUICtrlCreateInput("Input1", 8, 8, 121, 21)
$Label1 = GUICtrlCreateLabel("Label1", 8, 36, 36, 17)
$Button1 = GUICtrlCreateButton("Button1", 46, 32, 60, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

GUIRegisterMsg($WM_COMMAND, "MsgCallback")
GUIRegisterMsg($WM_SIZE, "MsgCallback")
GUIRegisterMsg($WM_SYSCOMMAND, "MsgCallback")

While 1
    Sleep(100)
WEnd

Func MsgCallback($hWnd, $Msg, $wParam, $lParam)
    Switch $Msg
        Case $WM_COMMAND
            Switch $wParam
                Case BitShift($EN_CHANGE, -16) + $Input1
                    GUICtrlSetData($Label1, GUICtrlRead($Input1))
                Case BitShift($BN_CLICKED, -16) + $Button1
                    MsgBox(0, "", "Button")
                Case BitShift($BN_CLICKED, -16) + $Label1
                    MsgBox(0, "", "Label")
            EndSwitch
         Case $WM_SIZE
            Switch $wParam
                Case $SIZE_MAXIMIZED
                    MsgBox(0, "", "Maximiert")
                Case $SIZE_MINIMIZED
                    MsgBox(0, "", "Minimiert")
            EndSwitch
         Case $WM_SYSCOMMAND
             If $wParam = $SC_CLOSE Then Exit
    EndSwitch
EndFunc
link is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
GUiCtrlSetData
09/18/2011 - AutoIt - 5 Replies
Hey Com, nochmal ne frage, versuche einen Text aus Ini auszulesen: Versionsinfos="Data1|Data2|Data3" und diesen dann mit Leerzeichen zwischen den einzelnen gesplitteten Daten in das Label eintrage soll, allerdings funktioniert es nicht, aber es kommt auch kein Fehler...
guictrlsetdata()
05/24/2011 - AutoIt - 1 Replies
HI, wie kann ich was in einem Tabsheet/Tab item schreiben lassen?? Guictrlsetdata($tab1, ""&" .Login Game") Wird nicht angezeigt. Nur wenn ich mit dem AutoIT window info tool rübergehe zeigt es mir an dass da doch was steht ich kanns aber nicht sehen...
Einen Button ohne Link anklicken.
12/31/2010 - AutoIt - 2 Replies
Mein Script #include<IE.au3> $seite = ("votefortheserver.tk") $oIE = _IECreate ( "www.surf-web-safely.com" ) $oForm = _IEFormGetCollection ( $oIE, 0) $oSeite = _IEFormElementGetObjByname ( $oForm , "u" ) _IEFormElementSetValue ( $oSeite, $seite) _IEFormSubmit ( $oForm )
button ohne form?
10/24/2010 - AutoIt - 10 Replies
Hi kann man ein button i-wie machen das er da ist ohne form?
Button ohne rand + ein/aus
02/10/2010 - AutoIt - 10 Replies
hai leuts ich bin mal wieder am cooden und möchte gerne einen button haben, welcher 1. den gepunkteten rand nicht hat (immer wenn man ein button anklickt gibts doch so einen gepunkteten rand ... den will ich weg ^^) und 2. sollte er wenn man drauf klick "drinne bleiben" also gedrückt bleiben und wenn man nochmal drauf klick, sollte er wieder raus gehen ^^ ich hoffe ihr versteht was ich meine. hab mir in der help datei die parameter angeschaut... aber i-wie nix gesehen ^^ wär suppi...



All times are GMT +1. The time now is 08:01.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.