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. Yjuq

Beiträge von Yjuq

  • Anfänger Tutorial - Funktionen | Alles was man wissen muss...

    • Yjuq
    • 18. Juli 2012 um 15:02

    Anfänger Tutorial - Funktionen


    Vorwort:
    Herzlich willkommen zu meinen Tutorial. Hier wirst du folgendes lernen:
    - Wie man Funktionen deklariert und verwendet
    - Wie man Parameter definiert
    - Wofür die Schlüsselwörter Return, ByRef und Const gut sind

    Zudem habe ich am Ende dieses Tutorials eine PDF Datei angehangen. Das beinhaltet das gesamte Tutorial. Natürlich ist das schöner gestaltet als hier ;)

    1. Funktionen deklarieren und aufrufen:
    Damit wir Funktionen auch definieren können, benötigen wir 2 Befehle.
    - Func | Damit wird angegeben, dass eine Funktion beginnt.
    - EndFunc | Damit wird angegeben, dass eine Funktion beendet wird.

    Zudem benötigen wir auch einen Funktionsnamen. Diesen können wir uns aussuchen. Allerdings gibt es ein paar Sachen zu beachten:
    - Ein Funktionsname darf nicht genau so heißen, wie ein Befehl.
    - Nach dem Funktionsname müssen Klammern gesetzt werden.
    - Ein Funktionsname darf nur folgende Zeichen beinhalten:
    | A-Z | a-z | 0-9 | _ | <<< Der Trennstrich ist ebenfalls nicht zugelassen.

    Hier mal ein paar Beispiele für mögliche Funktionsnamen:
    Falsch: Exit() | Richtig: _Exit() | Der Funktionsname darf ja nicht gleich mit einem Befehl sein.
    Falsch: Äpfel() | Richtig: Aepfel() | Das Zeichen „Ä“ ist nicht zugelassen.
    Falsch: _Funk | Richtig: _Funk() | Hier wurden die Klammern vergessen.

    Nun wollen wir auch eine Funktion deklarieren. Dazu müssen wir erst einmal den Befehl Func aufrufen. Dahinter kommt dann der Funktionsname, dann das Script was ausgeführt werden soll und zu guter Letzt der Befehl EndFunc damit wir alles abschließen können.

    [autoit]

    Func _Funktionsname()
    ;~ Script was ausgeführt werden soll.
    EndFunc

    [/autoit]

    Nun haben wir eine Funktion deklariert. Natürlich fehlt uns jetzt ein Script was gestartet wird, sobald die Funktion aufgerufen wird. Um dies ein wenig abzukürzen nehmen wir eine einfache MsgBox.

    [autoit]

    Func _Funktionsname()
    MsgBox(0, 'Funktion:', 'Hallo aus der Funktion!')
    EndFunc

    [/autoit]

    Jetzt wird es an der Zeit, dass wir unsere Funktion aufrufen. Diese können wir wie ein Befehl nach Belieben aufrufen. Damit das ganze besser zu verstehen ist, habe ich noch eine zweite MsgBox eingebaut.

    [autoit]

    MsgBox(0, 'Script:', 'Hallo aus dem Script!')
    _Funktionsname() ;~ Hier wird die Funktion aufgerufen.

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

    Func _Funktionsname()
    MsgBox(0, 'Funktion:', 'Hallo aus der Funktion!')
    EndFunc

    [/autoit]

    2. Funktionen und deren Parameter:
    Damit wir auch alles verstehen, werden wir in diesem Abschnitt den Befehl MsgBox nachbauen. Dies werden wir aber einfach halten und nur das nötigste schreiben. Wenn du nicht weißt was ein Parameter ist, wird es dir gleich klar werden.

    Als erstes benötigen wir eine Funktion. Wir benutzen mal als Funktionsname _MsgBox. Als Script nehmen wir MsgBox(). Die Klammern lässt du vorerst leer.

    [autoit]

    Func _MsgBox()
    MsgBox()
    EndFunc

    [/autoit]

    Nun überlegen wir mal was wir für unsere MsgBox brauchen. 3 Pflichtangaben und 2 Optionale. Diese Angaben sind übrigens die Parameter. Wir benötigen also:
    - Die Flag Eingabe
    - Den Titel
    - Und die Text Eingabe

    Um die beiden anderen Optionalen Parameter kümmern wir uns später. Nun müssen wir erst einmal Parameter erstellen. Diese können wir einfach in die Klammern schreiben. Wichtig ist aber das diese Variable sind.

    [autoit]

    Func _MsgBox($Flag, $Titel, $Text)
    MsgBox()
    EndFunc

    [/autoit]

    Wichtig ist es auch zu wissen, dass die Parameter gleichzeitig Local in der Funktion definiert werden. Das bedeutet dass diese Variablen nur in der Funktion zur Verfügung stehen. Mit diesem Wissen können wir nun auch die entsprechenden Werte in unsere MsgBox einbauen.

    [autoit]

    Func _MsgBox($Flag, $Titel, $Text)
    MsgBox($Flag, $Titel, $Text)
    EndFunc

    [/autoit]

    Nun können wir wieder unsere Funktion aufrufen, nur dass wir Parameter angeben müssen.

    [autoit]

    _MsgBox(0, 'Funktion:', 'Hallo aus der Funktion!')

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

    Func _MsgBox($Flag, $Titel, $Text)
    MsgBox($Flag, $Titel, $Text)
    EndFunc

    [/autoit]

    Wir haben eine Funktion geschrieben, die 3 Pflichteingaben enthält. Aber wie können wir noch 2 Optionen hinein bauen? Dafür geben wir der Variable direkt beim Deklarieren einen bestimmten Wert. Dieser wird dann immer verwendet, wenn wir den Parameter nicht angeben. Bevor wir aber überhaupt etwas machen, müssen wir und überlegen welche 2 Optionalen Angaben wir noch brauchen und welchen Wert diese zugeteilt bekommen.
    - Wir benötigen noch den Parameter Timeout. Der Standard ist 0, wenn dieser Parameter nicht angegeben wird. Also bekommt unser Script ebenfalls für diesen Parameter den Wert 0.
    - Dann fehlt uns noch das Fensterhandle, kurz: Hwnd. Dieser Parameter hat keinen Standartwert. Zu mindestens wird davon nichts in der Hilfedatei erwähnt. Daher bekommt dieser Parameter einen Leerstring, sprich: ''.

    [autoit]

    Func _MsgBox($Flag, $Titel, $Text, $Timeout = 0, $Hwnd = '')
    MsgBox($Flag, $Titel, $Text, $Timeout, $Hwnd)
    EndFunc

    [/autoit]

    Wir rufen die Funktion 2x auf. Einmal mit dem Parameter $Timeout und einmal ohne. Schließlich wollen wir ja auch sehen ob die Parameter so funktionieren wie wir es wollen.

    [autoit]

    _MsgBox(0, 'Funktion:', 'Hallo aus der Funktion! #1', 2)
    _MsgBox(0, 'Funktion:', 'Hallo aus der Funktion! #2')
    ;~ Die erste MsgBox schließt automatisch nach 2 Sekunden.

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

    Func _MsgBox($Flag, $Titel, $Text, $Timeout = 0, $Hwnd = '')
    MsgBox($Flag, $Titel, $Text, $Timeout, $Hwnd)
    EndFunc

    [/autoit]

    3. Return, ByRef und Const:

    Return:
    Normalerweise ist es so, dass eine Funktion 0 zurückgibt. Aber mit dem Befehl Return kann dieser Wert manuell gesetzt werden. Zudem ist es auch möglich, Zeichenketten als Return Wert zu nehmen.

    Hier ein einfaches Beispiel von einer Funktion, die keinen Return Befehl besitzt:

    [autoit]

    $Ausgabe = _Funktion()
    MsgBox(0, 'Ausgabe:', $Ausgabe)

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

    Func _Funktion()
    $x = 5
    EndFunc

    [/autoit]

    Jetzt könnte man meinen, dass 5 ausgegeben wird. Aber leider ist dies falsch. Damit 5 wirklich ausgegeben werden kann, gibt es 2 Möglichkeiten.

    1. Man gibt $x zurück, also: Return $x
    2. Oder man gibt direkt die 5 zurück, und löscht $x = 5, also: Return 5

    Hier mal das Beispiel für einen Return:

    [autoit]

    $Ausgabe = _Funktion()
    MsgBox(0, 'Ausgabe:', $Ausgabe)

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

    Func _Funktion()
    Return 5
    EndFunc

    [/autoit]

    Statt dem Wert 5 kann auch eine Zeichenkette verwendet werden. Z.B. 'Ausgabe erfolgt!'

    [autoit]


    $Ausgabe = _Funktion()
    MsgBox(0, 'Ausgabe:', $Ausgabe)

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

    Func _Funktion()
    Return 'Ausgabe erfolgt!'
    EndFunc

    [/autoit]

    Und hier noch ein Beispiel, um eine Variable als Return Wert zu nehmen:

    [autoit]


    $Ausgabe = _Funktion()
    MsgBox(0, 'Ausgabe:', $Ausgabe)

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

    Func _Funktion()
    $x = 10
    Return $x
    EndFunc

    [/autoit]

    ByRef:
    Weil es in der Hilfe schon so schön steht, habe ich mir die Beschreibung einfach mal heraus kopiert:

    Zitat

    Das Schlüsselwort ByRef zeigt an, dass der Parameter als Referenz zu dem Originalobjekt behandelt werden soll. Standardmäßig wird der Parameter in eine neue Variable kopiert. Jedoch verknüpft ByRef die neue Variable auf den Originalparameter. [...] Ein Buchstabe kann jedoch nicht als ByRef Parameter übergeben werden.

    Um das zu verstehen, habe ich auch schon ein Beispiel für dich geschrieben. Viel kann ich zu ByRef nicht sagen, allerhöchstens erklären wie es verwendet wird.

    Hier mal ein einfaches Beispiel einer Addition:

    [autoit]


    $a = 2
    $b = 7
    _Summe($a, $b)
    MsgBox(0, 'Ausgabe:', $a)

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

    Func _Summe(ByRef $x, $y)
    $x = $x + $y
    EndFunc

    [/autoit]

    Hier die Erklärung:
    Sobald wir die Funktion _Summe aufrufen, Wird die Variable $x mit $x + $y umgeschrieben. Da wir als Parameter die Variable $a und $b verwendet haben, sieht das ganze so aus:
    $x = 2 ($x also) + 7 ($y also)

    Das bedeutet das $x den Wert 9 enthält. Da wir als Parameter ByRef $x angegeben haben, und unser Parameter Wert $a ist, wird die Variable $x in Variable $a geschrieben. Das bedeutet das die Variable $a ab sofort 9 beinhaltet.

    Nun wird das ganze ausgegeben und fertig ist unsere Addition. Dies funktioniert aber auch mit einer Subtraktion. Ersetz doch mal das Plus durch ein Minus.

    Const:
    Das ist eigentlich schnell erklärt. Mit dem Schlüsselwort Const, wird angegeben dass der Parameter nicht veränderbar ist. Das bedeutet das der Parameter nicht verändert werden kann/darf.

    Hier ein Beispiel Script, dieses gibt allerdings einen Fehler aus:

    [autoit]

    $Ausgabe = _Funktion(10)
    MsgBox(0, 'Ausgabe:', $Ausgabe)

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

    Func _Funktion(Const $Wert)
    $Wert += 1
    Return $Wert
    EndFunc

    [/autoit]

    Schlusswort:
    Wenn es Fragen dazu gibt oder Rechtschreibfehler / Scriptfehler gefunden wurden, so schreibe mir doch ein Kommentar.

    Mfg. Make-Grafik

    Dateien

    Anf 908,77 kB – 594 Downloads
  • Screenshot Problem

    • Yjuq
    • 18. Juli 2012 um 13:14

    Hmn :/ >> Vllt. sollte jemand mal erklären wie das mit den Funktionen geht ^^

    Du musst den Wert ersezen. Ich weiß jetzt nicht ganz auf welche Funktion du dich Beziehst. Gehen wir mal davon aus x)))

    _Funktions_Name($parameter_1, $Parameter_2, $s_Font)

    Nur mal als Beispiel!!!


    Nun musst du die Werte in der Klammer ersetzen, genauso wie Befehle:

    _Funktions_Name(1, 1, "Arial")


    Hoffentlich öffnet dir das Simple Beispiel die Augen ^^

  • Return | Es wird falsch Returnt | Kann den Denkfehler nicht finden

    • Yjuq
    • 17. Juli 2012 um 17:52

    lol x)

    >> Irgendwie bischen peinlich :o

    Danke :*

  • Return | Es wird falsch Returnt | Kann den Denkfehler nicht finden

    • Yjuq
    • 17. Juli 2012 um 02:11

    Hallo AutoIt-Community,

    ich mache gerade das Snake-Tutorial von Marsi. Habe das Script allerdings ein wenig umgeschrieben. Als ich das Script getestet habe (Es ist noch nicht fertig) ist mir ein Fehler aufgefallen.

    Folgendes:
    Ich habe eine Schwierigkeits-Wahl, diese wirkt sich auf die Geschwindigkeit der Snake-Schlange aus. Nur leider verändert sich die Geschwindigkeit nicht. Ich habe mich schon selber auf die Fehlersuche begeben und konnte die entsprechenden Zeilen auskommentieren.

    Ihr braucht also gar nicht großartig das ganze Script durchgehen, sondern einfach nur das anschauen was Kommentiert ist ^^
    Zudem habe ich MsgBoxen eingeaut, damit ihr seht was ich meine. Dazu müsst ihr allerdings das Script starten ^^

    Ich wäre euch zu tief's dankbar wenn ihr meinen Fehler findet. Ich werde wärend dessen weitersuchen, in der hoffnung das ich ihn finde ^^

    Hier das Script:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <GDIPlus.au3>
    #include <GuiConstantsEx.au3>
    #Include <Misc.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    AutoItSetOption('GUICloseOnESC', 0)
    AutoItSetOption('GUIOnEventMode', 1)
    AutoItSetOption('MustDeclareVars', 1)

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

    Global Const $x_1 = 500
    Global Const $y_1 = 500

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

    Global $gui_1 = GUICreate('Snake', $x_1, $y_1)
    WinSetTrans($gui_1, '', 255)
    GUISetState(@SW_SHOW, $gui_1)

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

    GUISetOnEvent($GUI_EVENT_CLOSE, '_exit', $gui_1)

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

    Global $modus_1 = 0
    Global $modus_2 = 0
    Local $schwierigkeit = 0

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

    _GDIPlus_Startup()
    Global $graphic_1 = _GDIPlus_GraphicsCreateFromHWND($gui_1)
    Global $bitmap_1 = _GDIPlus_BitmapCreateFromGraphics($y_1, $x_1, $graphic_1)
    Global $context_1 = _GDIPlus_ImageGetGraphicsContext($bitmap_1)
    Global $brush_1 = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)

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

    GUIRegisterMsg(0x000F, '_zeichnen_spielfeld')

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

    _zeichnen_spielfeld()
    _hauptscript()

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

    Func _hauptscript()
    While Sleep(10)
    Switch $modus_1
    Case 0
    $schwierigkeit = _schwierigkeit() ;~ Hier liegt der Fehler, der Return Wert wird nicht abgespeichert.
    MsgBox(0, 'Nach der Eingabe', $schwierigkeit) ;~ MsgBox gibt $schwierigkeit aus. >> 0 Dieser Wert soll aber nicht kommen.
    $modus_1 = 1
    $modus_2 = 0
    Case 1
    _spiel()
    $modus_1 = 0
    EndSwitch
    WEnd
    EndFunc

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

    Func _exit()
    _GDIPlus_BrushDispose($brush_1)
    _GDIPlus_BitmapDispose($bitmap_1)
    _GDIPlus_GraphicsDispose($graphic_1)
    _GDIPlus_Shutdown()
    Exit
    EndFunc

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

    Func _schwierigkeit()
    _schwierigkeit_eingabe()
    EndFunc

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

    Func _spiel()
    Local $schritt = 25
    Local $snake[1][2]
    $snake[0][0] = Random(0, $x_1 /$schritt -1, 1)*$schritt
    $snake[0][1] = Random(0, $y_1 /$schritt -1, 1)*$schritt
    Local $richtung = Random(1, 4, 1)
    Local $links_1, $rechts_1, $oben_1, $unten_1, $links_2, $rechts_2, $oben_2, $unten_2
    Local $counter = 0
    While Sleep(10)
    $counter += 1
    $links_1 = _IsPressed(41)
    $rechts_1 = _IsPressed(44)
    $oben_1 = _IsPressed(57)
    $unten_1 = _IsPressed(53)
    $links_2 = _IsPressed(25)
    $rechts_2 = _IsPressed(27)
    $oben_2 = _IsPressed(26)
    $unten_2 = _IsPressed(28)
    If $links_1 = True Then $richtung = 1
    If $rechts_1 = True Then $richtung = 2
    If $oben_1 = True Then $richtung = 3
    If $unten_1 = True Then $richtung = 4
    If $links_2 = True Then $richtung = 1
    If $rechts_2 = True Then $richtung = 2
    If $oben_2 = True Then $richtung = 3
    If $unten_2 = True Then $richtung = 4
    If IsInt($counter /(10 -($schwierigkeit -1) *2)) Then
    $counter = 0
    _bewege_schlange($snake, $schritt, $richtung)
    _zeichne_schlange($snake, $schritt)
    EndIf
    WEnd
    EndFunc

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

    Func _schwierigkeit_eingabe()
    Local $gui_2 = GUICreate('', 200, 200, Default, Default, $WS_POPUP + $WS_BORDER)
    Local $label_1 = GUICtrlCreateLabel('Schwierigkeitswahl:', 50, 30, 100, 20, $SS_CENTER)
    Local $button_1 = GUICtrlCreateButton('Leicht', 50, 70, 100, 20)
    Local $button_2 = GUICtrlCreateButton('Mittel', 50, 100, 100, 20)
    Local $button_3 = GUICtrlCreateButton('Schwer', 50, 130, 100, 20)
    Local $button_4 = GUICtrlCreateButton('Exit', 10, 170, 50, 20)
    Local $button_5 = GUICtrlCreateButton('Hilfe', 140, 170, 50, 20)
    GUISetState(@SW_SHOW, $gui_2)
    GUICtrlSetOnEvent($button_1, '_leicht')
    GUICtrlSetOnEvent($button_2, '_mittel')
    GUICtrlSetOnEvent($button_3, '_schwer')
    GUICtrlSetOnEvent($button_4, '_exit')
    GUICtrlSetOnEvent($button_5, '_hilfe')
    WinSetOnTop($gui_2, '', 1)
    While $modus_2 = 0
    Sleep(10)
    WEnd
    WinSetOnTop($gui_2, '', 0)
    GUIDelete($gui_2)
    MsgBox(0, 'In der Eingabe', $modus_2) ;~ MsgBox gibt $modus_2 korrekt aus!
    Return $modus_2 ;~ Der Gedrückte Button wird Returnt. Wie man in der MsgBox darüber sehen kann, wurde $modus_2 korrekt umgesetzt. Returnt aber Falsch.
    EndFunc

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

    Func _leicht()
    $modus_2 = 1 ;~ Hier der Wert der ausgegeben werden soll, wenn der Button 'Leicht' gedrückt wurde.
    EndFunc

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

    Func _mittel()
    $modus_2 = 2 ;~ Hier der Wert der ausgegeben werden soll, wenn der Button 'Mittel' gedrückt wurde.
    EndFunc

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

    Func _schwer()
    $modus_2 = 3 ;~ Hier der Wert der ausgegeben werden soll, wenn der Button 'Schwer' gedrückt wurde.
    EndFunc

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

    Func _hilfe()
    EndFunc

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

    Func _zeichnen_spielfeld()
    _GDIPlus_GraphicsDrawImage($graphic_1, $bitmap_1, 0, 0)
    _GDIPlus_GraphicsClear($graphic_1, 0xFF000000)
    EndFunc

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

    Func _zeichne_schlange($snake, $schritt)
    Local $x_2, $y_2
    Local $laenge = UBound($snake, 1)
    For $count = 0 To $laenge -1
    $x_2 = $snake[$count][0]
    $y_2 = $snake[$count][1]
    _GDIPlus_GraphicsFillRect($graphic_1, $x_2, $y_2, $schritt, $schritt, $brush_1)
    Next
    EndFunc

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

    Func _bewege_schlange(ByRef $snake, $schritt, $richtung)
    Local $ubound = UBound($snake, 1)
    For $count = 0 To $ubound -1
    Switch $richtung
    Case 1
    $snake[$count][0] -= $schritt
    If $snake[$count][0] < 0 Then $snake[$count][0] = $x_1 -$schritt
    Case 2
    $snake[$count][0] += $schritt
    If $snake[$count][0] = $x_1 Then $snake[$count][0] = 0
    Case 3
    $snake[$count][1] -= $schritt
    If $snake[$count][1] < 0 Then $snake[$count][1] = $y_1 -$schritt
    Case 4
    $snake[$count][1] += $schritt
    If $snake[$count][1] = $y_1 Then $snake[$count][1] = 0
    EndSwitch
    Next
    EndFunc

    [/autoit]
  • variable if abfrage

    • Yjuq
    • 16. Juli 2012 um 16:21

    Das Script wäre hilfreich.

    >> Sonst weiß ich nicht was du meinst

  • GUI nachträglich Größe ändern

    • Yjuq
    • 14. Juli 2012 um 21:18

    Hey, ist nicht schlimm :/

    Wofür gibt es das Forum denn :d?

  • GUI nachträglich Größe ändern

    • Yjuq
    • 14. Juli 2012 um 21:06

    Gehen wir mal von dem Oberen Script aus ^^

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)
    $Form2 = GUICreate("Form2", 117, 56, 477, 218)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_close")
    $Button1 = GUICtrlCreateButton("Button1", 24, 16, 75, 25, $WS_GROUP)
    GUICtrlSetOnEvent($Button1, "_resize")
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(100)
    WEnd

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

    Func _resize()
    WinMove("Form2", "", 477, 218, 400, 400)
    EndFunc

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

    Func _close()
    Exit
    EndFunc

    [/autoit]


    Nun fügen wir folgendem befehl ein:

    Code
    GUICtrlSetResizing ( controlID, resizing )

    Im Script sieht das so aus:

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)
    $Form2 = GUICreate("Form2", 117, 56, 477, 218)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_close")
    $Button1 = GUICtrlCreateButton("Button1", 24, 16, 75, 25, $WS_GROUP)
    GUICtrlSetOnEvent($Button1, "_resize")
    GUISetState(@SW_SHOW)

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

    GUICtrlSetResizing($Button1, 802) ; Hier :D Das einfügen ;)

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

    While 1
    Sleep(100)
    WEnd

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

    Func _resize()
    WinMove("Form2", "", 477, 218, 400, 400)
    EndFunc

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

    Func _close()
    Exit
    EndFunc

    [/autoit]

    Weiter informationen gibt es in der Hilfe dazu ;)

    Edit: Wenn du nicht alles einzelnd setzen willst, so sieh dir mal das an:

    Code
    AutoItSetOption ( "GUIResizeMode" [, param] )
    oder auch: Opt ( "GUIResizeMode" [, param] )
  • Brainfuck - Anfängerhilfe

    • Yjuq
    • 13. Juli 2012 um 21:43

    Hey, Danke für eure Beiträge :D Die Links haben mir enorm geholfen ^^

    Habe auch schon mein erstes Miniprogramm geschrieben xDDD naja, kein Programm. Eher gesagt ne Textausgabe xD

    Code
    +++++++++++++++++++++++++++++++++. Gibt ein Ausrufezeichen aus "!"
    >+>+++++++++++[<+++>-]<-. Gibt auch ein Ausrufezeichen aus "!" Ist nur kürzer ^^

    Wenn man es erstmal raus hat, ist es nicht so schwer ^^
    Danke für die Links :P

  • Brainfuck - Anfängerhilfe

    • Yjuq
    • 13. Juli 2012 um 21:21

    Hab ja nicht behauptet das es schwer ist ^^ Nur aufwendig :p

    Wenn man so jeden Befehl und Parameter übersetzen müsste...

    Schon recht aufwendig ^^

  • Brainfuck - Anfängerhilfe

    • Yjuq
    • 13. Juli 2012 um 21:04

    Das ist doch langweilig :d

    Aber wenn du zeit hast, dann schreib doch mal so ein Programm, was das ganze lesen kann^^

    *g*

  • Brainfuck - Anfängerhilfe

    • Yjuq
    • 13. Juli 2012 um 20:24

    Schön das du dir soviel mühe gemacht hast chess ^^ aber eig wollte ich mich nur auf Brainfuck beschränken ^^

  • Brainfuck - Anfängerhilfe

    • Yjuq
    • 13. Juli 2012 um 20:02

    Jojo, danke für die Antworten ^^ >> Wer noch was weiß, immer her damit :D

  • Brainfuck - Anfängerhilfe

    • Yjuq
    • 13. Juli 2012 um 19:17

    In Dieser Sprache kann man genauso viel schreiben wie in C. Zumindestens sagen das die Informationen die ich bekommen habe.

    Es soll nur erheblich schwer sein programme zu schreiben :/ Wer schon ein kleines Programm schreiben kann. Ist gut...

    So nach meinen Informationsquellen ^^ Mal ganz ehrlich. Ich finde das ganze Interessant. Daher frage ich ja auch ob wer was weiß oder sogar die Sprache kann...


    Wenn du sonst nichts hast. Dann lass doch bitte die Kommentare dazu :/

  • Brainfuck - Anfängerhilfe

    • Yjuq
    • 13. Juli 2012 um 19:10

    Sicher :d ich weiß worauf ich mich einlasse ^^ weiß nur nicht wo ich anfangen soll :P

  • Brainfuck - Anfängerhilfe

    • Yjuq
    • 13. Juli 2012 um 19:03

    Hallo ^^ Wusste nicht so ganz wohin mit dem Thema...

    Kennt wer Brainfuck? (Ja - Das ist eine Programmiersprache)

    Ich wollte dies gerne Lernen. Aber scheiter schon an das einfachste ^^ Wenn jmd Brainfuck kennt. Bzw weiß wo man das lernen kann...

    Habe bereits schon gegoogelt. kann aber garnichts mit den Informationen anfange x)


    Naja, also wenn jmd iwas weiß. Wäre ich dankbar ^^


    Edit: Für die, die sich ebenfalls für Brainfuck interessieren. Ich habe eine nützliche PDF (nach etwa 2 Stunden suchen...) gefunden. Diese möchte ich euch nicht vorenthalten :)

    Dateien

    brainfuck_teacher.pdf 311,72 kB – 720 Downloads
  • _SendMessage & _SendMessageA | Unterschiede, Funktion,...

    • Yjuq
    • 10. Juli 2012 um 20:14

    Wie es auschaut, bleibt mir nichts anderes übrig als Englisch zu lernen x)


    Dank dir :P >> Ich habe auf jeden Fall was dazu gelernt ^^

  • _SendMessage & _SendMessageA | Unterschiede, Funktion,...

    • Yjuq
    • 10. Juli 2012 um 13:27

    Das ist ja schon sehr Informativreich :D Dank dir für deine Bemühungen ^^

    Habe hier mal ein paar zusätzliche Frage(n):
    Bei den Befehlen _Send(blabla)

    Wie soll das mit der Texteingabe erfolgen? Bei

    _SendMessage steht das es numerisch erfolgen soll? Hää?
    Bei _SendMessageA kann ich mir das auch nicht so ganz vorstellen. Muss ich die Werte addieren? Also die Ascii zahlen werte...

  • _SendMessage & _SendMessageA | Unterschiede, Funktion,...

    • Yjuq
    • 10. Juli 2012 um 12:50

    Jo, Aber wie ich bereits sagte:
    Kann sogut wie kein Englisch :/

    Aber danke schonmal zu den informationen zu den unterschied :D

  • _SendMessage & _SendMessageA | Unterschiede, Funktion,...

    • Yjuq
    • 10. Juli 2012 um 10:59

    Huhu, ich würde gerne mein Wissensbestand erweitern. Aber ich finde nichts in den Deutschen (kann sogut wie kein Englisch) Foren. Daher frage ich einfach mal nach ^^

    Ich würde gerne wissen wofür die Funktion _SendMessage & _SendMessageA gut sind. Ich habe schon ein paar beispielscripte gesehen und kann nur daraus sehen das diese Befehle ausführen können (Wie das Abschalten des Bildschirmes) Oder Nachrichten an Controls senden kann, was mit Controlsend nicht möglich wäre...

    Zudem würde ich gerne wissen worin der Unterschied zu _SendMessage & _SendMessageA besteht.

    In der Hilfe steht irgendwas mit DLL... Aber damit kann ich leider garnichts anfangen :/


    Wenn sich jemand die Zeit nimmt und was Informativreiches schreibt, so wäre ich wirklich dankbar :d

    mfg. MG

  • Führende nullen hinzufügen

    • Yjuq
    • 7. Juli 2012 um 21:24

    Edit: Fragestellung falsch gelesen, meine lösung war mist x)

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™