1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Blubkuh

Beiträge von Blubkuh

  • Listview flackert beim einlesen von Daten

    • Blubkuh
    • 13. März 2014 um 21:03
    Zitat von Friesel

    Moin!

    Ich hab mir dein Skript zwar jetzt nicht so genau angesehen, weil ich es in Ermangelung an Datenbanken auch nicht testen kann,
    aber ich habe mal ein kurzes Beispiel zu _GUICtrlListView_BeginUpdate und _GUICtrlListView_EndUpdate.

    Da Flackert zwar nichts, aber die Unterschiede sind emorm. Am Schluss hab ich noch ein Beispiel zu _GUICtrlListView_AddArray angefügt, was nochmal nen Tacken schneller ist, allerdings nicht so flexibel. Du kannst die Funktion aber nach deinen Vorlieben anpassen, was ich selbst schon getan habe.

    Skript

    Spoiler anzeigen
    [autoit]

    #include <GuiListView.au3>

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

    GUICreate("ListView", 200, 600)
    $hListView = GUICtrlCreateListView("Spalte 1| Spalte 2", 0, 0, 200, 600)

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

    $iEingabe = InputBox("", "Anzahl der Elemente eingeben:", "1000")
    If $iEingabe = "" Then Exit

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

    GUISetState()

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

    _FillListView($iEingabe)

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

    do
    Until GUIGetMsg() = -3

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

    Func _FillListView($iItems)
    Local $aItem[$iItems][2]
    For $i = 0 To $iItems - 1
    $aItem[$i][0] = StringFormat("Zeile Nr. %04s", $i)
    $aItem[$i][1] = "Sinnloses Zeug"
    Next

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

    $iBegin = TimerInit()
    For $i = 0 To $iItems - 1
    GUICtrlCreateListViewItem($aItem[$i][0] & "|" & $aItem[$i][1], $hListView)
    Next
    MsgBox(0, "", "Dauer zum Befüllen des ListViews mit " & $iItems & " Items: " & TimerDiff($iBegin) / 1000 & " Sekunden")

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

    _GUICtrlListView_BeginUpdate($hListView)
    _GUICtrlListView_DeleteAllItems($hListView)
    _GUICtrlListView_EndUpdate($hListView)

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

    $iBegin = TimerInit()
    _GUICtrlListView_BeginUpdate($hListView)
    For $i = 0 To $iItems - 1
    GUICtrlCreateListViewItem($aItem[$i][0] & "|" & $aItem[$i][1], $hListView)
    Next
    _GUICtrlListView_EndUpdate($hListView)
    MsgBox(0, "", "Dauer zum Befüllen des ListViews mit " & $iItems & " Items: " & TimerDiff($iBegin) / 1000 & " Sekunden")

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

    _GUICtrlListView_BeginUpdate($hListView)
    _GUICtrlListView_DeleteAllItems($hListView)
    _GUICtrlListView_EndUpdate($hListView)

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

    $iBegin = TimerInit()
    _GUICtrlListView_BeginUpdate($hListView)
    _GUICtrlListView_AddArray($hListView, $aItem)
    _GUICtrlListView_EndUpdate($hListView)
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hListView, 1, $LVSCW_AUTOSIZE)

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

    MsgBox(0, "", "Dauer zum Befüllen des ListViews mit " & $iItems & " Items: " & TimerDiff($iBegin) / 1000 & " Sekunden")
    EndFunc

    [/autoit]

    Sanfte Grüße :D

    Alles anzeigen


    Hey super vielen Dank für die Beispiele. das scheint ja wirklich gut zu klappen in dem Fall.
    Ich war auch schon angefangen etwas in der Art zu scripten was deinem 3. Beispiel entspricht.

    Leider bin ich da jetzt auf ein Problem gestoßen was für mich keinen Sinn ergibt.
    Im ArrayDisplay() ist noch alles super ABER dann:
    _GUICtrlListView_AddArray($hListView, $aItem) liest die ersten 3 Zeilen richtig ein und dann bei der 4. Zeile ist die erste Spalte noch richtig(Kundennummer) aber dann folgt der Name eines total falschen Kunden der an die Stelle garnicht hingehört und dann werden plötzlich nurnoch die Kundennummern übernommen(1. Spalte) und die anderen 5 Spalten bleiben leer.
    Ganz am Ende ist dann plötzlich bei den letzten ~5 Kunden wieder alles in Ordnung :?:

    Soo... Wie könnt Ihr mir nun helfen ohne dass ich euch die Datenbank mit den ganzen Kundendaten posten muss? ^^


    BTW: In deinem Beispiel kannst du vor und nach _GUICtrlListView_AddArray() die _GUICtrlListView_BeginUpdate($hListView) bzw _GUICtrlListView_EndUpdate($hListView) wegmachen, weil die Funktion intern das Beginnupdate aufruft und beendet :)

  • _ArrayDisplay mit Columntitle verwenden

    • Blubkuh
    • 13. März 2014 um 20:38

    So wie ich das sehe hast du nur 8 Spaltennamen angegeben. Liegt vielleicht daran? Kann das leider grade nicht selber testen

  • Listview flackert beim einlesen von Daten

    • Blubkuh
    • 13. März 2014 um 17:31
    Zitat von Torni

    schon den ex-style: $LVS_EX_DOUBLEBUFFER ausprobiert??

    Danke den kannte ich nicht. hat aber leider garnichts geändert :)

  • Listview flackert beim einlesen von Daten

    • Blubkuh
    • 13. März 2014 um 15:17
    Zitat von Grandpa

    Hi,

    ich habe es jetzt nicht getestet. Aber mein erster Versuch wäre, die Differenz aus dem ListViewInhalt und dem neuen Array zu ermitteln und anschließend nur diese Differenz hinzuzufügen oder aus der Liste zu entfernen. Am einfachsten ist es, wenn du das mit zwei Array's machst. Geht am schnellsten.

    Array1 = aktuelle Datensätze im Listview
    Array2 = wird durch _SQLite_GetTable2D gefüllt


    Hört sich nach einer guten Idee an.
    Aktuelle Datensätze einlesen ist kein Problem. das 2. Array mit aktuellen Daten auffüllen ist auch easy.
    Aber dann gehts los. Jeden Eintrag vergleichen und das wenn die Einträge evtl nicht in der gleichen Reihenfolge sind. Dann herausfinden welche Daten komplett neu sind diese zum Listview hinzufügen und die Daten die Sich geändert haben(z.B. nur die Telefonnummer eines Kunden) updaten.

    Hört sich nach verdammt viel Arbeit an wo ich noch nicht wirklich nen Plan habe ob sich das wirklich umzusetzen lohnt.


    Habe btw mal nen Video von dem Flackern gemacht. Im ersten Durchlauf benutze ich _GUICtrlListView_BeginUpdate() und danach sieht man wie ich das durch @GUI_hide austausche und lasse dann nochmal nen durchlauf machen.
    https://www.youtube.com/watch?v=EpGcYgujUBE&feature=youtu.be

  • Listview flackert beim einlesen von Daten

    • Blubkuh
    • 13. März 2014 um 14:34

    Habs grade nochmals mit dem BeginnUpdate probiert und das sieht im Prinzip gleich aus wie als wenn ich die ListView hide. Flackern bleibt leider vorhanden. Ich schätze das das einfach an der Großen Menge an Listvieweinträgen liegt und das das nicht schöner gemacht werden kann.

  • Listview flackert beim einlesen von Daten

    • Blubkuh
    • 13. März 2014 um 14:28
    Zitat von Blubkuh

    Habe schon versucht mit _GUICtrlListView_BeginUpdate() zu arbeiten aber das hatte irgendwie garkeinen effekt.

    Zitat von YaeroxXO
    [autoit]

    _GUICtrlListView_BeginUpdate

    [/autoit]

    und

    [autoit]

    _GUICtrlListView_EndUpdate

    [/autoit]

    mal ausprobieren ;)

    Dann bräuchtest du dein HIDE/SHOW auch net mehr...

    Wie gesagt: Hatte 0 Effekt Listview hat trotzdem angezeigt wie daten in die Tabelle geschrieben wurden und auch geflackert.
    Kann es gerne nochmals probieren aber ich glaub nicht, dass ich da was falsche gemacht habe

  • Listview flackert beim einlesen von Daten

    • Blubkuh
    • 13. März 2014 um 14:18

    Wie schon in der Überschrift beschrieben habe ich ein Problem mit dem einlesen von Kunden in ein Listview.
    Problem ist das das Listview anfängt zu flackern während die Daten in das Listview geschrieben werden.
    Außerdem dauert es relativ lange bis alle Einträge angezeigt werden.

    Habe mit $GUI_HIDE und $GUI_SHOW es hinbekommen, dass die Tabelle sehr viel schneller angezeigt wird und das flackern sehr verringert wird.

    Ich lese ca 1000 Kundendaten in das erste Listview welches wohl das flackern hervorruft.
    Habe schon versucht mit _GUICtrlListView_BeginUpdate() zu arbeiten aber das hatte irgendwie garkeinen effekt.

    Ich kann hier natürlich keine Kundendatenposten deshalb hoffe ich das dieser Code-Schnipsel genügt um mir zu helfen :)

    Spoiler anzeigen
    [autoit]

    Func LV_update()

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

    GUICtrlSetState($ListView1, $GUI_HIDE)
    GUICtrlSetState($ListView2, $GUI_HIDE)
    GUICtrlSetState($ListView3, $GUI_HIDE)
    GUICtrlSetState($ListView4, $GUI_HIDE)

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

    _GUICtrlListView_DeleteAllItems($ListView1)
    _SQLite_Exec(-1, "Create table if not exists Kunden (KdNr,Name,Straße,PLZ,Ort);")
    _SQLite_GetTable2d(-1, "Select * From Kunden", $aResult, $iRows, $iColumns)

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

    For $iR = 1 To $iRows
    $sItem = ""
    For $iC = 0 To $iColumns - 1
    $sItem &= $aResult[$iR][$iC] & "|"
    Next
    GUICtrlCreateListViewItem(StringTrimRight($sItem, 1), $ListView1)

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

    Next
    $fSortSense1 = False
    _GUICtrlListView_SimpleSort($ListView1, $fSortSense1, 0)

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

    _SQLite_Exec(-1, "Create table if not exists Geräte (GID,Bezeichnung,Typ,Hersteller,SNr,Eigentümer,Standort);")
    _SQLite_GetTable2d(-1, "Select GID,Bezeichnung,Typ,Hersteller,SNr,Eigentümer,Standort From Geräte Where Eigentümer = 'Werkstatt' and not Standort = 'Werkstatt'", $aResult, $iRows, $iColumns)
    _GUICtrlListView_DeleteAllItems($ListView2)
    For $iR = 1 To $iRows
    $sItem = ""
    For $iC = 0 To $iColumns - 1
    $sItem &= $aResult[$iR][$iC] & "|"
    Next
    GUICtrlCreateListViewItem(StringTrimRight($sItem, 1), $ListView2)
    _SetItemColor(-1, 0xFFFF33)
    Next

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

    _SQLite_GetTable2d(-1, "Select GID,Bezeichnung,Typ,Hersteller,SNr,Eigentümer,Standort From Geräte Where not Standort = Eigentümer and not Standort ='Werkstatt' and not Eigentümer ='Werkstatt'", $aResult, $iRows, $iColumns)

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

    For $iR = 1 To $iRows
    $sItem = ""
    For $iC = 0 To $iColumns - 1
    $sItem &= $aResult[$iR][$iC] & "|"
    Next
    GUICtrlCreateListViewItem(StringTrimRight($sItem, 1), $ListView2)
    _SetItemColor(-1, 0xFF6600)
    Next

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

    _SQLite_GetTable2d(-1, "Select GID,Bezeichnung,Typ,Hersteller,SNr,Eigentümer,Standort From Geräte Where Standort ='Werkstatt' and Eigentümer ='Werkstatt'", $aResult, $iRows, $iColumns)

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

    For $iR = 1 To $iRows
    $sItem = ""
    For $iC = 0 To $iColumns - 1
    $sItem &= $aResult[$iR][$iC] & "|"
    Next
    GUICtrlCreateListViewItem(StringTrimRight($sItem, 1), $ListView2)
    _SetItemColor(-1, 0x99FF33)
    Next
    $fSortSense2 = False
    _GUICtrlListView_SimpleSort($ListView2, $fSortSense2, 0)

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

    _SQLite_Exec(-1, "Create table if not exists Geräte (GID,Bezeichnung,Typ,Hersteller,SNr,Eigentümer,Standort);")
    _SQLite_GetTable2d(-1, "Select GID,Bezeichnung,Typ,Hersteller,SNr,Eigentümer,Standort From Geräte Where Not Eigentümer = 'Werkstatt' And Not Eigentümer = Standort And Standort ='Werkstatt'", $aResult, $iRows, $iColumns)
    _GUICtrlListView_DeleteAllItems($ListView3)
    For $iR = 1 To $iRows
    $sItem = ""
    For $iC = 0 To $iColumns - 1
    $sItem &= $aResult[$iR][$iC] & "|"
    Next
    GUICtrlCreateListViewItem(StringTrimRight($sItem, 1), $ListView3)
    Next
    $fSortSense3 = False
    _GUICtrlListView_SimpleSort($ListView3, $fSortSense3, 0)

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

    _SQLite_Exec(-1, "Create table if not exists Geräte (GID,Bezeichnung,Typ,Hersteller,SNr,Eigentümer,Standort);")
    _SQLite_GetTable2d(-1, "Select GID,Bezeichnung,Typ,Hersteller,SNr,Eigentümer,Standort From Geräte", $aResult, $iRows, $iColumns)
    _GUICtrlListView_DeleteAllItems($ListView4)
    For $iR = 1 To $iRows
    $sItem = ""
    For $iC = 0 To $iColumns - 1
    $sItem &= $aResult[$iR][$iC] & "|"
    Next
    GUICtrlCreateListViewItem(StringTrimRight($sItem, 1), $ListView4)
    Next
    $fSortSense4 = False
    _GUICtrlListView_SimpleSort($ListView4, $fSortSense4, 0)

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

    GUICtrlCreateTabItem("")

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

    GUICtrlSetState($ListView1, $GUI_SHOW)
    GUICtrlSetState($ListView2, $GUI_SHOW)
    GUICtrlSetState($ListView3, $GUI_SHOW)
    GUICtrlSetState($ListView4, $GUI_SHOW)
    EndFunc ;==>LV_update

    [/autoit]
  • Hilfe bei TCP Script

    • Blubkuh
    • 12. März 2014 um 19:06
    Zitat von letsgo

    Probier mal die IP des Servers auf 127.0.0.1 zu setzen (also auf deinen eigenen PC zurück) und schau dann, ob der Fehler auftritt. Ansonsten die Ports bei der fritzbox (oder deinem Router eben) freigeben und schauen ob es dann funktioniert


    127.0.0.1 hatte ich vorher schon probiert und da ging es auch nicht. Zugriff auf den Router habe ich leider nicht also kann ich ned gucken ob Ports offen/gescglossen sind.
    Habe grade diverse online Portscanner ausprobiert und die sagen sogar, dass mein Port 80 angeblich geschlossen ist/nicht reagiert ^^

    Naja vielleicht liegt das ja an meinem Router und das Script funktioniert beim OP

  • Hilfe bei TCP Script

    • Blubkuh
    • 12. März 2014 um 18:30
    Zitat von letsgo

    Der Fehler liegt beim Serverscipt.

    [autoit]


    $mainsocket = TCPListen( $ip, 4321)

    [/autoit]


    sollte vor der While-Schleife einmal ausgeführt werden und nicht in der While-Schleife. Sonst wird der Socket ja hunderte male pro Sekunde geöffnet und da er ja dann schon geöffnet ist, gibt das nen Fehler.

    Das war mir auch schon aufgefallen und hatte ich vergessen in meiner Nachricht zu schreiben. funktioniert (zumindest bei mir) trotzdem nicht. $acceptsocket gibt bei mir -1 mit oben genannten @error aus

  • Hilfe bei TCP Script

    • Blubkuh
    • 12. März 2014 um 17:46
    [autoit]

    If $socket = -1 Then
    MsgBox(0, "Verbindungsfehler", "Verbingdungsaufbau zum Server gescheitert")
    EndIf

    [/autoit]

    Kann dir zwar bei diesem Thema nicht helfen weil ich mich nicht wirklich damit auskenne aber kann $socket nich auch als Fehler 0 sein?
    Da wäre es dann doch besser auf @error zu checken anstatt auf $socket

    Edit: $acceptsocket ist bei mir immer -1
    Hab grad deine scripts mal ausgeführt und nach

    [autoit]

    Global $acceptsocket = TCPAccept( $mainsocket)

    [/autoit]


    ist @error = 10038

    Mal nachgeguckt was der @error heisst:
    WSAENOTSOCK10038
    Socket operation on nonsocket.
    An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid.

    Keine Ahnung ob das daran liegt das ich was falsch gemacht habe oder ob was im Script ned stimmt ;)

    Ich schätze mal, dass der Fehler bei mir irgendwo zwischen meiner Tastatur und dem Stuhl zu finden ist.
    Wahrscheinlich ist bei mir der Port zu oder sowas :P

    Apropo geschlossene Ports. Schonmal ohne eingeschaltetes Antiviren Programm getestet? Die könnten ja auch eventuell Ports blocken.
    Aber wie gesagt: Ich kenn mich da nicht aus ^^

  • Autoit SSH per Plink

    • Blubkuh
    • 11. März 2014 um 16:55

    Schau dir mal Send() bzw ControlSend() an. Sollte damit eigentlich gehen

  • ~(Tilde) Zeichen aus Pfad entfernen

    • Blubkuh
    • 11. März 2014 um 02:30

    Ah super. Gut zu wissen.

    Ich habe allerdings auch gegoogled und nichs passendes gefunden.
    Die Funktion sollte eher PathGetLongName heißen. Dann isses einfacher zu finden :D

  • ~(Tilde) Zeichen aus Pfad entfernen

    • Blubkuh
    • 11. März 2014 um 00:22

    so?

    Spoiler anzeigen
    [autoit]

    $pfad= "C:\test~"
    $pfad2 = StringReplace($pfad,"~","")
    MsgBox(0,"",$pfad2)

    [/autoit]

    Edit: Ich glaub ich versteh jetzt was du meinst.
    Werden Die Pfadnamen durch ~ ersetzt und du möchtest aber den kompletten Pfad auslesen?
    also z.B.: "c:\progra~1\" hast du aber du brauchst: "c:\program files\"?

    Da muss ich auch mal 5 Minuten drüber nachdenken ^^

  • hover Funktion

    • Blubkuh
    • 10. März 2014 um 20:27
    Zitat von chRoNiix

    So jetzt funktioniert soweit alles :) danke :thumbup:
    (ich hab jetzt einfach mit einzelnen Variablen weiter gemacht, weil ich das nicht nochmal neu machen wollte.)

    Wie müsste ich jetzt vorgehen, wenn ich "hover-funktionen" auf die neuen buttons auf den einzelnen Seiten hinzufügen möchte, sodass sich zb die Größe des Buttons ändert ?

    Du musst in der While Schleife die Position und Größe des Buttons über dem du Hoverst erfassen[ControlGetPos()] und dann mit diesen Werten GUICtrlSetPos() benutzen um die Position und Größe des Buttons zu ändern. Sobald man nichtmehr über dem Button hovert muss der Button dann natürlich wieder an die alte Position mit alter Größe zurück.

    Wenn du was dazulernen willst dann versuch es erstmal selbst mit den von mir genannten Funktionen.

    Ansonsten hast du hier das Script was ja fast komplett von mir geschrieben wurde ;):

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ColorConstants.au3>

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

    Global $GREEN =0x0099FF
    Global $RED=0x707070

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

    ;~ Hier müssen die Variabeln rein, die in den Content_ Funktionen erstellt werden(Alle die auch in der _Delete_Content() Funktion sein müssen
    Local $Header, $Text, $Text2, $Text3, $Text4, $Text5, $Text6, $Text7, $Text8

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

    Opt("GUIOnEventMode", 1)

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

    $Fav = GUICreate("Games-Manager", 1200, 700, 300, 200)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    $Pic = GUICtrlCreatePic("../Bilder/archiv.jpg", 0, -50, 1200, 801)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Games = GUICtrlCreateLabel("Games", 507.5, 60, 185, 60)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1, $COLOR_WHITE)
    GUICtrlSetFont(-1, 40, 1000, 0, "Century Gothic")
    $Button_f = GUICtrlCreateButton("Favorites", 195, 180, 130, 41,$BS_BITMAP,$WS_GROUP)
    GUICtrlSetImage(-1,"../Bilder/button_shooter.bmp")
    ;GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetBkColor(-1, $RED)
    GUICtrlSetOnEvent(-1, "_showf")
    $Button_s = GUICtrlCreateButton("Shooter", 335, 180, 130, 41,$BS_BITMAP, $WS_GROUP)
    GUICtrlSetImage(-1, "../Bilder/button_shooter.bmp")
    GUICtrlSetBkColor(-1, $GREEN)
    GUICtrlSetOnEvent(-1, "_shows")
    $Button_r = GUICtrlCreateButton("RPG's", 475, 180, 130, 41,$WS_GROUP)
    GUICtrlSetBkColor(-1, $GREEN)
    GUICtrlSetOnEvent(-1, "_showr")
    $Button_ra = GUICtrlCreateButton("Racing", 615, 180, 130, 41,$WS_GROUP)
    GUICtrlSetBkColor(-1, $GREEN)
    GUICtrlSetOnEvent(-1, "_showra")
    $Button_st = GUICtrlCreateButton("Strategy", 755, 180, 130, 41,$WS_GROUP)
    GUICtrlSetBkColor(-1, $GREEN)
    GUICtrlSetOnEvent(-1, "_showst")
    $Button_o = GUICtrlCreateButton("Other", 895, 180, 130, 41,$WS_GROUP)
    GUICtrlSetBkColor(-1, $GREEN)
    GUICtrlSetOnEvent(-1, "_showo")
    _Content_Fav()
    GUISetState(@SW_SHOW)

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

    $Active_Menu = $Button_f
    $fState = 0
    $bState = 0
    Local $Last_Hover, $Last_Hover_button

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

    ;~ HotKeySet("{UP}", "Debug")

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

    ;~ Func Debug()
    ;~ MsgBox(0,"","Pos[4]: "&$Pos[4])
    ;~ EndFunc

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

    While 1
    $Pos = GuiGetCursorInfo()
    If $Pos <> 0 Then
    Select
    Case ($Pos[4] = $Button_f) Or ($Pos[4] = $Button_s) Or ($Pos[4] = $Button_r) Or ($Pos[4] = $Button_ra) Or ($Pos[4] = $Button_o) Or ($Pos[4] = $Button_st)
    If $fState = 0 Then
    If $Pos[4] <> $Active_Menu Then
    GUICtrlSetBkColor($Pos[4], $RED)
    ;GUICtrlSetImage($Pos[4],"../Bilder/button.bmp")
    $fState = 1
    $Last_Hover = $Pos[4]
    EndIf
    EndIf

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

    Case ($Pos[4] = $Text) Or ($Pos[4] = $Text2) Or ($Pos[4] = $Text3) Or ($Pos[4] = $Text4) Or ($Pos[4] = $Text5) Or ($Pos[4] = $Text6) Or ($Pos[4] = $Text7) Or ($Pos[4] = $Text8)
    If $bState = 0 Then
    ;~ Hier werden die Positionsdaten der Buttons abgefragt
    $array = ControlGetPos("","",$Pos[4])
    ;~ Hier wird die Position und Größe des Buttons verändert über dem man gerade mit der Maus hovered
    GUICtrlSetPos($Pos[4],$array[0]-10,$array[1]-5,$array[2]+20 ,$array[3]+10)
    $bState = 1
    $Last_Hover_button = $Pos[4]
    EndIf

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

    Case ($Pos[4] <> $Button_f) Or ($Pos[4] <> $Button_s) Or ($Pos[4] <> $Button_r) Or ($Pos[4] <> $Button_ra) Or ($Pos[4] <> $Button_o) Or ($Pos[4] <> $Button_st) Or ($Pos[4] <> $Text) Or ($Pos[4] <> $Text2) Or ($Pos[4] <> $Text3) Or ($Pos[4] <> $Text4) Or ($Pos[4] <> $Text5) Or ($Pos[4] <> $Text6) Or ($Pos[4] <> $Text7) Or ($Pos[4] <> $Text8)
    If $fState Then
    If $Last_Hover <> $Active_Menu Then
    GUICtrlSetBkColor($Last_Hover, $GREEN)
    $fState = 0
    EndIf
    ElseIf $bState Then
    ;~ Hier wird die Position und Größe des Buttons zurückgesetzt auf die vorher erfassten Werte
    GUICtrlSetPos($Last_Hover_button,$array[0],$array[1],$array[2] ,$array[3])
    $bState = 0
    EndIf
    EndSelect
    EndIf
    WEnd

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

    Func _showf()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_f, $GUI_DisABLE)
    GUICtrlSetBkColor($Active_Menu, $GREEN)
    $Active_Menu = $Button_f
    $fState = 0
    GUICtrlSetBkColor($Button_f, $RED)
    _Delete_Content()
    _Content_Fav()
    EndFunc

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

    Func _shows()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_s, $GUI_DisABLE)
    GUICtrlSetBkColor($Active_Menu, $GREEN)
    $Active_Menu = $Button_s
    $fState = 0
    GUICtrlSetBkColor($Button_s, $RED)
    _Delete_Content()
    _Content_Shooter()
    EndFunc

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

    Func _showr()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_r, $GUI_DisABLE)
    GUICtrlSetBkColor($Active_Menu, $GREEN)
    $Active_Menu = $Button_r
    $fState = 0
    GUICtrlSetBkColor($Button_r, $RED)
    _Delete_Content()
    _Content_RPG()
    EndFunc

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

    Func _showra()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_ra, $GUI_DisABLE)
    GUICtrlSetBkColor($Active_Menu, $GREEN)
    $Active_Menu = $Button_ra
    $fState = 0
    GUICtrlSetBkColor($Button_ra, $RED)
    _Delete_Content()
    _Content_Racing()
    EndFunc

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

    Func _showst()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_st, $GUI_DisABLE)
    GUICtrlSetBkColor($Active_Menu, $GREEN)
    $Active_Menu = $Button_st
    $fState = 0
    GUICtrlSetBkColor($Button_st, $RED)
    _Delete_Content()
    _Content_Strategy()
    EndFunc

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

    Func _showo()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_o, $GUI_DisABLE)
    GUICtrlSetBkColor($Active_Menu, $GREEN)
    $Active_Menu = $Button_o
    $fState = 0
    GUICtrlSetBkColor($Button_o, $RED)
    _Delete_Content()
    _Content_Other()
    EndFunc

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

    ;~ Hier alle ControlID's rein die in den Content_ Funktionen erstellt werden
    Func _Delete_Content()
    GUICtrlDelete($Header)
    GUICtrlDelete($Text)
    GUICtrlDelete($Text2)
    GUICtrlDelete($Text3)
    GUICtrlDelete($Text4)
    GUICtrlDelete($Text5)
    GUICtrlDelete($Text6)
    GUICtrlDelete($Text7)
    GUICtrlDelete($Text8)
    EndFunc

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

    Func _Content_Fav()
    _Delete_Content()
    $Header = GUICtrlCreateLabel("Favorites", 104, 320, 135, 37)
    GUICtrlSetColor(-1, $COLOR_WHITE)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    $Text = GUICtrlCreateButton("", 160, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder\favorites\titanfall.bmp", -1)
    GUICtrlSetOnEvent ( -1, "_fav1")
    $Text2 = GUICtrlCreateButton("", 381, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetOnEvent ( -1, "_fav2")
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder\favorites\trials.bmp", -1)
    $Text3 = GUICtrlCreateButton("", 603, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder\favorites\bf3.bmp", -1)
    GUICtrlSetOnEvent ( -1, "_fav3")
    $Text4 = GUICtrlCreateButton("", 823, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder\favorites\gw2.bmp", -1)
    GUICtrlSetOnEvent ( -1, "_fav4")
    $Text5 = GUICtrlCreateButton("", 160, 515, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder\favorites\.bmp", -1)
    GUICtrlSetOnEvent ( -1, "_fav5")
    $Text6 = GUICtrlCreateButton("", 381, 515, 195, 105, $BS_BITMAP)
    GUICtrlSetOnEvent ( -1, "_fav6")
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder\favorites\.bmp", -1)
    $Text7 = GUICtrlCreateButton("", 603, 515, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder\favorites\.bmp", -1)
    GUICtrlSetOnEvent ( -1, "_fav7")
    $Text8 = GUICtrlCreateButton("", 823, 515, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder\favorites\.bmp", -1)
    GUICtrlSetOnEvent ( -1, "_fav8")
    EndFunc

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

    Func _fav1()
    ShellExecute("")
    EndFunc
    Func _fav2()
    ShellExecute("")
    EndFunc
    Func _fav3()
    ShellExecute("")
    EndFunc
    Func _fav4()
    ShellExecute("")
    EndFunc
    Func _fav5()
    ShellExecute("")
    EndFunc
    Func _fav6()
    ShellExecute("")
    EndFunc
    Func _fav7()
    ShellExecute("")
    EndFunc
    Func _fav8()
    ShellExecute("")
    EndFunc

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

    Func _Content_Shooter()
    _Delete_Content()
    $Header = GUICtrlCreateLabel("Shooter", 104, 320, 135, 37)
    GUICtrlSetColor(-1, $COLOR_WHITE)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    $Text = GUICtrlCreateButton("", 160, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder\shooter\titanfall.bmp", -1)
    $Text2 = GUICtrlCreateButton("", 381, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder\shooter\bf3.bmp", -1)
    $Text3 = GUICtrlCreateButton("", 603, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder\shooter\mw3.bmp", -1)
    $Text4 = GUICtrlCreateButton("", 823, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder\shooter\css.bmp", -1)
    EndFunc

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

    Func _Content_RPG()
    _Delete_Content()
    $Header = GUICtrlCreateLabel("RPG's", 104, 320, 135, 37)
    GUICtrlSetColor(-1, $COLOR_WHITE)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    $Text = $Text = GUICtrlCreateButton("", 160, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    $Text2 = GUICtrlCreateButton("", 381, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    $Text3 = GUICtrlCreateButton("", 603, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    $Text4 = GUICtrlCreateButton("", 823, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    EndFunc

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

    Func _Content_Racing()
    _Delete_Content()
    $Header = GUICtrlCreateLabel("Racing", 104, 320, 135, 37)
    GUICtrlSetColor(-1, $COLOR_WHITE)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    $Text = $Text = GUICtrlCreateButton("", 160, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    $Text2 = GUICtrlCreateButton("", 381, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    $Text3 = GUICtrlCreateButton("", 603, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    $Text4 = GUICtrlCreateButton("", 823, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    EndFunc

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

    Func _Content_Strategy()
    _Delete_Content()
    $Header = GUICtrlCreateLabel("Strategy", 104, 320, 135, 37)
    GUICtrlSetColor(-1, $COLOR_WHITE)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    $Text = GUICtrlCreateButton("", 160, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    $Text2 = GUICtrlCreateButton("", 381, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    $Text3 = GUICtrlCreateButton("", 603, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    $Text4 = GUICtrlCreateButton("", 823, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    EndFunc

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

    Func _Content_Other()
    _Delete_Content()
    $Header = GUICtrlCreateLabel("Other", 104, 320, 135, 37)
    GUICtrlSetColor(-1, $COLOR_WHITE)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    $Text = GUICtrlCreateButton("", 160, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    $Text2 = GUICtrlCreateButton("", 381, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    $Text3 = GUICtrlCreateButton("", 603, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    $Text4 = GUICtrlCreateButton("", 823, 385, 195, 105, $BS_BITMAP)
    GUICtrlSetImage(-1, "D:\'Projekte'\Programm\Bilder", -1)
    EndFunc

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

    Func _exit()
    Exit
    EndFunc ;==>

    [/autoit]
  • hover Funktion

    • Blubkuh
    • 7. März 2014 um 23:46
    Zitat von Schnitzel

    Ups ok da hab ich mich verwirren lassen ^^
    in $Active_Menu steht natürlich das zuvor aktive Control. Die Frage ist nur warum du überhaupt Execute verwendest :P

    @GUI_CTRLID würde dir den Vorteil bringen dass du all diese _showx() Funktionen zu einer konsolidieren kannst.
    Sofern du die _Content() Funktionen etwas anpasst. Z.B. mit einem Parameter oder wie bereits erwähnt mit Guictrlsetdata und nem Array in dem die jeweiligen Daten stehen.

    Oo
    Also entweder hatte ich gestern Halluzinationen oder ich hab mich irgendwo vertippt.
    Ich bin mir ziemlich sicher das "GUICtrlSetState($Active_Menu, $GUI_ENABLE)" gestern nicht funktioniert hat x)

    Naja heute funktioniert es und somit ist das geklärt. :P

  • hover Funktion

    • Blubkuh
    • 7. März 2014 um 20:50
    Zitat von chRoNiix

    Super! Danke :thumbup:
    Jetzt bekomme ich es nur irgendwie nicht mehr hin neue Buttons in einem "tab" eine Funktion zuzuweisen, sodass beispielsweise ein Programm beim drücken des Buttons geöffnet wird..


    dann poste doch mal deinen code und dann gucken wir woran es liegt. ohne Code kann man dir schlecht helfen :)
    Aber eigentlich brauchst du nur GUICtrlSetOnEvent ( controlID, "function" ).
    Als Control ID den Button oder was auch immer du zum starten nimmst und in die Funktion schreibst du deinen Execute command des Spiels

    Zitat von Schnitzel

    Blubkuh:
    Ja ist ne funktionierende Lösung aber zwei Dinge sind doch eher unschön.
    1. Controls immer wieder zur Laufzeit erstellen und löschen ist unnötig. Einfach den Wert mit GuiCtrlSetData setzen spart Zeit und Schreibaufwand :thumbup:
    2. Execute($Active_Menu) ist auch unschön. Lieber @GUI_CtrlID verwenden ;)

    PS: mit nem Schönen Array für die Controls spart man sich sicher 2/3tel des Codes ;)

    Haha ja du hast natürlich recht. Das mit dem GuiCtrlSetData ist mir heute nacht auch eingefallen und ich hab mich selbst im Bett gefacepalmed ;D
    Mit dem @Gui_CtrlID kann ich nicht wirklich was anfangen. Er will ja den vorherigen Buton wieder aktivieren und nicht den momentan gedrückten.
    Das mit dem Execute habe ich so gemacht weil mir einfach nichts anderes eingefallen ist. Wenn du nen anderen Lösungsvorschlag hast wäre es super wenn du den mal posten könntest damit ich dazulernen kann :)

    PS: Mit Arrays ist natürlich alles einfacher. aber ich wollte wenigstens ein bisschen des original codes behalten und nicht gleich nen komplett anderes Script schreiben :P

  • hover Funktion

    • Blubkuh
    • 6. März 2014 um 23:41

    Sorry für Dopperlpost aber da du nicht geantwortet hast wusste ich ned ob du nen Edit im vorherigen Beitrag überhaupt bemerken würdest.

    Habe das Script ein wenig verändert, sodass das aktive Menu nun immer rot hinterlegt ist.
    Habe außerdem die Buttons ein bischen weiter auseinander geschoben, weil es sonst passieren kann, dass, wenn man die Maus ganz schnell von einem Button zum anderen schiebt, das Programm es nicht mitbekommt,dass man garnichtmehr über dem Button hovert sondern über einem anderen

    Code
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ColorConstants.au3>

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

    Global $GREEN = 0x00FF00
    Global $RED= 0xFF0000

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

    ;~ Hier müssen die Variabeln rein, die in den Content_ Funktionen erstellt werden(Alle die auch in der _Delete_Content() Funktion sein müssen
    Local $Header, $Text

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

    Opt("GUIOnEventMode", 1)

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

    $Fav = GUICreate("Games-Manager", 1200, 700, 300, 200)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    $Pic = GUICtrlCreatePic("../Bilder/archiv.jpg", 0, -50, 1200, 801) ;Hintergrundbild
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Games = GUICtrlCreateLabel("Games", 507.5, 60, 185, 60)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 40, 1000, 0, "Century Gothic")
    $Button_f = GUICtrlCreateButton("Favoriten", 195, 180, 130, 41,$WS_GROUP)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetBkColor(-1, $RED)
    GUICtrlSetOnEvent(-1, "_showf")
    $Button_s = GUICtrlCreateButton("Shooter", 335, 180, 130, 41,$BS_BITMAP, $WS_GROUP)
    GUICtrlSetImage(-1, "../Bilder/button_shooter.bmp")
    GUICtrlSetBkColor(-1, $GREEN)
    GUICtrlSetOnEvent(-1, "_shows")
    $Button_r = GUICtrlCreateButton("RPG's", 475, 180, 130, 41,$WS_GROUP)
    GUICtrlSetBkColor(-1, $GREEN)
    GUICtrlSetOnEvent(-1, "_showr")
    $Button_ra = GUICtrlCreateButton("Racing", 615, 180, 130, 41,$WS_GROUP)
    GUICtrlSetBkColor(-1, $GREEN)
    GUICtrlSetOnEvent(-1, "_showra")
    $Button_st = GUICtrlCreateButton("Strategy", 755, 180, 130, 41,$WS_GROUP)
    GUICtrlSetBkColor(-1, $GREEN)
    GUICtrlSetOnEvent(-1, "_showst")
    $Button_o = GUICtrlCreateButton("Other", 895, 180, 130, 41,$WS_GROUP)
    GUICtrlSetBkColor(-1, $GREEN)
    GUICtrlSetOnEvent(-1, "_showo")
    _Content_Fav()
    GUISetState(@SW_SHOW)

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

    ;~ ControlGetHandle

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

    $Active_Menu = $Button_f
    $fState = 0
    Local $Last_Hover
    While 1
    $Pos = GuiGetCursorInfo()
    If $Pos <> 0 Then
    Select
    Case ($Pos[4] = $Button_f) Or ($Pos[4] = $Button_s) Or ($Pos[4] = $Button_r) Or ($Pos[4] = $Button_ra) Or ($Pos[4] = $Button_o) Or ($Pos[4] = $Button_st)
    If $fState = 0 Then
    If $Pos[4] <> $Active_Menu Then
    GUICtrlSetBkColor($Pos[4], $RED)
    $fState = 1
    $Last_Hover = $Pos[4]
    EndIf
    EndIf
    Case Else
    If $fState Then
    If $Last_Hover <> $Active_Menu Then
    GUICtrlSetBkColor($Last_Hover, $GREEN)
    $fState = 0
    Else
    MsgBox(0,"","Lasthover = Activemenu")
    EndIf
    EndIf
    EndSelect
    EndIf
    WEnd

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

    Func _showf()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_f, $GUI_DisABLE)
    GUICtrlSetBkColor($Active_Menu, $GREEN)
    $Active_Menu = $Button_f
    $fState = 0
    GUICtrlSetBkColor($Button_f, $RED)
    _Delete_Content()
    _Content_Fav()
    EndFunc

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

    Func _shows()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_s, $GUI_DisABLE)
    GUICtrlSetBkColor($Active_Menu, $GREEN)
    $Active_Menu = $Button_s
    $fState = 0
    GUICtrlSetBkColor($Button_s, $RED)
    _Delete_Content()
    _Content_Shooter()
    EndFunc

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

    Func _showr()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_r, $GUI_DisABLE)
    GUICtrlSetBkColor($Active_Menu, $GREEN)
    $Active_Menu = $Button_r
    $fState = 0
    GUICtrlSetBkColor($Button_r, $RED)
    _Delete_Content()
    _Content_RPG()
    EndFunc

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

    Func _showra()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_ra, $GUI_DisABLE)
    GUICtrlSetBkColor($Active_Menu, $GREEN)
    $Active_Menu = $Button_ra
    $fState = 0
    GUICtrlSetBkColor($Button_ra, $RED)
    _Delete_Content()
    _Content_Racing()
    EndFunc

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

    Func _showst()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_st, $GUI_DisABLE)
    GUICtrlSetBkColor($Active_Menu, $GREEN)
    $Active_Menu = $Button_st
    $fState = 0
    GUICtrlSetBkColor($Button_st, $RED)
    _Delete_Content()
    _Content_Strategy()
    EndFunc

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

    Func _showo()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_o, $GUI_DisABLE)
    GUICtrlSetBkColor($Active_Menu, $GREEN)
    $Active_Menu = $Button_o
    $fState = 0
    GUICtrlSetBkColor($Button_o, $RED)
    _Delete_Content()
    _Content_Other()
    EndFunc

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

    ;~ Hier alle ControlID's rein die in den Content_ Funktionen erstellt werden
    Func _Delete_Content()
    GUICtrlDelete($Header)
    GUICtrlDelete($Text)
    EndFunc

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

    Func _Content_Fav()
    _Delete_Content()
    $Header = GUICtrlCreateLabel("Favoriten", 104, 320, 135, 37)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    $Text = GUICtrlCreateLabel("Hier steht ein Text", 104, 360)
    EndFunc

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

    Func _Content_Shooter()
    _Delete_Content()
    $Header = GUICtrlCreateLabel("Shooter", 104, 320, 135, 37)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    $Text = GUICtrlCreateLabel("Hier steht ein anderer Text", 104, 360)
    EndFunc

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

    Func _Content_RPG()
    _Delete_Content()
    $Header = GUICtrlCreateLabel("RPG's", 104, 320, 135, 37)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    $Text = GUICtrlCreateLabel("Und so weiter....", 104, 360)
    EndFunc

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

    Func _Content_Racing()
    _Delete_Content()
    $Header = GUICtrlCreateLabel("Racing", 104, 320, 135, 37)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    $Text = GUICtrlCreateLabel("Blabla", 104, 360)
    EndFunc

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

    Func _Content_Strategy()
    _Delete_Content()
    $Header = GUICtrlCreateLabel("Strategy", 104, 320, 135, 37)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    ;~ $Text = GUICtrlCreateLabel("Man kann die Variable auch einfaach garnicht benutzen", 104, 360)
    EndFunc

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

    Func _Content_Other()
    _Delete_Content()
    $Header = GUICtrlCreateLabel("Other", 104, 320, 135, 37)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    $Text = GUICtrlCreateLabel("Hoffe dir hilft das weiter", 104, 360)
    EndFunc

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

    Func _exit()
    Exit
    EndFunc ;==>

    [/autoit]
  • hover Funktion

    • Blubkuh
    • 6. März 2014 um 22:51

    Ich würde an deiner Stelle anders vorgehen als für jeden Menüpunkt ein eigenes GUI zu erstellen.
    Benutze lieber ein Haupt-GUI und lösche die Daten des vorherigen Tabs einfach beim Klick auf einen Menüpunkt und schreibe dann neue Daten ins GUI.
    Habe hier mal nen Beispiel:

    Ich hoffe das hilft dir weiter.
    Wenn du Fragen zu dem Code hast dann frag einfach hier oder per Privaten Nachricht hier im Forum.
    Mag sein das das alles nicht optimal ist aber ich hab 7 Jahre nix mehr mit AutoIt gecodet ;D

    Code
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ColorConstants.au3>

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

    Global $GREEN = 0x00FF00
    Global $RED= 0xFF0000

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

    ;~ Hier müssen die Variabeln rein, die in den Content_ Funktionen erstellt werden(Alle die auch in der Delete_Content() Funktion sein müssen
    Local $Header, $Text

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

    Opt("GUIOnEventMode", 1)

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

    $Fav = GUICreate("Fav", 1200, 700, 300, 200)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    $Pic = GUICtrlCreatePic("../Bilder/archiv.jpg", 0, -50, 1200, 801) ;Hintergrundbild
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Games = GUICtrlCreateLabel("Games", 507.5, 60, 185, 60)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 40, 1000, 0, "Century Gothic")
    $Button_f = GUICtrlCreateButton("Favoriten", 195, 180, 130, 41,$WS_GROUP)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetOnEvent(-1, "_showf")
    $Button_s = GUICtrlCreateButton("Shooter", 331, 180, 130, 41,$BS_BITMAP, $WS_GROUP)
    GUICtrlSetImage(-1, "../Bilder/button_shooter.bmp")
    GUICtrlSetOnEvent(-1, "_shows")
    $Button_r = GUICtrlCreateButton("RPG's", 467, 180, 130, 41,$WS_GROUP)
    GUICtrlSetOnEvent(-1, "_showr")
    $Button_ra = GUICtrlCreateButton("Racing", 603, 180, 130, 41,$WS_GROUP)
    GUICtrlSetOnEvent(-1, "_showra")
    $Button_st = GUICtrlCreateButton("Strategy", 739, 180, 130, 41,$WS_GROUP)
    GUICtrlSetOnEvent(-1, "_showst")
    $Button_o = GUICtrlCreateButton("Other", 875, 180, 130, 41,$WS_GROUP)
    GUICtrlSetOnEvent(-1, "_showo")
    Content_Fav()
    GUISetState(@SW_SHOW)

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

    $Active_Menu = "$Button_f"
    $fState = 1
    While 1
    $Pos = GuiGetCursorInfo()
    If $Pos <> 0 Then
    Select
    Case ($Pos[4] = $Button_f) Or ($Pos[4] = $Button_s) Or ($Pos[4] = $Button_r) Or ($Pos[4] = $Button_ra) Or ($Pos[4] = $Button_o) Or ($Pos[4] = $Button_st)
    If Not $fState Then
    GUICtrlSetBkColor($Pos[4], $RED)
    $fState = True
    EndIf
    Case Else
    If $fState Then
    GUICtrlSetBkColor($Button_f, $GREEN)
    GUICtrlSetBkColor($Button_s, $GREEN)
    GUICtrlSetBkColor($Button_r, $GREEN)
    GUICtrlSetBkColor($Button_ra, $GREEN)
    GUICtrlSetBkColor($Button_o, $GREEN)
    GUICtrlSetBkColor($Button_st, $GREEN)
    $fState = False
    EndIf
    EndSelect
    EndIf
    WEnd

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

    Func _showf()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_f, $GUI_DisABLE)
    $Active_Menu = "$Button_f"
    Delete_Content()
    Content_Fav()
    EndFunc

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

    Func _shows()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_s, $GUI_DisABLE)
    $Active_Menu = "$Button_s"
    Delete_Content()
    Content_Shooter()
    EndFunc

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

    Func _showr()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_r, $GUI_DisABLE)
    $Active_Menu = "$Button_r"
    Delete_Content()
    Content_RPG()
    EndFunc

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

    Func _showra()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_ra, $GUI_DisABLE)
    $Active_Menu = "$Button_ra"
    Delete_Content()
    Content_Racing()
    EndFunc

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

    Func _showst()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_st, $GUI_DisABLE)
    $Active_Menu = "$Button_st"
    Delete_Content()
    Content_Strategy()
    EndFunc

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

    Func _showo()
    GUICtrlSetState(Execute($Active_Menu), $GUI_ENABLE)
    GUICtrlSetState($Button_o, $GUI_DisABLE)
    $Active_Menu = "$Button_o"
    Delete_Content()
    Content_Other()
    EndFunc

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

    ;~ Hier alle ControlID's rein die in den Content_ Funktionen erstellt werden
    Func Delete_Content()
    GUICtrlDelete($Header)
    GUICtrlDelete($Text)
    EndFunc

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

    Func Content_Fav()
    Delete_Content()
    $Header = GUICtrlCreateLabel("Favoriten", 104, 320, 135, 37)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    $Text = GUICtrlCreateLabel("Hier steht ein Text", 104, 360)
    EndFunc

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

    Func Content_Shooter()
    Delete_Content()
    $Header = GUICtrlCreateLabel("Shooter", 104, 320, 135, 37)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    $Text = GUICtrlCreateLabel("Hier steht ein anderer Text", 104, 360)
    EndFunc

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

    Func Content_RPG()
    Delete_Content()
    $Header = GUICtrlCreateLabel("RPG's", 104, 320, 135, 37)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    EndFunc

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

    Func Content_Racing()
    Delete_Content()
    $Header = GUICtrlCreateLabel("Racing", 104, 320, 135, 37)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    EndFunc

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

    Func Content_Strategy()
    Delete_Content()
    $Header = GUICtrlCreateLabel("Strategy", 104, 320, 135, 37)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    EndFunc

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

    Func Content_Other()
    Delete_Content()
    $Header = GUICtrlCreateLabel("Other", 104, 320, 135, 37)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 29, 400, 0, "MS Sans Serif")
    EndFunc

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

    Func _exit()
    Exit
    EndFunc ;==>

    [/autoit]
  • Win32_PerfRawData_Tcpip_NetworkInterface - Windows 7 Alternative

    • Blubkuh
    • 6. März 2014 um 20:28

    Sollte unter Win 7 eigentlich noch funktionieren. zumindest sagt mir das Google.

    Ich selbst habe keine Ahnung wovon du sprichst aber per Google habe ich nen Script für Winddows 7 in gefunden wo "Win32_PerfRawData_Tcpip_NetworkInterface" benutzt wird.

    (http://globales-irc.net/index.php?page=Thread&threadID=118)

  • hover Funktion

    • Blubkuh
    • 6. März 2014 um 20:04

    Hey
    Hab lange nichts mehr mit Autoit gemacht aber hier mal eine Version der Schleife die Funktionieren sollte:

    [autoit]

    while 1
    $Maus_pos = GUIGetCursorInfo()
    sleep(50)
    If $Maus_pos <> 0 Then
    Select
    case $Maus_pos[4] = $Button_r And $Button = 0
    GUICtrlSetBkColor($Button_r,$RED)
    $Button = 1
    case $Maus_pos[4] <> $Button_r And $Button = 1
    GUICtrlSetBkColor($Button_r, $GREEN)
    $Button = 0
    EndSelect
    EndIf
    WEnd

    [/autoit]

    Das Problem was du allerdings haben wirst ist, dass du die Variable $Button_r einfach mehfach überschreibst. Also funktioniert die Hoverfunktion nur im RPG-Tab weil da das letzte mal $Button_r definiert wurde.


    Edit:
    Erklärung Code:
    GUIGetCursorInfo() kann nicht in allen Controls eine Info bekommen sondern nur in welchen auf die AutoIt zugriff hat (Glaub ich. Steht leider nicht in der Hilfe).
    Wenn also die Maus über irgendwas ist was nicht per GUIGetCursorInfo() erfasst werden kann, dann ist $Maus_pos = 0.
    Wenn du in der alten While Schleife die du hattest dann auf Case $maus_pos[4] zugreifen willst crasht das Programm weil die Variable kein Array ist sondern nur dem Wert 0 entspricht.
    Also einfach vorher überprüfen ob $maus_pos nicht 0 ist und dann den gewünschten Code ausführen.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™