Gui Fragen

  • Hi ihr Götter,

    habe ein paar GUI fragen:

    1: Gibt es ein gutes Tut ?
    2: Ich möchte Labels erstellen die ich nachher als Variable auslesen muss
    3: Eine Listbox die ich auch auslesen möchte

    Also ich lerne gerne und wenn ihr mir vielleicht ein tut oder so über Gui nen könntet wäre dsa für alle sicherlich das schnellste ;) dann müsst ihr nicht so viel tippen

    Danke an euch hoffe ihr könnt mir helfen

    Mfg

  • ja das wäre gut und wann jemand schon dran ist wie kann man das machen das wenn man das programm startet im gui steht wie lange das programm seit start läuft hh:mm:ss so hätte ich das gedacht damit man eine zeitkontrolle hat


    LG Christian

  • Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 432, 623, 192, 132)
    $List1 = GUICtrlCreateList("", 24, 72, 209, 310)
    GUICtrlSetData(-1, "Listbox Eintrag")
    $Label1 = GUICtrlCreateLabel("Hallo", 24, 8, 205, 52)
    $Button1 = GUICtrlCreateButton("Label lesen", 25, 400, 97, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Listbox lesen", 136, 400, 97, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $Button1
    $labeldata = GUICtrlRead($Label1) ; Label lesen und in eine Variable speichern
    msgbox(32+0, "Labeltext", $labeldata)
    case $Button2
    $listboxdata = GUICtrlRead($List1) ;markiertes Listboxitem lesen und in eine Variable speichern
    msgbox(32+0, "Listboxtext", $listboxdata)
    EndSwitch
    WEnd

    [/autoit]

    Ganz einfaches Bsp.
    Außerdem könnt ihr euch die Beispiele in der Hilfe ansehen.
    http://wiki.autoit.de/wiki/index.php/Tutorial hier steht auch ein wenig zu Gui's.

  • wenn man das programm startet im gui steht wie lange das programm seit start läuft hh:mm:ss so hätte ich das gedacht damit man eine zeitkontrolle hat

    Dein erster Ansatz könnte
    TimerInit ( ) und dannach
    TimerDiff ( timestamp ) <- Funktion TimerDiffRückgabewert
    Gibt in Millisekunden den Zeitunterschied zu einem vorherigen Aufruf von TimerInit() zurück.

    sein.

  • Dein erster Ansatz könnte
    TimerInit ( ) und dannach
    TimerDiff ( timestamp ) <- Funktion TimerDiffRückgabewert
    Gibt in Millisekunden den Zeitunterschied zu einem vorherigen Aufruf von TimerInit() zurück.

    sein.

    ja in ms und wie bekomme ich aus dem hh:mm:ss das er so zählt wann er bei sec auf 59 ist dann bei min 1 setzt und neu anfängt??

  • Naja die Millisekunden in Stunden/Minuten/Sekunden umrechnen sollte doch einfach sein. ;)
    Musst eben vergleichen wieviel ms liefert Timerdiff()? Wieviel ms passen in eine Stunde? Wieviel in eine Minute? usw.

    Einmal editiert, zuletzt von nuts (16. September 2009 um 18:18)

    • Offizieller Beitrag

    Dafür gibt es ja bereits eine UDF "_TicksToTime()".
    Ich finde die Rückgabe von der Funktion allerdings unpraktisch und so habe ich eine eigene geschrieben:

    Spoiler anzeigen
    [autoit]


    Opt('WinTitleMatchMode', 2)
    $sTitle = 'Solitär'
    ShellExecute('sol.exe')
    WinWait($sTitle)
    $handle = WinGetHandle($sTitle)
    $iTimer = TimerInit()
    AdlibEnable('_TimeUpdate', 10)
    While WinExists($handle)
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _TimeUpdate()
    WinSetTitle($handle, '', StringRegExpReplace(WinGetTitle($handle), ' \d{2}:\d{2}:\d{2}.\d{3}', '') & ' ' & _NewTicksToTime(TimerDiff($iTimer)))
    EndFunc ;==>_TimeUpdate

    [/autoit] [autoit][/autoit] [autoit]

    Func _NewTicksToTime($iTicks)
    Local $iHours, $iMins, $iSecs = Int($iTicks / 1000), $iMSecs = $iTicks - $iSecs * 1000
    $iHours = Int($iSecs / 3600)
    $iSecs = Mod($iSecs, 3600)
    $iMins = Int($iSecs / 60)
    $iSecs = Mod($iSecs, 60)
    Return StringFormat('%02i:%02i:%02i.%03i', $iHours, $iMins, $iSecs, $iMSecs)
    EndFunc ;==>_NewTicksToTime

    [/autoit]