Buttons und Label ?

  • Meine Frage :

    Ich habe eine Gui und habe darauf mehrere Buttons.

    Jetzt brauche ich auf dieser Gui auch noch eine Buttonreihe mit 10 Buttons und 10 Labels.

    Wenn ich auf einen der Buttons klicke muss das Labelfeld mit einem Wert aus einer Inidatei gefüllt werden.

    Auf den Buttons reicht es wenn da der wert von 1 - 10 darauf steht und in den Labels braucht erstmal gar nichts stehen.

    Wie erstelle ich diese am dümmsten und wie weise ich den Labels nacher die Werte zu ?


    Diese Button reihe von Hand zu erstellen erscheint mir Blödsinn zu sein.

    Ich denke es sollte eher so gehen wie bei dem Mehrfach Counterbesipiel von Bugfix, nur irgendwie steige ich da nicht so ganz durch.


    Diese Array geschichten sind mir immer noch irgendwie zu hoch :(


    Das Labeln ist klar und das es eine For Next geben muss auch.

    Aber weiter bin ich noch nicht gekommen :(


    Also wer mir da ne Denkhilfe oder eine Beschreibung wie man sowas erstellen kann oder sollte bereitstellen könnte dem wäre cih doch mal sehr dankbar.


    MfG

    Einmal editiert, zuletzt von Observer (1. Juni 2009 um 20:03)

  • das erstellen der Buttons und Labels kannst du z. B. so machen

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Dim $Button[11]
    Dim $Label[11]

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

    GUICreate("Mein GUI Button")

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

    For $i = 1 To 10
    $Button[$i] = GUICtrlCreateButton($i, 10, 30 + $i * 30, 100)
    $Label[$i] = GUICtrlCreateLabel("leer", 200, 30 + $i * 30, 100)
    Next

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect

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

    For $i = 1 To UBound($Button) - 1
    If $msg = $Button[$i] Then MsgBox(0, "", "Button " & $i & " wurde angeklickt")
    Next

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

    Sleep(20)
    WEnd

    [/autoit]
  • Hallo Observer,

    du schreibst:

    Zitat

    Ich habe eine Gui und habe darauf mehrere Buttons.

    Jetzt brauche ich auf dieser Gui auch noch eine Buttonreihe mit 10 Buttons und 10 Labels.

    poste doch einfach dein bisheriges Script, damit man sehen kann wie weit du schon bist.

    Zitat

    Auf den Buttons reicht es wenn da der wert von 1 - 10 darauf steht und in den Labels braucht erstmal gar nichts stehen.

    Wie erstelle ich diese am dümmsten und wie weise ich den Labels nacher die Werte zu ?

    Die Buttons und die Labels kannst du über ein Array erstellen, mit GuiCrlSetData kannst du Labels einen Wert zuweisen. Mit IniRead kannst du Werte aus einem Ini-File lesen,

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Opt('GUIOnEventMode', 1)
    Opt('MUSTDECLAREVARS' ,1)

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

    Global $sTitel = 'Buttons from Array'
    Global $hbtnIni[10], $hlblIni[10]

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

    _Main()
    Exit

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

    Func _Main()
    Local $iLeft, $iTop, $iNr
    Global $hfrmMain = GUICreate($sTitel, 500, 400, -1, -1, $WS_SIZEBOX + $WS_SYSMENU +$WS_MAXIMIZEBOX +$WS_MINIMIZEBOX)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_exitMain')
    for $iNr = 0 to 9
    $hbtnIni[$iNr] = GUICtrlCreateButton("&" & $iNr,10,$iNr*30+10,45,25)
    GUICtrlSetResizing($hbtnIni[$iNr], $GUI_DOCKLEFT + $GUI_DOCKTOP +$GUI_DOCKSIZE)
    GUICtrlSetOnEvent($hbtnIni[$iNr], '_setLbl')
    $hlblIni[$iNr] = GUICtrlCreateLabel($iNr,60,$iNr*30+15,250,25)
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP +$GUI_DOCKHeight)
    Next
    Local $hbtnExit = GUICtrlCreateButton("be&enden",10,330)
    GUICtrlSetOnEvent(-1, '_ExitMain')
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP +$GUI_DOCKSIZE)
    GUISetState(@SW_SHOW,$hfrmMain)
    While 1
    Sleep(125)
    WEnd
    EndFunc

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

    Func _exitMain()
    Exit
    EndFunc

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

    Func _setLbl()
    Local $iSchluessel
    Switch @GUI_CTRLID
    Case $hbtnIni[0]
    GUICtrlSetData($hlblIni[0],IniRead("DeineINI", "Sektion0", "Schlüssel0", "NichtGefunden"))
    Case $hbtnIni[1]
    GUICtrlSetData($hlblIni[1],IniRead("DeineINI", "Sektion1", "Schlüssel1", "NichtGefunden"))
    Case $hbtnIni[2]
    GUICtrlSetData($hlblIni[2],IniRead("DeineINI", "Sektion2", "Schlüssel2", "NichtGefunden"))
    Case $hbtnIni[3]
    GUICtrlSetData($hlblIni[3],IniRead("DeineINI", "Sektion3", "Schlüssel3", "NichtGefunden"))
    Case $hbtnIni[4]
    GUICtrlSetData($hlblIni[4],IniRead("DeineINI", "Sektion4", "Schlüssel4", "NichtGefunden"))
    Case $hbtnIni[5]
    GUICtrlSetData($hlblIni[5],IniRead("DeineINI", "Sektion5", "Schlüssel5", "NichtGefunden"))
    Case $hbtnIni[6]
    GUICtrlSetData($hlblIni[6],IniRead("DeineINI", "Sektion6", "Schlüssel6", "NichtGefunden"))
    Case $hbtnIni[7]
    GUICtrlSetData($hlblIni[7],IniRead("DeineINI", "Sektion7", "Schlüssel7", "NichtGefunden"))
    Case $hbtnIni[8]
    GUICtrlSetData($hlblIni[8],IniRead("DeineINI", "Sektion8", "Schlüssel8", "NichtGefunden"))
    Case $hbtnIni[9]
    GUICtrlSetData($hlblIni[9],IniRead("DeineINI", "Sektion9", "Schlüssel9", "NichtGefunden"))
    EndSwitch
    EndFunc

    [/autoit]

    Edit: Resizing für Labels angepasst

    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (1. Juni 2009 um 16:57)