Beiträge von AutoTim
-
-
Vielen Dank BugFix!
Dein Script ist gefuchst, ich verstehe auch das du in $aInput[0] die Anzahl der Controls speicherst, aber folgender Ausdruck ist mir nicht verständlich. Was bedeutet es, wenn man ein eindimensionales Array mit drei elementen 0,1,2 erstellt, und dem letzten (2) den Wert [1] zuweist?
-
Hallo Autoit Forum und deren Mitgleider ;),
gibt es eine Möglichkeit eine, oder sogar beide, oben genannten Funktionen in einer for Schleife auszuführen?
Hier ein einfaches Beispiel um zu erklären um was es mir geht:AutoIt
Alles anzeigenfor $i = 0 to 5 GuiCtrlSetData("$test"&$i,"Beispiel") next oder for $i = 0 to 5 "$Label"&$i = GuiCtrlCreateLabel("Beispiel") next
Grüße
Tim -
Ok, vielen Dank. Nun klappt es soweit!
Möge deine Geduld auf ewig vorhanden bleiben
-
Das habe ich so schon versucht. Das Problem dabei ist, das es das Handle cleart. Also in dem Fall meine ganze GUI.
Schut bei mir nun so aus die Stelle:AutoIt$hImage = _GDIPlus_ImageLoadFromFile("png\"&$aNames[$i]&".png") $hGraphic = _GDIPlus_GraphicsCreateFromHWND($Altcoin) _GDIPlus_GraphicsClear($hGraphic, 0xff0f8f8f8) Sleep(1000) _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 16, 21+($i*80)) _GDIPlus_GraphicsDispose($hGraphic) _GDIPlus_ImageDispose($hImage)
Ich programmiere nun schon lange in Autoit und ich habe keine Ahnung von GDI++.. Schnde über mein HauptDie 1Sek Pause habe ich nur drinnen, damit ich sehen kann wie das Bild verschwindet und dann wieder erscheint.
-
Ich bezweifle, dass man sowieso mehr als 2x die Minute die API ansprechen sollte.
Damit wirst du recht haben, da die Daten sowieso 'nur' alle 5 min aktualisiert werden.
Du bist einer von wie vielen?
Jap, von gang ganz vielen
Ich würde aber gerne noch wissen (4 Post von mir), wie ich das Bild mit GDI wieder löschen kannDanke für eure Zeit!
-
Man kann es auch umständlich machen @alpines @AutoTim. Einfach auf der Seite http://coinmarketcap.com nach unten gehen, dort ist ein Link "Api" und man landet auf dieser Seite: http://coinmarketcap.com/api/
Zusätzlich steht auch dort die Info:
- Please limit requests to no more than 10 per minute.
- Endpoints update every 5 minutes.
Sprich die IP, welche das Script so ausführt wird ziemlich schnell gesperrt werden.
Danke für den Hinweis auf die Seite. Diese hatte ich nicht gesehen.
Aber wie kommst du denn darauf, dass die IP schnell gesperrt werden würde? Ich frage 12x die Minute ab. Das ist keine Menge, die die Server übermäßig belasten.
Dennoch danke, ich werde meine Requests auf 10x/min reduzieren um save zu sein.Grüe Tim
-
Vielen Dank Alpines. Ich werde noch etwas an Nutzerfreundlichkeit hinzufügen.
Da habe ich noch ein kleines Problem zu lösen ;). Dann setzte ich den Haken gerneIch zeichne am Anfang meine Bildchen auf die GUI und dann aktualisiere ich nur noch die Werte. Aber ab und an sind die Bildchen weg. Dann sehe ich dort wo die Bildchen waren nurnoch Backgound meiner GUI.
Wenn ich die Bilder aber alle 5 Sekunden zeichne, dann wird das Bild irgendwann grieselig am Rand. Dann sieht es nicht mehr so aus wie beim ersten mal zeichnen.
Leider kenne ich mich mit GDI noch nicht so gut aus. Wie kann ich den ein Bild welches ich mit _GDIPlus_GraphicsDrawImage erstellt habe wieder löschen?Grüße
PS: Hier mal meine aktuelle Version mit allen Files: Altcoin.rar
-
Danke dir! Sehr schönes Beispiel.
Ich habe gestern schon viel Zeit reingesteckt. Schaut mitlerweile so aus:Spoiler anzeigen
AutoIt
Alles anzeigen#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=altcoin.ico #AutoIt3Wrapper_Outfile=Altcoin.exe #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <GUIConstantsEx.au3> #include <ButtonConstants.au3> #include <GDIPlus.au3> #include <WinHttp.au3> #include <array.au3> #include <Date.au3> Opt("TrayMenuMode", 3) dim $AnzahlElemente = UBound(StringSplit(IniRead("altcoin.ini","coins","name",""),",",2)) dim $monitor = IniRead("altcoin.ini","settings","monitor","1") dim $aData[5][25] dim $aNames[5] Global $hGUI, $hImage, $hGraphic $guibreite = 204 $guihoehe = 15 + $AnzahlElemente*80 $guiposlinks = @DesktopWidth*$monitor - ($guibreite+2) $guiposoben = 2 ;GUI $Altcoin = GUICreate("Altcoin", $guibreite, $guihoehe, $guiposlinks, $guiposoben, BitOR($WS_SYSMENU,$WS_POPUP), $WS_EX_TOOLWINDOW) GUISetBkColor(0xf8f8f8,$Altcoin) $Update = GUICtrlCreateLabel("", 0, 1, $guibreite, 17, $SS_CENTER) ;Rechtsklick Menü Local $contextmenu = GUICtrlCreateContextMenu() Local $submenuexit = GUICtrlCreateMenuItem("Beenden", $contextmenu) ;TrayIconMenü Local $iTrayBeenden = TrayCreateItem("Beenden") $LabelName1 = GUICtrlCreateLabel("TESTTEST1", 88, 19, 115, 23) GUICtrlSetFont(-1, 12, 400, 0, "Futura Md BT") $LabelEUR1 = GUICtrlCreateLabel("0.000000 EUR", 88, 53, 115, 17) GUICtrlSetFont(-1, 10, 400, 0, "Consolas") $LabelBTC1 = GUICtrlCreateLabel("0.000000 BTC", 88, 69, 115, 17) GUICtrlSetFont(-1, 10, 400, 0, "Consolas") $LabelRang1 = GUICtrlCreateLabel("00", 88, 36, 115, 19) GUICtrlSetFont(-1, 9, 400, 0, "Futura Md BT") $LabelName2 = GUICtrlCreateLabel("TESTTEST2", 88, 99, 115, 23) ;80 Offset GUICtrlSetFont(-1, 12, 400, 0, "Futura Md BT") $LabelEUR2 = GUICtrlCreateLabel("0.000000 EUR", 88, 133, 115, 17) GUICtrlSetFont(-1, 10, 400, 0, "Consolas") $LabelBTC2 = GUICtrlCreateLabel("0.000000 BTC", 88, 149, 115, 17) GUICtrlSetFont(-1, 10, 400, 0, "Consolas") $LabelRang2 = GUICtrlCreateLabel("00", 88, 116, 115, 19) GUICtrlSetFont(-1, 9, 400, 0, "Futura Md BT") $LabelName3 = GUICtrlCreateLabel("TESTTEST3", 88, 179, 115, 23) ;160 Offset GUICtrlSetFont(-1, 12, 400, 0, "Futura Md BT") $LabelEUR3 = GUICtrlCreateLabel("0.000000 EUR", 88, 213, 115, 17) GUICtrlSetFont(-1, 10, 400, 0, "Consolas") $LabelBTC3 = GUICtrlCreateLabel("0.000000 BTC", 88, 229, 115, 17) GUICtrlSetFont(-1, 10, 400, 0, "Consolas") $LabelRang3 = GUICtrlCreateLabel("00", 88, 196, 115, 19) GUICtrlSetFont(-1, 9, 400, 0, "Futura Md BT") $LabelName4 = GUICtrlCreateLabel("TESTTEST4", 88, 259, 115, 23) ;240 Offset GUICtrlSetFont(-1, 12, 400, 0, "Futura Md BT") $LabelEUR4 = GUICtrlCreateLabel("0.000000 EUR", 88, 293, 115, 17) GUICtrlSetFont(-1, 10, 400, 0, "Consolas") $LabelBTC4 = GUICtrlCreateLabel("0.000000 BTC", 88, 309, 115, 17) GUICtrlSetFont(-1, 10, 400, 0, "Consolas") $LabelRang4 = GUICtrlCreateLabel("00", 88, 276, 115, 19) GUICtrlSetFont(-1, 9, 400, 0, "Futura Md BT") $LabelName5 = GUICtrlCreateLabel("TESTTEST5", 88, 339, 115, 23) ;320 Offset GUICtrlSetFont(-1, 12, 400, 0, "Futura Md BT") $LabelEUR5 = GUICtrlCreateLabel("0.000000 EUR", 88, 373, 115, 17) GUICtrlSetFont(-1, 10, 400, 0, "Consolas") $LabelBTC5 = GUICtrlCreateLabel("0.000000 BTC", 88, 389, 115, 17) GUICtrlSetFont(-1, 10, 400, 0, "Consolas") $LabelRang5 = GUICtrlCreateLabel("00", 88, 356, 115, 19) GUICtrlSetFont(-1, 9, 400, 0, "Futura Md BT") _GUICreateRoundRect($Altcoin,25,25) GUISetState(@SW_SHOW) _GDIPlus_StartUp() GetPNG() SetPic() dim $maincounter = 500 While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE _GDIPlus_ShutDown() Exit Case $submenuexit _GDIPlus_Shutdown() Exit EndSwitch Switch TrayGetMsg() Case $iTrayBeenden _GDIPlus_Shutdown() Exit EndSwitch Sleep(10) If $maincounter = 500 Then GetData() SetData($aData) $maincounter = 0 EndIf $maincounter = $maincounter + 1 WEnd Func SetPic() ;Bilder anzeigen for $i = 0 to UBound($aNames)-1 $hImage = _GDIPlus_ImageLoadFromFile("png\"&$aNames[$i]&".png") $hGraphic = _GDIPlus_GraphicsCreateFromHWND($Altcoin) _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 16, 21+($i*80)) _GDIPlus_GraphicsDispose($hGraphic) _GDIPlus_ImageDispose($hImage) next EndFunc Func SetData($aData) ;1 GUICtrlSetData($LabelName1,$aData[0][0]) GUICtrlSetData($LabelRang1,$aData[1][0]) GUICtrlSetData($LabelBTC1,$aData[2][0]) GUICtrlSetData($LabelEUR1,$aData[3][0]) ;2 GUICtrlSetData($LabelName2,$aData[0][1]) GUICtrlSetData($LabelRang2,$aData[1][1]) GUICtrlSetData($LabelBTC2,$aData[2][1]) GUICtrlSetData($LabelEUR2,$aData[3][1]) ;3 GUICtrlSetData($LabelName3,$aData[0][2]) GUICtrlSetData($LabelRang3,$aData[1][2]) GUICtrlSetData($LabelBTC3,$aData[2][2]) GUICtrlSetData($LabelEUR3,$aData[3][2]) ;4 GUICtrlSetData($LabelName4,$aData[0][3]) GUICtrlSetData($LabelRang4,$aData[1][3]) GUICtrlSetData($LabelBTC4,$aData[2][3]) GUICtrlSetData($LabelEUR4,$aData[3][3]) ;5 GUICtrlSetData($LabelName5,$aData[0][4]) GUICtrlSetData($LabelRang5,$aData[1][4]) GUICtrlSetData($LabelBTC5,$aData[2][4]) GUICtrlSetData($LabelEUR5,$aData[3][4]) ;Infos für die Zeiteinstellungen $aTimeInfo = _Date_Time_GetTimeZoneInformation() ;~ _ArrayDisplay($aTimeInfo) If $aTimeInfo[0] = "2" Then $winDate = _DateTimeFormat(_DateAdd('s', $aData[4][0], "1970/01/01 02:00:00"), 0) ;2 Stunden wegen Sommerzeit Else $winDate = _DateTimeFormat(_DateAdd('s', $aData[4][0], "1970/01/01 01:00:00"), 0) ;1 Stunden wegen Winterzeit EndIf ;~ MsgBox(0,"",$winDate) GUICtrlSetData($Update,"Aktualisierung: "&$winDate) EndFunc Func GetData() For $i = 0 To UBound($aNames)-1 $hSession = _WinHttpOpen(Default) $hConnect = _WinHttpConnect($hSession, "api.coinmarketcap.com", 443) $sHTML = _WinHttpSimpleSSLRequest($hConnect, "GET", "v1/ticker/"&$aNames[$i]&"/?ref=widget&convert=EUR") _WinHttpCloseHandle($hConnect) _WinHttpCloseHandle($hSession) If IsString($sHTML) Then ;Wenn Daten geladen werden, dann führe aus Filter($sHTML,$i) Else MsgBox(0,"Achtung","Es besteht keine Internetverbindung zu coinmarketcap.com") ExitLoop EndIf Next EndFunc Func Filter($API,$ArrayEbene) ;Wird von GetData aufgerufen ;~ MsgBox(0,$ArrayEbene,$API) ;Name der Währung $aArray = StringRegExp($API, '(?<="name": ")[a-zA-Z-\s]{1,20}(?=")',1) $aData[0][$ArrayEbene] = $aArray[0] ;Platz $aArray = StringRegExp($API, '(?<="rank": ")[0-9]{1,3}(?=")',1) $aData[1][$ArrayEbene] = $aArray[0] ;Preis in BTC $aArray = StringRegExp($API, '(?<="price_btc": ")[0-9\.]{1,15}(?=")',1) $aData[2][$ArrayEbene] = $aArray[0] & " BTC" ;Preis in Euro $aArray = StringRegExp($API, '(?<="price_eur": ")[0-9\.]{1,15}(?=")',1) $aData[3][$ArrayEbene] = StringLeft($aArray[0],10) & " EUR" ;Timestamp $aArray = StringRegExp($API, '(?<="last_updated": ")[0-9]{1,15}(?=")',1) $aData[4][$ArrayEbene] = $aArray[0] EndFunc Func GetPNG() ;Ini auswerten $aNames = StringSplit(IniRead("altcoin.ini","coins","name",""),",",2) For $i = 0 To UBound($aNames)-1 ;Wenn ein Bild nicht existiert, dann wird es geladen If not FileExists("png\"&$aNames[$i]&".png") Then InetGet( "https://files.coinmarketcap.com/static/img/coins/64x64/"&$aNames[$i]&".png" ,"png\"&$aNames[$i]&".png") If @error then MsgBox(16,"Error","Es ist ein Fehler beim download der Icons aufgetreten. Bitte vergewissern Sie sich, dass die altcoin.ini Werte stimmen!") EndIf Next EndFunc Func _GUICreateRoundRect($hwnd, $radx=15,$rady=15) $pos = WinGetPos($hwnd) $1 = 0 $2 = 0 $3 = $pos[2] $4 = $pos[3] $ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $1, "long", $2, "long", $3, "long", $4,"long",$radx,"long",$rady) DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $hwnd, "long", $ret[0], "int", 1) EndFunc ;==>_GUICreateRoundRect Func _end() Exit(0) EndFunc
Schöne Grüße
-
Vielen Dank
Im ersten Moment war ich etwas verwundert woher du die Infos der API hast.
Aber dann bin ich drauf gekommen einfach mal das .js zu zerlegen Und da steht ja alles drinnen.Nochmals vielen Dank für deine kreative Idee!
-
Guten morgen Forum,
ich würde gerne die Antwort meines Firefoxes auf folgendes Script in einer GUI anzeigen.
JavaScript<script type="text/javascript" src="https://files.coinmarketcap.com/static/widget/currency.js"></script> <div class="coinmarketcap-currency-widget" data-currency="nem" data-base="EUR" data-secondary="BTC" data-ticker="true" data-rank="true" data-marketcap="true" data-volume="true" data-stats="EUR" data-statsticker="true"></div>
Ich habe das Java-Script schon in eine HTML Datei gespeichert und mit dem _IE Object versucht zu öffnen. Bekomme aber nur ein weißes Fenster.
Kann mit jemand helfen wie ich die HTML Antwort von coinmarketcap.com anzeige?Meine Idee war es, mit HTTP Get und dem Script die HTML Daten anzufordern, dann als File abzuspeichern und dann mit dem _Ie Object anzeigen zu lassen.
Klingt für mich aber um den heißen Brei herum geredet.PS: Das Script holt Informationen über den aktuellen Kurs einer Cryptowährung ab
Grüße
Tim -
Geht klar. Werde ich mir werden. Danke für den Hinweis
-
Vielen Dank für deine schnelle und konkrete Antwort! Super!
-
Ein einsammes Hallöchen seit langer Zeit,
ich habe ein Problem mit dem Umgang zwischen Parent und Child GUI.
Wenn folgendes Script gestartet wird, dann kann man die Child GUI über Position 1 & 2 aufrufen, und bekommt sie auch geschlossen.
Sollte die Child GUI aber über das Menü "Einstellungen" geöffnet werden, kann man es nicht mehr schließen.Kann mir jemand bitte erklären warum?
Grüße
TimAutoIt
Alles anzeigen#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <MsgBoxConstants.au3> #include <StaticConstants.au3> #include <GuiStatusBar.au3> #include <ComboConstants.au3> #include <EditConstants.au3> #include <Array.au3> #include <Misc.au3> Opt("GUIOnEventMode", 1) ; Change to OnEvent mode Global $Form = GUICreate("L", 280, 386) $menu_einstellungen = GUICtrlCreateMenu("Einstellungen") $menu_einstellungen_offnen = GUICtrlCreateMenuItem("Öffnen", $menu_einstellungen) GUICtrlSetOnEvent($menu_einstellungen_offnen, "Einstellungen_GUI") GUISetState(@SW_SHOW,$Form) GUISetOnEvent($GUI_EVENT_CLOSE, "_exit") ;Position 1 ;~ Einstellungen_GUI() While 1 ;Position 2 ;~ Einstellungen_GUI() WEnd Func Einstellungen_GUI() Global $hEinstellungen = GUICreate("Einstellungen", 442, 461, -1, -1,-1,$WS_EX_MDICHILD, $Form) GUISetOnEvent($GUI_EVENT_CLOSE,"_exit") $btn_schliessen = GUICtrlCreateButton("Schließen", 224, 430, 81, 25, $WS_GROUP) GUICtrlSetOnEvent($btn_schliessen,"_exit") GUICtrlCreateGroup("", -99, -99, 1, 1) GUISetState(@SW_SHOW) While 1 Sleep(100) WEnd EndFunc Func _exit() Switch @GUI_WinHandle Case $Form Exit Case $hEinstellungen GUIDelete($hEinstellungen);Einstellungen schließen EndSwitch EndFunc
-
Hallo Gurus
Ich scheitere daran mittels FF.au3 eine drag and drop Aktion zu simulieren.
Mein Ziel ist es dies auf "http://convertico.com/" mit einer Bild Datei auf dem "
Drop your .png or .ico files here, or click to select them manually!" Feld zu machen.Könnt Ihr mir bitte einen Tipp geben?
Vielen Dank
PS: Ich habe mich zum ersten Testen an eines der Beispielscripte gehängt:
AutoIt#include <FF.au3>; Muss immer da sein _FFStart("http://convertico.com/") ; oder _FFConnect() wenn FireFox bereits offen sein sollte! Startet den FireFox mit der Seite "www.web.de" und wartet mit Fortführung des Scripts, bis geladen If _FFIsConnected() Then ; Wenn FireFox nun verbunden ist, dann... Sleep(1000) ; 1 Sekunde zum Verdeutlichen ;HIER DIE AKTION Else ; Wenn FF nicht verbunden ist... MsgBox(64, "Ein Fehler ist aufgetreten", "Eine Verbindung mit dem Mozilla FireFox war nicht möglich!") EndIf
-
Danke für eure Antworten und Hinweise..
Ich möchte natürlich nicht gegen die Richtlinien vestoßen. Daher möchte ich auch icht weiter kramen wie es AutoIt macht.Evt. kennt sich ja jemand mit der FindWindow Funktion aus.
Es scheint nähmlich mit dieser zu funktionieren, siehe hier:http://forums.winamp.com/archive/index.php/t-227327.html
Ich suche expliziet das Handle von Winamp.
LG Tim
PS: Ich bin kein Mitglied in dem Forum und mache auch keine Werbung. Das war einer der ersten Treffer meiner suche.
-
Hallo Ihr Lieben,
ich würde gerne wissen wie der .dll Call hinter WinGetHandle aussieht.
Das Problem ist, dass ich ihn scheinbar falsch nutze und nur dann ein Handle bekomme, wenn ich den exakten Titel kenne.
WinGetHandle geht aber auch wenn ich nur einen Teil des Titel kenne.Ich versuche zurzeit die FindWindowA der user32.dll. Mein Funktionsaufruf ist folgender:
uint32_t FindWindowA(int32_t lpszClassName, const CStr lpszWindowName);
const CStr lpszWindowName = "Editor"Ja, ist kein Autoit, aber darum geht es mir ja
Wenn ich das mit WinGetHandle("Editor") versuche, dann klappt das. In C aber nicht. Da geht das nur mit "Unbenannt - Editor".Wie rufe ich die FindWindowA richtig auf, damit diese etwas "flexibler" ist?
LG Tim
-
@Bioshade: Tolle Band, Tolles Lied, Ich teile deinen Musik Geschmack
-
Hallo,
ich möchte gerne für einen Sudoko Löser eine Oberfläche gestalten und alle Zahlen in einem Array [9][9] lagern, dass meiner Anzeige entspricht.
Mein Test-Programm sieht wie folgt aus:Spoiler anzeigen
AutoIt
Alles anzeigen;Hier stehen Konstanten die verwendet werden damit die Bedienoberfläche (GUI) Funktioniert und angezeigt werden kann #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Region ### Hier wird die GUI erstellt $Form1 = GUICreate("Sudoku Test", 269, 307, 605, 320) $Input0_0 = GUICtrlCreateInput("", 60, 40, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER)) GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow") $Input0_1 = GUICtrlCreateInput("", 110, 40, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER)) GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow") $Input0_2 = GUICtrlCreateInput("", 160, 40, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER)) GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow") $Input1_0 = GUICtrlCreateInput("", 60, 90, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER)) GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow") $Input1_1 = GUICtrlCreateInput("", 110, 90, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER)) GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow") $Input1_2 = GUICtrlCreateInput("", 160, 90, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER)) GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow") $Input2_0 = GUICtrlCreateInput("", 60, 140, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER)) GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow") $Input2_1 = GUICtrlCreateInput("", 110, 140, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER)) GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow") $Input2_2 = GUICtrlCreateInput("", 160, 140, 50, 50, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER)) GUICtrlSetFont(-1, 30, 400, 0, "Arial Narrow") $Button1 = GUICtrlCreateButton("Füllen", 90, 220, 91, 31) GUICtrlSetState(-1,$GUI_FOCUS) GUISetState(@SW_SHOW) #EndRegion ### Hier ist es zuende Global $ZahlenArray[3][3] = [[1,2,3],[4,5,6],[7,8,9]] ;Hier stehenh meine Zaheln, die ich in die Anzeige Einfügen möchte While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE ;Wenn das Rote X gedrückt wird, wird das Programm beendet Exit Case $Button1 ;Wenn der Füllen Button gedrückt wird, wird die Funktion ausgeführt _ZahlenFuellen() EndSwitch WEnd Func _ZahlenFuellen() ; Wenn diese Funktion ausgeführt wird, dann wird die Anzeige mit dem Array geladen - Muss nur einmal geschreiben werden und immer wieder verwendet werden GUICtrlSetData($Input0_0, $ZahlenArray[0][0]) GUICtrlSetData($Input0_1, $ZahlenArray[0][1]) GUICtrlSetData($Input0_2, $ZahlenArray[0][2]) GUICtrlSetData($Input1_0, $ZahlenArray[1][0]) GUICtrlSetData($Input1_1, $ZahlenArray[1][1]) GUICtrlSetData($Input1_2, $ZahlenArray[1][2]) GUICtrlSetData($Input2_0, $ZahlenArray[2][0]) GUICtrlSetData($Input2_1, $ZahlenArray[2][1]) GUICtrlSetData($Input2_2, $ZahlenArray[2][2]) EndFunc
Kann ich dass Array einfacher in meine Bedienelemente laden? Ich habe es mit zwei ineinander verschachtelten Schleifen für Zeile und Spalte versucht, aber so kann ich die Inputs nicht ansprechen.
Im Prinzip, funktioniert dass ja was ich möchte, aber evt. kann mir jemand zeigen wie es eleganter gehtVielen Dank
-