löschen von Controlls mittels GUICtrlDelete

  • Ich stopere noch ein wenig über vermutlich banale Anfängerprobleme ;(

    Ich möchte Ereignisse mittels CASE-Anweisungen steuern.

    In CASE 1 wird im Fenster ein EDIT-CONTROLL aufgerufen ( $Edit1 )

    dto in CASE 2, allerdings ein anderes ( $Edit2 )

    das klappt im Prinzip auch, allerdings löscht er das $Edit1 nicht, wenn ich CASE 2 aufrufe. Wenn ich den Focus mittels Mauszeiger in das Editfenster mache, verschwinden die eingegebenen Buchstaben kurz, erscheinen wieder und ich kann weitere Buchstaben eingeben. Will ich so natürlich nicht, denn ich will im $Edit2 nicht den Inhalt von $Edit1 fortsetzen.

    Gut, als setze ich vor dem $Edit1 = GUICtrlCreateEdit() zum Löschen eines möglicherweise vorhandenen $Edit2 den Befehl GUICtrlDelete($Edit2).

    Soweit funktioniert, was ich will ( ob es nun progrmmiertechnisch sauber ist, lass ich mich sehr gern eines besseren belehren :D )

    Das, was ich steuern will, wird vielleicht mal 40 oder mehr Case-Anweisungen beinhalten. Und hier fängt das Problem an. Ich kann ja schlecht in jede CASE-Anweisung vor dem $Edit% = GUICtrlCreateEdit() erst rund 40 GUICtrlDelete($Edit1 - 40) platzieren und das dann bei allen 40 CASE-Anweisungen, was runde 160 -x Zeilen Code beinhalten würde. :S

    ich stelle mal den Beispielcode ein, man möge es sich allerdings mit mehr als die zwei exemplarischen CASE-Anweisungen vorstellen :rolleyes:

    Spoiler anzeigen
    [autoit]

    Case $TAB1
    $return = _Array2DSearch($TAB_ITEM1,-1,1,0,0,False,True)
    if IsArray($return) Then
    $ButtonText = GUICtrlRead($Bar_CreateGrandButton_Array[StringTrimRight($return[0],2)][6])
    EndIf
    GUICtrlDelete($Edit2); <--- löscht den GUI-Inhalt, falls vorher in $TAB2 gewesen
    $Edit1 = GUICtrlCreateEdit("", 20, 135, 860, 320, -1); <--- erstellen eines EditControlls #1
    GUICtrlSetColor(-1, 0x000000) ; schwarze Schrift
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 10, 400, 0, "Calibri")

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

    Case $TAB2
    $return = _Array2DSearch($TAB_ITEM2,-1,1,0,0,False,True)
    if IsArray($return) Then
    $ButtonText = GUICtrlRead($Bar_CreateGrandButton_Array[StringTrimRight($return[0],2)][6])
    EndIf
    GUICtrlDelete($Edit1); <--- löscht den GUI-Inhalt, falls vorher in $TAB1 gewesen
    $Edit2 = GUICtrlCreateEdit("", 20, 135, 860, 320, -1); <--- erstellen eines EditControlls #1
    GUICtrlSetColor(-1, 0x99B9E3) ; blaue schrift
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 10, 400, 0, "Calibri")

    [/autoit]

    ( sorry, irgendwie hat es mir beim C&P die Einrückungen entfernt :S )

    Der Vollständigkeit halber sei gesagt, es kann durchaus sein, das die CASE-Anweisungen nicht unbedingt ausschließlich nur EDIT-CONTROLLS enthalten müssen, es könnte durchaus auch eine Messagebox aufgerufen werden, oder was anderes.

    Daher nehme ich an, es müßte kein Löschen vor dem Erstellen erfolgen, sondern ein Löschen beim Verlassen der CASE-Anweisung ?(

    • Offizieller Beitrag

    Wieso willlst du die Edits überhaupt löschen?

    Du kannst sie genau so gut mit GUICtrlSetState($Edit,@GUI_HIDE) verstecken.

  • is ja nicht so, das ich hier nicht mitlese, oder vorher suche :D , ja, dazu hab ich was in einem Thread dazu gelesen ( aber nich verstanden ?( )

    nur, in wie fern würde es mein Problem lösen ? Ich mein, in Bezug, das ich bei Aufruf einer bestimmten CASE-Anweisung ja nicht weiss, in welcher ich vorher war, und so nicht gezielt beim Aufruf eine bestimmte mittels GUICtrlSetState() verstecken kann ;(

    • Offizieller Beitrag

    Am besten postest du mal dein komplettes Script.

    Zu deinem Fehler:
    Dein Problem ist nicht das das Edit nicht gelöscht wird, sondern wie du er erstellst.
    Anhand deine Casebezeichnug nehme ich an das du die Edits auf einem Tab erstellst.
    Wenn das Edit nur auf einem Tab sein soll, mußt du Vorher Mit GUISwitch ( winhandle, tabitemID )
    auf diese umschalten sonst wird es immer auf der Hauptgui erstellt und somit auf allen Tabs zu sehen.
    Das sieht dann für dich aus als wenn das Edit nicht gelöscht wurde.
    Aber wie gesagt ohne Script zum testen ist das schwer zu beantworten.

  • Das war nicht meine Absicht, mit den Tabs , sorry :D

    Ich probiere grade an der 'Test Gui.au3' herum, die im Anhang des Threads RibbonsBar (Office 2007 Bar) UDF drin ist, weil mich interessiert, wie ich die Gui füllen könnte, wenn ich auf einen der Buttons der Ribbonbar klicke.

    Und da soll natürlich bei jedem Anklicken eines Buttons die Gui etwas machen, also z.B. ein Editfenster öffnen, oder etwas anderes.


    NACHTRAG, weil grad gefunden, im Thread wurde ja ein Beispiel genannt, an welchem ich mich orientiert habe:

    Beispiel aus dem Thread

    Das kommt meiner Fragestellung recht nahe, im Beispiel werden halt jeweils Msg-Boxen aufgerufen, während ich halt EDIT-Controlls verwenden wollte.

    [autoit]

    Case $hGrandButton_Einfuegen

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

    ; $Bar_CreateGrandButton_Array ist der Array Speicher in dem alle GrandButtons erstellt werden
    ; Hier findest du dann auch unter dem richtigen Buttonhandle das passende Handel zum Label um es aus zu lesen.
    ;~ _ArrayDisplay($Bar_CreateGrandButton_Array)
    ; Um das Handle des richtigen Labels jetzt zu finden suchen wir es mit _array2DSearch()
    $return = _Array2DSearch($Bar_CreateGrandButton_Array,$hGrandButton_Einfuegen,-1,1,0,0,False,True)
    if IsArray($return) Then
    ;Durch die Suche bekommen wir die Zeile im Array raus...
    ;...dann nur noch das Ergebnis etwas beschneiden
    ;...und damit dann aus der 6ten Spalte den Handle des Labels herausfinden..
    ;...dann das Label auslesen ... Puhhh das alles in 1er Zeile ;)
    $ButtonText = GUICtrlRead($Bar_CreateGrandButton_Array[StringTrimRight($return[0],2)][6])
    EndIf
    MsgBox (0,"Aktueller Text vom gedrücktem Buttom",$ButtonText)

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

    Case $hGrandButton_Test
    ; Eigentlich alles gleich bis das du darauf Achten musst das im Array2DSearch()
    ;...auch als Suchbegriff $hGrandButton_Test ist...
    $return = _Array2DSearch($Bar_CreateGrandButton_Array,$hGrandButton_Test,-1,1,0,0,False,True)
    if IsArray($return) Then
    $ButtonText = GUICtrlRead($Bar_CreateGrandButton_Array[StringTrimRight($return[0],2)][6])
    EndIf
    MsgBox (0,"Aktueller Text vom gedrücktem Buttom",$ButtonText)
    EndSwitch
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von Prickel (14. Februar 2011 um 01:48)

  • Hallo Prickel,

    dass die Ribbonbar funktioniert wissen wir, deshalb ist es sinnlos dort auf das Beispiel zu verweisen es funktoniert. Dort weden ja auch keine Edits gelöscht und wieder (falsch!?) erstellt, deshalb

    Am besten postest du mal dein komplettes Script.

    wobei dir Raupi ja schon die zu 98% richtige Lösung gepostet hat:

    mußt du Vorher Mit GUISwitch ( winhandle, tabitemID )
    auf diese umschalten

    mfg autoBert

  • erst einmal danke für Deine Antwort :)

    in der Ursprungsdatei ( Test gui.au3 ) bezog sich das Beispiel lediglich darauf, das die Tabs funktionieren.

    Meine Intention war aber, das bei Klicken der Buttons etwas passiert :)

    ich stelle mal das Script ein, dort wird es deutlich, was ich meine :)

    • Offizieller Beitrag

    Ich versteh dein Problem gar nicht. Das Löschen der Edits funzt doch.
    Wenn du willst das beim klicken eines Buttons was passiert, dann mußt du auch den Auszuführenden Code
    nach der entsprechenden Case Anweisung einfügen.

  • Hallo Prickel,

    du hast anscheinend mind. 1 Datei vergessen, denn beim starten von PP-Tools kommt folgend Fehlermeldung:

    also fehlt die smallIcons.dll (oder so ähnlich)

    mfg autoBert

  • autoBert,

    Anhang ist korrigiert. Ich hatte auf die smallicons.dll verzichtet, weil die über 2 MB groß war. Da sie ausgeremt war, nicht verwendet wird, und das Programm auch ohne sie bei mir lief, dachte ich, wegen der Anhanggröße, darauf verzichten zu können. Sie ist nun aber, in abgespeckter Form, im Anhang drin, danke für den Hinweis. :)

    Raupi ,

    Du hast recht, aber mein Problem versuchte ich ja in Post #1 (Eingangspost) zu verdeutlichen: :)

    Das, was ich steuern will, wird vielleicht mal 40 oder mehr Case-Anweisungen beinhalten. Und hier fängt das Problem an. Ich kann ja schlecht in jede CASE-Anweisung vor dem $Edit% = GUICtrlCreateEdit() erst rund 40 GUICtrlDelete($Edit1 - 40) platzieren und das dann bei allen 40 CASE-Anweisungen, was runde 160 -x Zeilen Code beinhalten würde. :S

    Je mehr Buttons ich setze und mit Anweisungen oder Funktionen fülle, um so mehr Varianten tauchen auf, wo man zuletzt drin war, und beim Wechsel müßten alle möglichen Stellen, wo man vorher drin war, mit abgedeckt werden 8|

    ich will im Prinzip vermeiden, das dann sowas bei jeder CASE-Anweisung passiert :D


    [autoit]

    Case $hGrandButton_Item_TM10
    $return = _Array2DSearch($Bar_CreateGrandButton_Array,$hGrandButton_Item_TM10,-1,1,0,0,False,True)
    if IsArray($return) Then
    $ButtonText = GUICtrlRead($Bar_CreateGrandButton_Array[StringTrimRight($return[0],2)][6])
    EndIf
    GUICtrlDelete($Edit1)
    GUICtrlDelete($Edit2)
    GUICtrlDelete($Edit3)
    GUICtrlDelete($Edit4)
    GUICtrlDelete($Edit5)
    GUICtrlDelete($Edit6)
    GUICtrlDelete($Edit7)
    GUICtrlDelete($Edit8)
    GUICtrlDelete($Edit9)
    GUICtrlDelete($Edit10)
    GUICtrlDelete($Edit11)
    GUICtrlDelete($Edit12)
    GUICtrlDelete($Edit13) ........

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

    $Edit1 = GUICtrlCreateEdit("", 20, 135, 860, 320, -1)
    GUICtrlSetColor(-1, 0x99B9E3)
    GUICtrlSetBKColor(-1, 0x000000)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 10, 400, 0, "Calibri")

    [/autoit]

    Ideal wäre eine quasi Mini public-Variable a la

    [autoit]

    Case $hGrandButton_Item_TM10
    $return = _Array2DSearch($Bar_CreateGrandButton_Array,$hGrandButton_Item_TM10,-1,1,0,0,False,True)
    if IsArray($return) Then
    $ButtonText = GUICtrlRead($Bar_CreateGrandButton_Array[StringTrimRight($return[0],2)][6])
    EndIf

    public $Edit1 = GUICtrlCreateEdit("", 20, 135, 860, 320, -1)

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

    GUICtrlSetColor(-1, 0x99B9E3)
    GUICtrlSetBKColor(-1, 0x000000)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 10, 400, 0, "Calibri")

    [/autoit]

    die ihre Gültigkeit hätte, solange die CASE-Anweisung aktiv ist :D

    • Offizieller Beitrag

    Bei einer Vielzahl von Controls solltest du dir ein anderes Konzept überlegen. Verwende doch die Controls immer weiter, nur eben mit wechselnden Aufgaben.
    Hast du z.B. 20 verschiedene Aufgaben, die jeweils ein Edit benötigen aber niemals zeitgleich zu sehen sind, dann reicht ein Edit. 20 Labels davor packen (an dieselbe Position) und das aktuell gültige aktivieren. Im Zusammenhang dazu steht dann der aktuelle Editinhalt, den du beim Wechsel ausliest und z.B. (wenn weiter benötigt) in ein Array packst oder gleich verwirfst.

  • wäre eine Funktion eine Alternative ? Vielleicht hab ich grad ne blöde Idee :D

    nehmen wir an, ich müßte 150 Varianten abdecken, und um nun statt 150 GUICtrlDelete() in jede Case-Anweisung einzubauen ( 8o ) , müßte doch einfach auch die Möglichkeit bestehen, das als Funktion zu machen. Also banal gesagt z.B.

    [autoit]

    Func _controlldelete
    GUICtrlDelete($Edit1)
    GUICtrlDelete($Edit2)
    GUICtrlDelete($Edit3)
    ....

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

    GUICtrlDelete($Edit150)
    EndFunc

    [/autoit]

    hätte den Vorteil, Änderungen und Anpassungen nur an einer einzigen Stelle und schlanke CASE-Anweisungen, weil einfach nur das _controlldelete rein käme :D

    um Missverständnisse zu vermeiden, ich könnte mit paar Hundert überflüssiger Zeilen im Source leben, ich such nur halt die schlanke, sinnvolle, effektive und professionelle Lösung *fg

    @BugFix, dank Dir, muß ich nachdenken ( ich knabber noch an Deiner Funktion im Ribbonbeispiel ) , ich weiß Du liebst Arrays :D

  • Anhang ist korrigiert.


    leider bekomme ich immer noch die gleiche Fehlermeldung wie in (Post #9)

    Edit: lag an der Auskommentierung also hier Skriptvorschlag:

    Spoiler anzeigen
    [autoit]

    ; ==== - Includes - =============================================================================================================

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

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiStatusBar.au3>
    #include <Date.au3>
    #include <GuiImageList.au3>
    #include <GuiButton.au3>

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

    #include <UDF_Ribbonbar.au3>
    #NoAutoIt3Execute

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

    Opt("TrayAutoPause", 0)
    Opt("TrayMenuMode", 1)
    ;~ Opt("GuiOnEventMode", 1)
    Opt("TrayOnEventMode", 1)

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

    AdlibRegister("_UpdateTime", 1000)

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

    ; ==== - Parameter - Hauptfenster - =============================================================================================

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

    Global $u_HGUI

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

    Global $u_HGUI_Titel = " " ; Titel des Hauptfensters
    Global $u_HGUI_Version = " " ; Version des Hauptfensters
    Global $u_HGUI_Copy = " " ; Copyright des Hauptfensters

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

    Global $u_HGUI_Name = $u_HGUI_Titel & $u_HGUI_Version & $u_HGUI_Copy ; Gesamttitel des Hauptfenster Programmname, Version und Copyright

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

    Global $u_BGC_blue = 0x99B9E3 ; Hauptfenster Hintergrundfarbe blau

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

    Global $u_HGUI_width = 900 ; Breite des Hauptfensters
    Global $u_HGUI_hight = 600 ; Höhe des Hauptfensters
    Global $u_HGUI_left = -1 ; Abstand vom linken Bildschirmrand
    Global $u_HGUI_top = -1 ; Abstand vom oberen Bildschirmrand

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

    Global $u_STAT_width_1 = 100 ; Breite des 1. Statussegmentes
    Global $u_STAT_width_3 = -1 ; Breite des 3. Statussegmentes
    Global $u_STAT_width_2 = 830 ; Breite des 2. Statussegmentes

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

    Global $u_STAT_parts[3] = [$u_STAT_width_1 , $u_STAT_width_2 , $u_STAT_width_3] ; , $u_STAT_width_4]
    Global $u_STAT_bar ;= _GUICtrlStatusBar_Create($u_HGUI)
    Global $u_STAT_text

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

    Global $Edit1, $Edit2

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

    ; ===============================================================================================================================

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

    ; ==== - Parameter - Hauptfenster - Ribbonbar - =================================================================================

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

    Global $u_RIBTABIT_width = 90 ; Breite eines Ribbontabs
    Global $u_TABBUT_center = $u_RIBTABIT_width -18 ; Position des TABICONS, soll zentriert im Tabitem sein

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

    Global $u_TABIT_TM10 = 'TabItem10' ; Bezeichner Tabitem 0 im Menü 1 ( Start )
    Global $u_TABIT_TM11 = 'TabItem11' ; Bezeichner Tabitem 1 im Menü 1 ( Start )

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

    Global $U_BUTTON_width = 150
    Global $U_BUTTON_height = 80

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

    Global $Pic01

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

    ; ===============================================================================================================================

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

    $u_HGUI = GUICreate ( $u_HGUI_Name , $u_HGUI_width , $u_HGUI_hight , 700 , 50)

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

    GUISetBkColor( $u_BGC_blue ) ; Hauptfenster Hintergrundfarbe blau

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

    $hBar = _RibbonsBar_Create( $u_HGUI, 0, 0, $u_HGUI_width, 0, 'blue')

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

    ; ==== - Definition des Menüs START - ==============================================================================================

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

    $hTab_Start = _RibbonsBar_Create_Tab( $hBar, 'Start' )

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

    ; 10 ==== Gruppe Schriftart ====
    $u_Item_TM10 = _RibbonsBar_Create_TabItem ( $hTab_Start, $u_TABIT_TM10 , $u_RIBTABIT_width )
    $hGrandButton_Item_TM10 = _RibbonsBar_Create_GrandButton($u_Item_TM10,'',14,'Name 0', $u_TABBUT_center) ;,True ) ; großer Button "Einfügen ( True = Pfeil nach unten = Untermenüs )

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

    ; 11 ==== Gruppe Zwischenablage ====
    $u_Item_TM11 = _RibbonsBar_Create_TabItem ( $hTab_Start , $u_TABIT_TM11 , $u_RIBTABIT_width ) ; Gruppenbezeichnung "Zwischenablage"
    $hGrandButton_Item_TM11 = _RibbonsBar_Create_GrandButton($u_Item_TM11,'',15,'Name 1', $u_TABBUT_center) ;,True ) ; großer Button "Einfügen ( True = Preil nach unten = Untermenüs )

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

    ; ==== - ENDE Definition des Menüs START - ============================================================================================

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

    _RibbonsBar_Tab_SetState($hTab_Start);aktiven Tab setzen

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

    ; ==== - Definition der Statuszeile - ==============================================================================================

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

    $u_STAT_bar = _GUICtrlStatusBar_Create($u_HGUI) ; Erstellen der Statuszeile im Hauptfenster
    _GUICtrlStatusBar_SetParts($u_STAT_bar, $u_STAT_parts) ; Aufteilen der Statuszeile in Segmente
    _GUICtrlStatusBar_SetIcon($u_STAT_bar, 0, _WinAPI_LoadShell32Icon(221)) ; Icon zum 1. Segment

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

    _Status("Bereit") ; Anzeige von "Bereit" im 1. Segment
    _UpdateTime()
    $Edit1 = GUICtrlCreateEdit("", 20, 135, 860, 320, -1)
    GUICtrlSetColor(-1, 0x99B9E3)
    GUICtrlSetBKColor(-1, 0x000000)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 10, 400, 0, "Calibri")

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

    $Edit2 = GUICtrlCreateEdit("", 20, 135, 860, 320, -1)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBKColor(-1, 0x99B9E3)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 10, 400, 0, "Calibri")
    GUISetState(@SW_SHOW, $u_HGUI)

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

    ; ==== - CASE-ANWEISUNGEN -> TAB START - =====

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

    While 1
    Switch _RibbonsBar_GetMsg()
    Case -3
    Exit

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

    Case $hGrandButton_Item_TM10
    $return = _Array2DSearch($Bar_CreateGrandButton_Array,$hGrandButton_Item_TM10,-1,1,0,0,False,True)
    if IsArray($return) Then
    $ButtonText = GUICtrlRead($Bar_CreateGrandButton_Array[StringTrimRight($return[0],2)][6])
    EndIf
    GUICtrlSetState($Edit2,$GUI_HIDE)
    GUICtrlSetState($Edit1,$GUI_SHOW)
    ;evtl. Mit GuiCtrlSetData($Edit1,"") leeren
    Case $hGrandButton_Item_TM11
    $return = _Array2DSearch($Bar_CreateGrandButton_Array,$hGrandButton_Item_TM11,-1,1,0,0,False,True)
    if IsArray($return) Then
    $ButtonText = GUICtrlRead($Bar_CreateGrandButton_Array[StringTrimRight($return[0],2)][6])
    EndIf
    GUICtrlSetState($Edit1,$GUI_HIDE)
    GUICtrlSetState($Edit2,$GUI_SHOW)

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

    EndSwitch
    WEnd

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

    ; ==== - ENDE Definition der CASE-Anweisungen - =========================================================================================

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

    ;============== FUNKTIONEN ============================================================================================================================================================================

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

    ; 001 ==== - FUNKTION Programmende - ============================================================================================
    ;
    ;~ ; _Exit() [ schnipp - schnapp ]

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

    Func _Exit()
    OnAutoItExitUnregister("_Exit") ; UnRegisters a function that was called when AutoIt exits
    GUIDelete($u_HGUI)
    Exit
    EndFunc

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

    ; ===============================================================================================================================

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

    ;~ Func _child()
    ;~ Global $hGUI_Child = GUICreate("", $u_HGUI_width, $u_HGUI_hight, 0, 0, $WS_POPUP + $WS_CLIPSIBLINGS, $WS_EX_MDICHILD + $WS_EX_LAYERED, $u_HGUI)
    ;~ GUISetBkColor(0x123456)
    ;~ _WinAPI_SetLayeredWindowAttributes($hGUI_Child, 0x123456, 0xFF)
    ;~ EndFunc

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

    Func _Button_Exit()
    $ButtonExit = GUICtrlCreateButton("Beenden", 100, $u_HGUI_hight -100, $U_BUTTON_width, $U_BUTTON_height, $WS_GROUP) ; Erstellen des "Beenden" Buttons
    GUICtrlSetOnEvent($ButtonExit, "_Exit") ; Beendet die Anwendung beim Drücken des Buttons "Beenden"
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit", $u_HGUI) ; Beendet die Anwendung beim Drücken des X - Buttons
    GUICtrlSetTip(-1, "Programm beenden") ; Tooltipp Programm wird beendet
    $U_IMAGE_buttonexit = _GUIImageList_Create(32, 32, 5, 3)
    _GUIImageList_AddIcon($U_IMAGE_buttonexit, "shell32.dll", 215, True)
    _GUICtrlButton_SetImageList($ButtonExit, $U_IMAGE_buttonexit)
    EndFunc

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

    ; ==== - FUNKTION Statuszeile Info - ============================================================================================
    ;
    ; _Status($U_TEXT_Status_1)

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

    Func _Status($u_STAT_text)
    _GUICtrlStatusBar_SetText($u_STAT_bar, $u_STAT_text) ; Funktion und Formatierung der Textanzeige in der Statuszeile ( hier "bereit" )
    EndFunc

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

    ; ===============================================================================================================================

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

    ; ==== - FUNKTION Statuszeile Uhr - =============================================================================================
    ;
    ; _UpdateTime()

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

    Func _UpdateTime()
    _GUICtrlStatusBar_SetText($u_STAT_bar, " " & @HOUR & ":" & @MIN & ":" & @SEC, 2) ; Funktion und Formatierung der Uhr in der Statuszeile
    EndFunc

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

    ; ===============================================================================================================================

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

    ; ===============================================================================================================================

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

    ;----------------------------------------------------------------------------------------------------------------------
    ;AuthorBugFix ([email='bugfix@autoit.de'][/email])
    ;----------------------------------------------------------------------------------------------------------------------
    Func _Array2DSearch($avArray, $vWhat2Find, $iDim=-1, $iStart=0, $iEnd=0, $iCaseSense=0, $fPartialSearch=False, $1stFound=False)
    Local $error = 0, $1D, $arFound[1]=[0]
    If $1stFound Then $arFound[0] = -1
    If ( Not IsArray($avArray) ) Then
    SetError(1)
    Return 0
    EndIf
    Local $UBound2nd = UBound($avArray,2)
    If @error = 2 Then $1D = True
    If ( $iEnd = 0 ) Or ( $iEnd = -1 ) Then $iEnd = UBound($avArray)-1
    If $iStart = -1 Then $iStart = 0
    If $iCaseSense = -1 Then $iCaseSense = 0
    If $iCaseSense <> 0 Then $iCaseSense = 1
    Select
    Case ( $iDim > $UBound2nd ) Or ( $iDim < -1 )
    $error += 2
    Case ( $iStart < 0 ) Or ( $iStart > UBound($avArray)-1 )
    $error += 4
    Case ( $iEnd < $iStart ) Or ( $iEnd > UBound($avArray)-1 )
    $error += 8
    EndSelect
    If $error <> 0 Then
    SetError($error)
    Return 0
    EndIf
    If $fPartialSearch <> True Then $fPartialSearch = False
    If $1D Then
    For $i = $iStart To $iEnd
    Select
    Case $iCaseSense = 0 And (Not $fPartialSearch)
    If $avArray[$i] = $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And (Not $fPartialSearch)
    If $avArray[$i] == $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 0 And $fPartialSearch
    If StringInStr($avArray[$i], $vWhat2Find) Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And $fPartialSearch
    If StringInStr($avArray[$i], $vWhat2Find, 1) Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    EndSelect
    Next
    Else
    For $i = $iStart To $iEnd
    If $iDim = -1 Then
    Select
    Case $iCaseSense = 0 And (Not $fPartialSearch)
    For $k = 0 To $UBound2nd-1
    If $avArray[$i][$k] = $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    Case $iCaseSense = 1 And (Not $fPartialSearch)
    For $k = 0 To $UBound2nd-1
    If $avArray[$i][$k] == $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    Case $iCaseSense = 0 And $fPartialSearch
    For $k = 0 To $UBound2nd-1
    If StringInStr($avArray[$i][$k], $vWhat2Find) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    Case $iCaseSense = 1 And $fPartialSearch
    For $k = 0 To $UBound2nd-1
    If StringInStr($avArray[$i][$k], $vWhat2Find, 1) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    EndSelect
    Else
    Select
    Case $iCaseSense = 0 And (Not $fPartialSearch)
    If $avArray[$i][$iDim] = $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And (Not $fPartialSearch)
    If $avArray[$i][$iDim] == $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 0 And $fPartialSearch
    If StringInStr($avArray[$i][$iDim], $vWhat2Find) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And $fPartialSearch
    If StringInStr($avArray[$i][$iDim], $vWhat2Find, 1) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    EndSelect
    EndIf
    Next
    EndIf
    Return $arFound
    EndFunc ;==>_Array2DSearch

    [/autoit]

    mfg autoBert

  • autoBert, zuerst einmal danke für Deine Hilfestellung, ich habe mich daran mal orientiert und einige Zeit rumgefrickelt

    im Großen und Ganzen bin ich mit dem Ergebnis zufrieden, es funktioniert, einzig beim Wechsel zwischen den TAB's flackert es immer noch ( warum auch immer ) ?(

    Spoiler anzeigen
    [autoit]

    ; ==== - Fortsetzung des Programms - ==============================================================================================================================================================================================

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

    _Status("Bereit") ; Anzeige von "Bereit" im 1. Segment
    _UpdateTime()

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

    $Label00 = GUICtrlCreateLabel("", 20, 143, 1160, 710, 0x1000)
    GUICtrlSetBKColor(-1, $u_BGC_blue )

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

    $Label10 = GUICtrlCreateLabel("", 20, 143, 1160, 710, 0x1000)
    GUICtrlSetBKColor(-1, 0xF0F0F0 )
    $Group10 = GUICtrlCreateGroup(" ", 30, 147, 1140, 695)
    GUICtrlSetBkColor(-1, 0xF0F0F0)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")

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

    $Label20 = GUICtrlCreateLabel("", 20, 143, 1160, 710, 0x1000)
    GUICtrlSetBKColor(-1, 0xF0F0F0 )
    $Group20 = GUICtrlCreateGroup(" Systemprüfungen ", 30, 147, 1140, 695)
    GUICtrlSetBkColor(-1, 0xF0F0F0)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")

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

    $Label30 = GUICtrlCreateLabel("", 20, 143, 1160, 710, 0x1000)
    GUICtrlSetBKColor(-1, 0xF0F0F0 )
    $Group30 = GUICtrlCreateGroup(" Softwareprüfungen ", 30, 147, 1140, 695)
    GUICtrlSetBkColor(-1, 0xF0F0F0)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")

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

    $Pic10 = GUICtrlCreatePic("BG_gruen.jpg", 20, 143, 1160, 710, 0x1000)

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

    _RibbonsBar_Tab_SetState($hTab_Start);aktiven Tab setzen

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

    GUISetState(@SW_SHOW, $u_HGUI)

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

    ; ==== - CASE - Anweisungen - =====================================================================================================================================================================================================

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

    While 1
    Switch _RibbonsBar_GetMsg()
    Case -3
    Exit

    ; ==== CASE START ====
    Case $hTab_START
    _RibbonsBar_Tab_SetState($hTab_START)
    GUICtrlSetState($Label10,$GUI_HIDE)
    GUICtrlSetState($Group10,$GUI_HIDE)
    GUICtrlSetState($Label20,$GUI_HIDE)
    GUICtrlSetState($Group20,$GUI_HIDE)
    GUICtrlSetState($Label30,$GUI_HIDE)
    GUICtrlSetState($Group30,$GUI_HIDE)
    GUICtrlSetState($Pic10,$GUI_SHOW)

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

    Case $hGrandButton_Item_TM10
    $return = _Array2DSearch($Bar_CreateGrandButton_Array,$hGrandButton_Item_TM10,-1,1,0,0,False,True)
    if IsArray($return) Then
    $ButtonText = GUICtrlRead($Bar_CreateGrandButton_Array[StringTrimRight($return[0],2)][6])
    EndIf

    Case $hGrandButton_Item_TM11
    $return = _Array2DSearch($Bar_CreateGrandButton_Array,$hGrandButton_Item_TM11,-1,1,0,0,False,True)
    if IsArray($return) Then
    $ButtonText = GUICtrlRead($Bar_CreateGrandButton_Array[StringTrimRight($return[0],2)][6])
    EndIf
    GUICtrlSetState($Pic10,$GUI_HIDE)
    GUICtrlSetState($Label30,$GUI_HIDE)
    GUICtrlSetState($Group30,$GUI_HIDE)
    GUICtrlSetState($Label20,$GUI_HIDE)
    GUICtrlSetState($Group20,$GUI_HIDE)
    GUICtrlSetState($Label10,$GUI_SHOW)
    GUICtrlSetState($Group10,$GUI_SHOW)

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

    Case $hGrandButton_Item_TM19
    $return = _Array2DSearch($Bar_CreateGrandButton_Array,$hGrandButton_Item_TM19,-1,1,0,0,False,True)
    if IsArray($return) Then
    $ButtonText = GUICtrlRead($Bar_CreateGrandButton_Array[StringTrimRight($return[0],2)][6])
    EndIf
    _Exit()

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

    ; ==== CASE HAREDWARE ====
    Case $hTab_HARDWARE
    _RibbonsBar_Tab_SetState($hTab_HARDWARE)
    GUICtrlSetState($Label30,$GUI_HIDE)
    GUICtrlSetState($Group30,$GUI_HIDE)
    GUICtrlSetState($Label20,$GUI_HIDE)
    GUICtrlSetState($Group20,$GUI_HIDE)
    GUICtrlSetState($Label10,$GUI_HIDE)
    GUICtrlSetState($Group10,$GUI_HIDE)
    GUICtrlSetState($Pic10,$GUI_SHOW)

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

    Case $hGrandButton_Item_TM20
    $return = _Array2DSearch($Bar_CreateGrandButton_Array,$hGrandButton_Item_TM20,-1,1,0,0,False,True)
    if IsArray($return) Then
    $ButtonText = GUICtrlRead($Bar_CreateGrandButton_Array[StringTrimRight($return[0],2)][6])
    EndIf
    GUICtrlSetState($Pic10,$GUI_HIDE)
    GUICtrlSetState($Label10,$GUI_HIDE)
    GUICtrlSetState($Group10,$GUI_HIDE)
    GUICtrlSetState($Label30,$GUI_HIDE)
    GUICtrlSetState($Group30,$GUI_HIDE)
    GUICtrlSetState($Label20,$GUI_SHOW)
    GUICtrlSetState($Group20,$GUI_SHOW)

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

    ; ==== CASE SOFTWARE ====
    Case $hTab_SOFTWARE
    _RibbonsBar_Tab_SetState($hTab_SOFTWARE)
    GUICtrlSetState($Label30,$GUI_HIDE)
    GUICtrlSetState($Group30,$GUI_HIDE)
    GUICtrlSetState($Label20,$GUI_HIDE)
    GUICtrlSetState($Group20,$GUI_HIDE)
    GUICtrlSetState($Label10,$GUI_HIDE)
    GUICtrlSetState($Group10,$GUI_HIDE)
    GUICtrlSetState($Pic10,$GUI_SHOW)

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

    Case $hGrandButton_Item_TM30
    $return = _Array2DSearch($Bar_CreateGrandButton_Array,$hGrandButton_Item_TM30,-1,1,0,0,False,True)
    if IsArray($return) Then
    $ButtonText = GUICtrlRead($Bar_CreateGrandButton_Array[StringTrimRight($return[0],2)][6])
    EndIf
    GUICtrlSetState($Pic10,$GUI_HIDE)
    GUICtrlSetState($Label10,$GUI_HIDE)
    GUICtrlSetState($Group10,$GUI_HIDE)
    GUICtrlSetState($Label20,$GUI_HIDE)
    GUICtrlSetState($Group20,$GUI_HIDE)
    GUICtrlSetState($Label30,$GUI_SHOW)
    GUICtrlSetState($Group30,$GUI_SHOW)

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

    ; etc.

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

    EndSwitch
    WEnd

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

    ; ==== - ENDE CASE - Anweisungen - ================================================================================================================================================================================================

    [/autoit]

    im Moment sind ja nur 3 der Buttons belegt, ich mag mir gar nicht ausmalen, wann ich die Übersicht verliere, wenn ich 15 - 20 Buttons belegt habe :D

  • jetzt hätt ich noch ne Frag zu switch.

    muß das nicht noch durch eine Variable eingeleitet werden ?

    mein Beispiel :

    [autoit]

    While 1

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

    Switch _RibbonsBar_GetMsg() ; <-- hier

    Case -3
    Exit

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

    Case $hGrandButton_Item_TM10
    $return = _Array2DSearch($Bar_CreateGrandButton_Array,$hGrandButton_Item_TM10,-1,1,0,0,False,True)
    if IsArray($return) Then
    $ButtonText = GUICtrlRead($Bar_CreateGrandButton_Array[StringTrimRight($return[0],2)][6])
    EndIf
    GUICtrlSetState($Edit2,$GUI_HIDE)
    GUICtrlSetState($Edit1,$GUI_SHOW)
    ;evtl. Mit GuiCtrlSetData($Edit1,"") leeren
    Case $hGrandButton_Item_TM11
    $return = _Array2DSearch($Bar_CreateGrandButton_Array,$hGrandButton_Item_TM11,-1,1,0,0,False,True)
    if IsArray($return) Then
    $ButtonText = GUICtrlRead($Bar_CreateGrandButton_Array[StringTrimRight($return[0],2)][6])
    EndIf
    GUICtrlSetState($Edit1,$GUI_HIDE)
    GUICtrlSetState($Edit2,$GUI_SHOW)

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

    EndSwitch
    WEnd

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

    vergleiche anderes Beispiel, hier wird vor der Switch-Anweisung ja erst mal eine Variable zugewiesen :

    [autoit]

    While 1

    $nMsg = GUIGetMsg() ; < --- hier
    Switch $nMsg

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

    Case $GUI_EVENT_PRIMARYDOWN
    $ctrlMsg = GUIGetCursorInfo()
    ToolTip($ctrlMsg[0] & "," & $ctrlMsg[1])
    Case $GUI_EVENT_CLOSE
    _GDI_close()
    Exit
    EndSwitch
    _GDIPlus_GraphicsDrawImage($hGraphics, $hBitmap, $x0, $y0); Backbuffer in den Frontbuffer übertragen
    WEnd

    [/autoit]
    • Offizieller Beitrag
    [autoit]

    Switch _RibbonsBar_GetMsg()

    [/autoit]


    ist schon richtig.

    [autoit]

    $nMsg = GUIGetMsg()
    Switch $nMsg

    [/autoit]


    funzt auch und

    [autoit]

    switch GUIGetMsg()

    [/autoit]


    funzt genau so.

    [autoit]

    $nMsg = GUIGetMsg()
    Switch $nMsg

    [/autoit]


    hat den Vorteil das man auch innerhalb des Switch.. Case... Endswitch Blockes mit der Variable $nMsg arbeiten kann.
    Man kann ja auch mehrer Case Auswahlen kombinieren z.B.

    [autoit]

    Case $edit1,$Edit2,$Edit3

    [/autoit]


    und dann ist es eventuell nötig, rauszubekommen von welchem Control ein Event gesendet wurde.

    Edit hier mal ein Beispiel warum die vorherige zuweisung von GUIGetMsg an eine Variable sinnvoll sein kann:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    Opt('MustDeclareVars', 1)

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

    Global $iposX[10] = [5, 90, 175, 260, 345, 430, 515, 600, 685, 770]
    Global $iposY[4] = [10, 45, 80, 115]
    Global $hButton[40]
    Global $iNum = 0, $nMsg, $hBeenden
    Global $aButton[40] = ["Button 1", "Button 2", "Button 3", "Button 4", "Button 5", "Button 6", "Button 7", "Button 8", "Button 9", "Button 10", _
    "Button 11", "Button 12", "Button 13", "Button 14", "Button 15", "Button 16", "Button 17", "Button 18", "Button 19", "Button 20", _
    "Button 21", "Button 22", "Button 23", "Button 24", "Button 25", "Button 26", "Button 27", "Button 28", "Button 29", "Button 30", _
    "Button 31", "Button 32", "Button 33", "Button 34", "Button 35", "Button 36", "Button 37", "Button 38", "Button 39", "Button 40"]
    GUICreate("Testgui", 860, 220 - 1, -1)

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

    For $i = 0 To 3; Schleife für die Reihen
    For $j = 0 To 9;Schleife für Buttons in Reihe
    $iNum = ($i * 10) + $j
    $hButton[$iNum] = GUICtrlCreateButton($aButton[$iNum], $iposX[$j], $iposY[$i], 80, 30)
    Next
    Next
    $hBeenden = GUICtrlCreateButton("Beenden", 375, 170, 100, 30)

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

    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $hButton[0] To $hButton[39]
    Local $iTmp
    $iTmp = $nMsg - $hButton[0] + 1; Auswerten des gewählten Button +1 damit der 1. Button nicht 0 sondern 1 ist
    _FuncmitParametern($iTmp) ; aufruf der Function mit übergabe der Buttonnummer
    Case $GUI_EVENT_CLOSE, $hBeenden
    Exit
    EndSwitch
    WEnd

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

    Func _Button()
    Local $iTmp
    $iTmp = @GUI_CtrlId - $hButton[0] + 1; Auswerten des gewählten Button +1 damit der 1. Button nicht 0 sondern 1 ist
    _FuncmitParametern($iTmp) ; aufruf der Function mit übergabe der Buttonnummer
    EndFunc ;==>_Button

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

    Func _Ende()
    Exit
    EndFunc ;==>_Ende

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

    Func _FuncmitParametern($iPara)
    MsgBox(0, "Info", "Es wurde Button " & $iPara & " gedrückt")
    EndFunc ;==>_FuncmitParamete

    [/autoit]