Hallo Com,
dieses Beispiel:
[autoit]#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ScrollBarConstants.au3>
#include <WinAPI.au3>
#include <EditConstants.au3>
#include <GuiScrollBars.au3>
_CreateGui()
[/autoit][autoit][/autoit][autoit]Func _CreateGui()
Local $l_InternetSession = -99, $l_FTPSession
Local $errOpen, $errFTP
Local $nMsg
Local $iMaxDepth = 3;max 3 vereichnisebenen <1=unendliche Rekrusionstiefe
Local $mainGui = GUICreate("Test Controlsend to Edit", 623, 450, 271, 235)
Local $idLblLog = GUICtrlCreateEdit("", 8, 5, 467, 315, BitOR($WS_HSCROLL, $WS_VSCROLL, $ES_READONLY, $ES_WANTRETURN))
Local $idPrgFile = GUICtrlCreateProgress(8, 344, 598, 25)
Local $hGuiChild1 = GUICreate("Child1", 594, 21, 10, 346, $WS_POPUP, $WS_EX_MDICHILD, $mainGui)
Local $idLblFilePer = GUICtrlCreateLabel("", 2, 2, 590, 17, $SS_CENTER)
GUICtrlSetFont(-1, 11, 2800)
WinSetTrans($hGuiChild1, "", 180)
GUISwitch($mainGui)
Local $idLblFile = GUICtrlCreateLabel("", 8, 322, 594, 17)
Local $idPrgKB = GUICtrlCreateProgress(8, 392, 598, 25)
Local $hGuiChild2 = GUICreate("Child2", 595, 23, 10, 394, $WS_POPUP, $WS_EX_MDICHILD, $mainGui)
Local $idLblKBPer = GUICtrlCreateLabel("", 2, 1, 590, 19, $SS_CENTER)
GUICtrlSetFont(-1, 11, 2800)
WinSetTrans($hGuiChild2, "", 180)
GUISwitch($mainGui)
Local $idLblKB = GUICtrlCreateLabel("", 8, 372, 594, 17)
GUICtrlCreateLabel('Rekursionstiefe"', 530, 5)
Local $idInpMaxDepth = GUICtrlCreateInput("3", 483, 5, 35, 22);, $ES_NUMBER)
GUICtrlSetTip(-1, 'Maxinale Rekursionstiefe,<1=unendlich')
; Local $idBtnConnect = GUICtrlCreateButton("&Verbinden", 483, 40) ;verbinden mit FTP-Server
; Local $idBtnDisconnect = GUICtrlCreateButton("&Trennen", 483, 80) ;vom Server trennen
Local $idBtnDL = GUICtrlCreateButton("&Download", 483, 120) ;Download starten
Local $idBtnExit = GUICtrlCreateButton("Be&enden", 483, 160) ;Exit
Local $idLblColapsedTime = GUICtrlCreateLabel("", 8, 420, 400, 17)
[/autoit][autoit][/autoit][autoit]Local $idLblKBperSec = GUICtrlCreateLabel("", 450, 420, 500, 17)
GUISetState(@SW_SHOW, $hGuiChild1)
GUISetState(@SW_SHOW, $hGuiChild2)
_GUIScrollBars_Init(GUICtrlGetHandle($idLblLog))
GUISetState(@SW_SHOW, $mainGui)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Gui_EVENT_CLOSE, $idBtnExit
Exit
Case $idBtnDL
GUICtrlSetState($idBtnDL, $Gui_DISABLE)
GUICtrlSetState($idBtnExit, $Gui_DISABLE)
_simulateDL($idPrgFile, $idLblFilePer, $idLblLog, $mainGui)
GUICtrlSetState($idBtnDL, $Gui_ENABLE)
GUICtrlSetState($idBtnExit, $Gui_ENABLE)
EndSwitch
WEnd
EndFunc ;==>_CreateGui
Func _simulateDL($idPrgFile, $idLblFilePer, $idLblLog, $mainGui)
Local $text = "Hello! "
For $i = 0 To 100
If $idPrgFile <> 0 Then GUICtrlSetData($idPrgFile, $i)
If $idLblFilePer <> 0 Then GUICtrlSetData($idLblFilePer, $i & " %")
_report($text&$i, $idLblLog, $mainGui, 0)
Sleep(100)
Next
EndFunc ;==>_simulateDL
Func _report($sMsg, $idLblLog = 0, $mainGui = 0, $iDebug = 0)
GUICtrlSetData($idLblLog, GUICtrlRead($idLblLog) & $sMsg & @CRLF)
If $mainGui <> 0 And $idLblLog <> 0 Then
; Local $scrollbarVertPos = _GUIScrollBars_GetScrollPos(GUICtrlGetHandle($idLblLog), $SB_VERT)
; ControlSend($mainGui, "", GUICtrlGetHandle($idLblLog), "^{END}")
ControlSend($mainGui, "", $idLblLog, "^{END}")
; _GUIScrollBars_SetScrollInfoPos(GUICtrlGetHandle($idLblLog), $SB_VERT, $scrollbarVertPos)
EndIf
If $iDebug Then ConsoleWrite($sMsg & @CRLF)
EndFunc ;==>_report
zeigt das Problem welches ich in einem Projekt habe. Das Edit wird nur richtig (also die letzten Einträge) angezeigt wenn meine GUI nicht den Focus hat. Gibt es eine andere Möglichkeit immer zu der letzten Zeile zu springen, oder muss ich evtl. andere Styles bei der Main- und den Child-GUI's angeben,
danke autobert