Events bei "Tab"?

  • Für ein neues Programm habe ich auf einer GUI zwei Tabs integriert:

    $TabGen = GUICreate("StLiGen", 500, 600, 300, 100)

    $tab = GUICtrlCreateTab(0, 80, 500, 520)

    ...

    $tab1 = GUICtrlCreateTabItem("Kalkulation")

    Nun hätte ich gern, dass bei der Anwahl der Tab "Kalkulation" bereits eine Aktion stattfindet -

    z.B. das Ausfüllen einer ListBox mit Daten:

    GUICtrlSetOnEvent($tab1, "PS_List")

    bringt aber leider kein Event, d.h. das UP "PS_List" wird nicht angesprungen.

    Vor einiger Zeit hatte ich mich zwar schon mal ausgiebig mit den "Control-Events inAutoIt" beschäftigt ->

    http://www.ps-blnkd.de/Control_Events_AutoIt.pdf -

    nur eben noch nicht mit den Tabs auf einer GUI.

    In der AutoIt-Hilfe habe ich nichts dazu gefunden ...

    War damit schon mal jemand erfolgreich?

    Grüsse aus Berlin

    PSblnkd

  • BugFix

    Vielen Dank für Deine umgehende Antwort.

    In dem von Dir angegebenen Hilfe-Beispiel kann ich keine Event-Aktivierung erkennen ...

    Was meinst Du mit "auf die Tab-ID reagieren"? -> $tab bzw. $tab1 habe ich doch in GUICtrlSetOnEvent($tab1, "PS_List") verwendet - leider erfolglos .

    Eine "Hilfslösung" mit Button ist derzeit auch im Einsatz. Es wäre aber viel eleganter, wenn beim Click auf die Tab gleich eine Reaktion ausgelöst werden könnte (wie bei den anderen Controls) -

    oder geht das beim Tab-Control prinzipiell nicht?

    Grüsse aus Berlin

    PSblnkd

    • Offizieller Beitrag

    Bsp.:

  • Hallo PSblnkd,

    wie du an folgendem Beispiel:

    ,anhand von Tab2, siehst reagieren TabItems nicht auf ein zugeordnetes Event. Du musst also dem Tab ein Event zuordnen und mit Hilfe von GuiCtrlRead ermitteln welches TabItem aktiviert wurde. In obigem Beispiel wird guinness in der Combo beim wechseln auf Tab1 ausgewählt.

    mfg (auto-)Bert

    Einmal editiert, zuletzt von autoBert (13. Januar 2020 um 14:29)

  • BugFix

    autoBert

    Danke für Eure Bemühungen - habe ich jetzt getestet.

    Entscheidend war das, was im BugFix-Code steht:

    GUICtrlSetOnEvent(-1, '_TabEvent')

    muss gleich nach der allgemeinen Tab-Definition

    $IDTab = GUICtrlCreateTab(10, 10, 300, 150)

    stehen und nicht erst nach der betreffenden, z.B.:

    $TabItem1 = GUICtrlCreateTabItem('Item 1').

    Dann geht die Event-Funktionalität auch für Tab, allerdings mit der Einschränkung, dass diese bei jedem Tab-Wechsel auftritt. Deshalb ist dann auch eine diesbezügliche Auswertung notwendig (wie im BugFix-Code angegeben).

    Da das aber nicht wesentlich einfacher ist, werde ich bei der "Button-Hilfslösung" bleiben ...

    Aber danke für den Erkenntnisgewinn!

    Es wäre vorteilhaft, das in der AutoIt-Hilfe einzuarbeiten ...

    Grüsse aus Berlin

    PSblnkd