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

  • JavaFX in AutoIt? - Framework

    • Yjuq
    • 26. September 2016 um 14:06

    Also, ich versuche mal auf alles einzugehen.

    alpines:
    Ja, wenn ich tatsächlich diese Biliothek wrappe (so in der Richtung) wird Java auch erforderlich sein. Allerdings war das JavaFX Framework auch eher ein Vergleichsobjekt. Wie und womit ich das letztendlich umsetze weiß ich noch nicht. Ich habe mich mal grob an dieses Framework orientiert da mir persönlich der Funktionsumfang gefiel. Prinzipiell möchtr ich AutoIt, was die GUI Programmierung betrifft, lediglich erweitern und die bisherigen neueren Technologien zur Verfügung stellen. Je nachdem wie sich hier im Thread noch dazu geäußert wird, benutze ich evtl. sigar eine andere Bibliothek als Basis oder setze selbst eine von Grund aus auf.

    BugFix :
    Zzerst einmal möchte ich definitv 2 Dinge verfügbar machen. Zum einen ist dies das Gridsystem (einfache Möglichkeit das Layout flexibel zu bestimmen), zum anderen die Möglichkeit simpel eigene User Controls hinzuzufügen ohne größeren Aufwand. So soll gewehreistet werden dann zukünftig die Bibliothek von euch selber, um eigene Cintrols zu erweitern. Welche Cintrols ich standardmäßig noch hinzunehme können wir ja zusammen diskutieren, sofern die Nachfrage zu der Projektidee groß genug ist. Eventuell über eine DLL oder sogar ganz in AutoIt als au3 Datei. Mal sehen wie es am effektivsten wird. Vermutlich eher ein Mischmasch.

    Oscar :
    Je nachdem wie ich die Bibliothek schreibe könnte es sein dass Java installiert sein muss. Jedoch steht es noch vollkommen in den Sternen wie genau ich das umsetze. Wie ich bereits weiter oben schrieb, bestegt die Möglichkeit dass ich auch ein anderes Framework dazu benutze bzw. eines selber komplett von Haus aus schreibe.

    Kanashius:
    Das wird ein größeres Projekt, gerne sind da helfende Hände dann gesehen. Ich muss mal noch schauen wie ich was alles mache.


    Also, das mit dem JavaFX war als Vergleich eher gemeint. Viel mehr möchte ich die Technologie zur Verfügung stellen die dahinter steckt. Je nachdem was sich aus dem Thread noch ergibt fang ich das Projekt an oder nicht. Zuerst einmal möchte ich nur abchecken ob dafür überhaupt ein allgemeines Interesse besteht.

  • JavaFX in AutoIt? - Framework

    • Yjuq
    • 26. September 2016 um 01:59

    Schönen guten Abend werte Community!
    Lange habe ich nichts mehr von mir hören lassen. Meine Ausbildung nimmt mich doch sehr mit, vor allem für Java muss ich meine Zeit nutzen. Da ich aber wieder Lust bekommen habe was für meine „alte Community“, also ihr, zu tun, kam mir eine kleine prickelnde Idee.

    Ich selber finde die JavaFX Bibliothek (GUI Programmierung) äußerst praktisch und würde sie gerne für AutoIt vollständig verfügbar machen, bzw. das Konzept dahinter. Ob ich hinterher komplett die Bibliothek wrappe oder gar selber schreibe überlege ich mir noch.

    Vorab würde ich aber gerne wissen was ihr von der Idee haltet, und ob diese Bibliothek, sofern ich sie zur Verfügung stelle für AutoIt, auch ihren Nutzen finden wird. Im folgenden möchte ich euch einen kleinen Einblick gewähren was die Bibliothek eigentlich alles bietet.

    Normale GUIs und deren Controls
    Erst einmal unterscheidet sich die Bibliothek nicht von den herkömmlichen. Es gibt die standard Controls wie überall auch. Jedoch bietet sie auch einige erweiterte Controls die ich euch hier einfach mal auflisten möchte:

    Accordion
    ColorPicker
    Hyperlink
    Pagination
    PasswordField
    PopupControl
    SplitPane

    Bis dato nichts ungewöhnliches. :)


    Gridsysteme
    Jetzt wird’s interessant. Statt Controls einzelnd pixelgenau zu positionieren, bietet die Bibliothek einige Gridsysteme. Diese erlauben es eine Art Tabelle zu erstellen (Zeilen und Spalten) wo dann zu den Zellen die Controls zugewiesen werden. Das bietet dynamische Controlgrößen (bei Vergrößerung bzw. Verkleinerung des Fensters) oder auch zum logischen Aufbauen einer GUI. Durch viele Hilfcontrols können so Steuerelemente relativ zu anderen Elementen ausgerichtet sowie Positioniert werden.


    CSS für den Style
    Eine Besonderheit der Bibliothek ist die einfache Designmöglichkeit. Steuerelemente können mithilfe von CSS im Design grundlegend verändert werden. Dies bietet gestalterische Freiheit und trennt das Design vom Code. Ich denke ein Bild sagt mehr als 1000 Worte:

    [Blockierte Grafik: http://www2.pic-upload.de/img/31771704/Screen.png]
    [Blockierte Grafik: http://www2.pic-upload.de/img/31771681/Screen.png]

    Code
    .label {
    	-fx-font-size: 12px;
    	-fx-font-weight: bold;
    	-fx-text-fill: #333333;
    	-fx-effect: dropshadow(gaussian, rgba(255, 255, 255, 0.5), 0, 0, 0, 1);
    }
    
    
    #welcome-text {
    	-fx-font-size: 32px;
    	-fx-font-family: "Arial Black";
    	-fx-fill: #818181;
    	-fx-effect: innershadow(three-pass-box, rgba(0, 0, 0, 0.7), 6, 0, 0, 2);
    }
    
    
    #actiontarget {
    	-fx-fill: FIREBRICK;
    	-fx-font-weight: bold;
    	-fx-effect: dropshadow(gaussian, rgba(255, 255, 255, 0.5), 0, 0, 0, 1);
    }
    
    
    .button {
    	-fx-text-fill: white;
    	-fx-font-family: "Arial Narrow";
    	-fx-font-weight: bold;
    	-fx-background-color: linear-gradient(#61a2b1, #2A5058);
    	-fx-effect: dropshadow(three-pass-box, rgba(0, 0, 0, 0.6), 5, 0, 0, 1);
    }
    
    
    .button:hover {
    	-fx-background-color: linear-gradient(#2A5058, #61a2b1);
    }
    Alles anzeigen


    Animationen
    Das Framework bietet viele Funktionen um Animationen in der GUI zu erstellen. Es können Laufpfade gesetzt werden an denen Objekte (Shapes) entlang laufen. Verschiedene Farbverläufe etc...

    Sämtliche Spielereien sind möglich ohne großen Aufwand und „manueller Berechnung“. Frei nach dem Prinzip „Keyframes reichen“.

    [Blockierte Grafik: http://www2.pic-upload.de/img/31771691/Screen.png]


    Und und und...
    Im Prinzip bietet die Bibliothek vieles um grundlegend GUIs aufzubauen, zu Designen und neue Steuerelemente hinzuzufügen bzw. selber zu schreiben. Ich würde von euch gerne wissen ob ein allgemeines Interesse an solch einer Bibliothek für AutoIt besteht. Sie muss nicht zwingend 1 zu 1 Orginalgetreu wie die JavaFX sein, jedoch würde ich gerne zumindest die Idee dahinter in eine Bibliothek für AutoIt stecken.

    Was haltet ihr davon? „Braucht“ ihr das oder würde ich meine Zeit verschwenden?

  • Icon auf Button - schlechte Qualität

    • Yjuq
    • 11. Oktober 2015 um 17:08

    Nun ja, so z.B. xD

    [autoit]

    #Region ;************ Includes ************
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiImageList.au3>
    #include <GuiButton.au3>
    #EndRegion ;************ Includes ************

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

    Opt("GUIOnEventMode", 1) ;0=disabled, 1=OnEvent mode enabled

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

    $sIcon = @ScriptDir & "\" & "icon.ico"

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

    $hGui = GUICreate("Test", 200, 400)

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

    GUICtrlCreateIcon($sIcon, 0, 10, 10, 128, 128)

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

    $hImage = _GUIImageList_Create(128, 128, 5, 3)
    _GUIImageList_AddIcon($hImage, $sIcon, 0, True)
    $idButton = GUICtrlCreateButton("", 10, 200, 150, 150, BitOR($WS_TABSTOP, $BS_ICON))
    GUICtrlSetImage($idButton, $sIcon)
    ;~ _GUICtrlButton_SetImageList($idButton, $hImage)

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_beenden")

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

    GUISetState()

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

    While 1
    Sleep(10)
    WEnd

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

    Func _beenden()
    Exit
    EndFunc ;==>_beenden

    [/autoit]
  • Die Flugbahn einer Biene (Oder: Animationen mit Neigung auf Basis von differenzierbaren Funktionen)

    • Yjuq
    • 4. Oktober 2015 um 19:43

    Ich glaube, deine Biene ist so betrunken wie du es beim schreiben des Skriptes warst... xD

  • Frage zu BitXOR

    • Yjuq
    • 30. September 2015 um 08:14

    Ouu, auf diese Weise BitXOR() zu nutzen kam mir noch nicht in denn Sinn, das merk ich mir mal. :D

    Im Grunde ist es ganz einfach, prüfst du etwas auf ein "exklusives Oder" (so heißt das Dingen), so möchtest du dass entweder das Eine, oder aber das Andere eintrifft. Nicht aber beides zur gleichen Zeit, um's mal als wörtliches Beispiel zu verdeutlichen: "Die Checkbox soll aktiviert, oder deaktiviert sein."

    Die Funktion BitXOR() prüft ob wirklich nur EINES der Zustände zutrifft. Man kann diese Vergleiche auch einmal in eine Liste aufschreiben:
    1 XOR 1 = 0 (Beide Zustände treffen zu... Sollen sie aber nicht)
    1 XOR 0 = 1 (Eines der Zustände trifft zu)
    0 XOR 1 = 1 (Eines der Zustände trifft zu)
    0 XOR 0 = 0 (Kein Zustand trifft zu, ebenfalls inakzeptabel)

    Die BitXOR arbeitet intern mit den Bits, werden 2 oder mehrere Zahlen eingegeben, so wird immer jedes einzelne Bit der eingegeben Parameter überprüft, am Ende kommt dann wieder eine Zahl heraus. In deinem Beispielcode hat der Verfasser dies sich so zu Nutze gemacht, dass ein wechseln der Zustände auf diese Weise möglich ist. Bei 3 oder mehr Parameter wird geprüft, ob die Anzahl der Zustände, welche auf 1 gesetzt sind, ungerade ist. Ist das der Fall, wird eine 1 zurückgegeben an der entsprechenden Bitstelle. Sieht in etwa so aus:

    XOR(1, 1, 1) = 1
    XOR(1, 1, 0) = 0
    XOR(1, 0, 1) = 0
    XOR(1, 0, 0) = 1
    XOR(0, 1, 1) = 0
    XOR(0, 1, 0) = 1
    XOR(0, 0, 1) = 1
    XOR(0, 0, 0) = 0

    Schauen wir uns das jetzt mal für unsere Checkbox für Beide Fälle an. Der Erste Parameter enthält jeweils den Zustand der Checkbox $GUI_ENABLE (1) oder $GUI_DISABLE (0). Die anderen beiden Parameter sind jeweils fest vorgegeben:

    XOR([0], 1, 0) = 1
    XOR([1], 1, 0) = 0

    In den Eckigen Klammern steht jeweils der Zustand, welcher zuvor in der Checkbox enthalten war. Wie ich bereits sagte, wird bei 3 oder mehr Parameter geschaut, wie oft die 1 vorkommt. So kannst du Zustände einfach tauschen. Ist im Grunde Identisch mit folgender If-Abfrage:

    [autoit]

    If $Checkbox = $GUI_ENABLE Then
    $Checkbox = $GUI_DISABLE
    Else
    $Checkbox = $GUI_ENABLE
    EndIf

    [/autoit]
  • Überprüfen ob GUICTRL aktiv ist

    • Yjuq
    • 22. September 2015 um 16:47

    Stell dir folgendes vor:
    Jemand sucht nach diesem Problem und stößt auf dem Thread.
    Nun kann er nichts hiermit anfangen und sucht weiter, findet noch 3 solche Themen und ist frustriert;
    Einfach weil die bösen Threadstarter zu egoistisch waren, ihre eigene gefundenen Lösungen mit der Welt zu teilen. ;)

  • NativeAutoItObjectEx (Objekte in AutoIt)

    • Yjuq
    • 21. September 2015 um 03:06

    Wie soll die UDF ausgelegt werden? Die bisherige AutoItObject UDF wurde (nach meinen Recherchen) für dieArbeit mit COM Objekten geschrieben. Soll hier wirklich die OO Programmierung im Fokus sein?

  • ABBYY PDF Transformer Script konvertiere PDF --> HTML 100 Euro

    • Yjuq
    • 19. September 2015 um 15:38

    Nun ja, dafür haben wir die Möglichkeit Threads mit [erledigt] zu markieren, siehst du an den grünen Haken oben bei dem Threadnamen über dem ersten Beitrag. Wie du siehst ist dieser auch gesetzt, dies hat der Threadersteller getan. Die Folge daraus: Thema ist erledigt. Deswegen sehe ich da auch keine Notwendigkeit diese Anfrage zu löschen. Außerdem stellt das auch unnötige Arbeit für unsere Administratoren sowie Moderatoren dar. Nur einmal um dies anzumerken, wollte dich nur darauf aufmerksam machen. :)

  • ABBYY PDF Transformer Script konvertiere PDF --> HTML 100 Euro

    • Yjuq
    • 18. September 2015 um 05:09

    Hey, bitte achte demnächst doch mal auf das Datum! Die Anfrage wurde am 22. April erstellt. Mittlerweile haben wir den 18. September. Weder dem Antragssteller noch irgend jemand anders suchende kann einen Nutzen aus deinem Beitrag ziehen. Hätte der Antragssteller immer noch das Interesse an das angefragte Programm gehabt, so hätte er was von sich hören lassen.

    Gegen Leichenschänderei habe ich persönlich nichts, dann aber nächstes mal mit informellen Wert für die Nachwelt! Selbst wenn dein Tipp gar nicht mal schlecht ist, wird es niemand in diesem Kontext finden da die nötigen Schlagwörter für eine effektive Suche in diesem Thread fehlen.

    LG. Make :)

  • JavaScript / JQuery | Buttons & AJAX

    • Yjuq
    • 5. September 2015 um 08:20

    Danke für deine Antwort! Ich konnte das Problem jedoch ein wenig anders lösen. Ich weise meinen Listen Elemente einfach ein data- Attribut zu mit individuellen Namen. Durch das auslesen dieses Attributes kann ich die Bezeichnung in einer Variable ablegen um so ein einfachen Vergleich zu machen. Die img Tags werden ebenfalls mit einem data- Attribut belegt, welche den Link zu der einzubindenden Textteil haben. Dieser wird letztendlich mit AJAX geladen. Funktioniert auch schon auf der Webseite ganz gut, nur noch das Untermenü fehlt. Aber wenn man es einmal hat, ist das auch nicht mehr so schwierig. ^^

    HTML
    <!DOCTYPE html>
    <html>
      <head>
        <title>
          Beispielseite
        </title>
    
        <meta charset="UTF-8" />
        <meta name="description"  content="" />
    
        <script src="http://code.jquery.com/jquery-2.1.4.min.js">
        </script>
    
        <script>
          $(document).ready(function() {
            var lastButton;
    
            $("#menu img").click(function() {
              $("#menu img:first-of-type").css("display", "none");
              $("#menu img:last-of-type").css("display", "block");
    
              if (lastButton != $(this).parent().attr("data-button")) {
                $(this).parent().find("img:first-of-type").css("display", "block");
                $(this).parent().find("img:last-of-type").css("display", "none");
                lastButton = $(this).parent().attr("data-button");
              }
            });
          });
        </script>
    
        <style>
          * {
            margin: 0;
            padding: 0;
          }
    
          li {
            list-style: none;
          }
    
          img {
            display: block;
          }
    
          img:first-of-type {
            display: none;
          }
        </style>
      </head>
    
      <body>
        <div id="menu">
          <ul>
            <li data-button="button1">
              <img src="http://www.andys-fahrschule.eu/svg/br_blanck_on.svg" alt="" />
              <img src="http://www.andys-fahrschule.eu/svg/br_blanck_off.svg" alt="" />
            </li>
            <li data-button="button2">
              <img src="http://www.andys-fahrschule.eu/svg/br_blanck_on.svg" alt="" />
              <img src="http://www.andys-fahrschule.eu/svg/br_blanck_off.svg" alt="" />
            </li>
            <li data-button="button3">
              <img src="http://www.andys-fahrschule.eu/svg/br_blanck_on.svg" alt="" />
              <img src="http://www.andys-fahrschule.eu/svg/br_blanck_off.svg" alt="" />
            </li>
          </ul>
        </div>
      </body>
    </html>
    Alles anzeigen

    Entspricht eigentlich deiner Lösung @Kanashius. Nur etwas anders "formuliert". ^^

  • JavaScript / JQuery | Buttons & AJAX

    • Yjuq
    • 4. September 2015 um 13:55

    Schönen guten Tag! :)
    Ich habe ein Problem mit einer Webseite an der ich arbeite, und zwar geht es um die Navigation. Es werden *.svg Dateien als Buttons benutzt, welche sich quasi "an" und "aus" schalten können. Dabei soll immer jeweils ein Button "an" geschaltet sein. Je nachdem welcher Button gewählt wurde, wird per AJAX der Inhalt geladen. So zumindest die Theorie, jedoch scheitere ich an der praktischen Umsetzung. Hier erst einmal der Beispielcode:

    HTML
    <!DOCTYPE html>
    <html>
      <head>
        <title>
          Beispielseite
        </title>
    
        <meta charset="UTF-8" />
        <meta name="description"  content="" />
    
        <script src="http://code.jquery.com/jquery-2.1.4.min.js">
        </script>
    
        <script>
          $(document).ready(function() {
            $("#menu img").click(function() {
              $("#menu img:first-of-type").css("display", "none");
              $("#menu img:last-of-type").css("display", "block");
              $(this).parent().find("img:first-of-type").css("display", "block");
              $(this).parent().find("img:last-of-type").css("display", "none");
            });
          });
        </script>
    
        <style>
          * {
            margin: 0;
            padding: 0;
          }
    
          li {
            list-style: none;
          }
    
          img {
            display: block;
          }
    
          img:first-of-type {
            display: none;
          }
        </style>
      </head>
    
      <body>
        <div id="menu">
          <ul>
            <li>
              <img src="http://www.andys-fahrschule.eu/svg/br_blanck_on.svg" />
              <img src="http://www.andys-fahrschule.eu/svg/br_blanck_off.svg" />
            </li>
            <li>
              <img src="http://www.andys-fahrschule.eu/svg/br_blanck_on.svg" />
              <img src="http://www.andys-fahrschule.eu/svg/br_blanck_off.svg" />
            </li>
            <li>
              <img src="http://www.andys-fahrschule.eu/svg/br_blanck_on.svg" />
              <img src="http://www.andys-fahrschule.eu/svg/br_blanck_off.svg" />
            </li>
          </ul>
        </div>
      </body>
    </html>
    Alles anzeigen

    Nun, es existieren 2 solcher Menüs. Links neben dem Text und Rechts. Die linke Menüleiste soll jeweils ein Untermenü enthalten, welches ebenfalls mit diesen Buttons (diese sind natürlich später beschriftet ^^) ausgestattet sein wird. Je nachdem welcher Menüpunkt links ausgewählt wurde, wird auch das Menü sich verändern (sprich: Per AJAX die entsprechenden Buttons laden). Das Verhalten soll später ebenfalls dem hier gezeigten Beispiel entsprechen, nur halt "in sich selber", also unabhängig ob der übergeordnete Menüpunkt leuchtet. Das Rechte Menü besitzt keine weiteren Unterpunkte, dort werden dann die wichtigsten Seiten wie Kontaktmöglichkeiten der Impressum verlinkt werden.

    Weiß jemand wie man diese Buttonspielerei am besten so löst wie ich mir das vorstelle? Das Laden von Inhalt per AJAX ist kein Problem, jedoch diese Fallunterscheidungen was die Buttons betrifft, bringt mich zur Verzweiflung. ^^

    Achja, in meinen Beispiel kann man zwar ein Button einschalten, aber nicht wieder abschalten. Auch das möchte ich irgendwie bewerkstelligen... In dem Fall soll sich einfach der untergeordnete Menüpunkt schließen bzw. nicht mehr öffnen wenn man mit der Maus über den Button fährt. :S

  • GUICtrlSetOnEvent reagiert in in der zeiten GUI. Warum?

    • Yjuq
    • 3. September 2015 um 07:40
    Zitat

    Das war nett gemeint. Ich fand deinen vorherigen Nick lustig.

    Vielleicht nur ein Tippfehler wie einmal bei meinem Benutzernamen? :D
    *ShitDown - Hust Hust*

  • Textbasiertes Spiel

    • Yjuq
    • 2. September 2015 um 01:34

    Hi, falls du bei deinem Textbasierten Game Unterstützung brauchst (egal in welcher Richtung) kannst du mich gerne anschreiben. Hätte bock da ein wenig mitzumischen ^^

  • „Privatunterricht“ in AutoIt

    • Yjuq
    • 25. August 2015 um 17:22

    Hallo Ihr lieben! :)
    Im folgenden Thread ([gelöst] Probleme bei der Pfadauswahl und Funktionen) hat BugFix eine „Online-Schule“ angesprochen. Daraufhin hat @bazii einen eigenen Thread errichtet welcher hier zu finden ist: AutoIt Grundlagen Schulung oder Webinar / Interessenten gesucht.

    Nun denn, ich wäre sehr froh wenn hier tatsächlich etwas realisiert werden sollte. Sofern da was intern schon in Planung sein sollte lasst es mich wissen, ich würde liebend gerne etwas dazu beitragen. ^^

    Aber darum geht es in diesem Thread nicht, ob sich wirklich bis dahin eine Art Online-Schule oder Webinare hier in AutoIt durchsetzt, steht in den Sternen. Bis dahin würde ich gerne einen kostenlosen „Privatunterricht“ anbieten.


    Was genau beinhaltet dieser „Privatunterricht“?
    Im Grunde sollen Themenbereiche angesprochen werden wo ihr selber alleine einfach nicht weiter kommt. Sei es an das herangehen von Problemen oder das Erstellen von GUIs. Individuell möchte ich auf eure gewünschten Themenbereiche eingehen und euch so gut wie möglich persönlich erklären, was es damit auf sich hat und wie die Thematik funktioniert. Allerdings sollte dieser Service tatsächlich nur dann genutzt werden, falls ihr im Selbststudium einfach nicht mehr weiter kommt und die komplette Thematik einfach nicht kapiert.


    Eigener Kenntnisstand
    Da ich auch nur ein Mensch bin, begrenzen sich derzeitig meine Fachkenntnisse auf folgende Themenbereiche:
    - AutoIt Grundlagen
    - GUI Programmierung
    - Weiterführendes zur GUI Programmierung (Windows Messages etc.)
    - GDI sowie GDI+

    Natürlich gibt es einige spezielle Themenbereiche die mich interessieren. Diese 4 sind allerdings jene, die den Großteil zusagen sollten. Speziellere Themenbereiche sind folgende:
    - Memory Management (Arbeiten mit Pointern und direkt auf dem RAM zugreifen etc.)
    - Komplexe mathematische Algorithmen (Ja, ich schreibe gerne komplizierte Algorithmen mit aufwendigen Berechnungen)
    - Bitmanipulation (Beinhaltet die Theorie, wie ein Computer eigentlich rechnet)
    - AutoIt Object (Objekt orientierende Programmierung mit AutoIt)

    Kann sein dass ich auf Anhieb was in der Liste vergessen habe, falls ihr ein spezielles Themengebiet vermisst, dürft ihr mich gerne darauf aufmerksam machen. Eventuell habe ich sogar Ahnung davon und kann dies getrost in die Liste mit aufnehmen. ^^


    Was nun?
    Sofern Ihr Probleme mit einen der oben Aufgelisteten Themenbereiche habt, könnt Ihr euch gerne bei mir im Thread oder einfach per PN melden. Damit meine ich nicht Probleme mit einzelnen Codezielen, sondern ein komplettes Verständnisproblem mit der Thematik. Bevorzugt würde ich euch dann mit Skype oder TeamSpeak einfach nur erklären was es damit auf sich hat. Eventuell wäre TeamViewer noch von Vorteil um ggf. mit euch zusammen Codezeilen zu schreiben. Natürlich ist auch Eigeninitiative gefragt! Wenn ihr selber nicht aktiv mitmacht, bringt das Alles sowieso dann nichts. :)


    Falls noch Fragen sind...
    … dürft ihr sie mir gerne stellen. Ansonsten wünsche ich euch viel Erfolg und gutes Gelingen! Ansonsten steht euch natürlich auch das Forum offen. :)

  • Kommentar von Funktionen im GUI

    • Yjuq
    • 24. August 2015 um 01:08

    Naja, FileRead() und dann eben mit den String Funktionen die Kommentare herausfiltern. Da bietet sich StringRegExp() sehr gut an.
    Wenn es auch später in der kompilierten *.exe funktionieren soll, dann vorab eine Abfrage auf @Compiled einbauen und stattdessen die *.exe Datei einlesen.
    Oder alternativ einfach direkt @ScriptFullPath nutzen. Mit den Optionen meine ich die Kompiler-Optionen, wenn du einen Rechtsklick auf deine *.au3 machst kannst du unter dem Kontextmenü
    einfach "Compile with Options" auswählen. Unter dem Tab [Resource Update] einfach einen Haken ganz unten bei "Save a copy of the Scriptsource in the uotput program resources." setzen.

  • Kommentar von Funktionen im GUI

    • Yjuq
    • 23. August 2015 um 20:57

    Ganz einfach: Du ließt deine au3 bzw. kompillierte *.exe Datei ein (In den Optionen einstellen dass Sourcecode dort hinterlegt werden soll) und filterst die entsprechenden Kommentare heraus. Danach mit GUICtrlSetTip() die ToolTips entsprechend den Buttons zuweisen.

  • Kommentar von Funktionen im GUI

    • Yjuq
    • 23. August 2015 um 20:05

    Wie meinst du das? Sollen die Kommentare später in der GUI als Tooltip angezeigt werden oder während der Entwicklung in der SciTE? So ganz kann ich das nicht aus dem Text heraus lesen.
    Vielleicht wäre ja mal ein Beispiel ganz nett. :)

  • AutoIt mit PDA Barcodescanner? Erfahrung?

    • Yjuq
    • 21. August 2015 um 02:58

    Betriebssystem: Microsoft Windows Embedded Handheld 6.5

    Es wird wohl nicht möglich sein AutoIt Programme darauf zum laufen zu bringen. AutoIt greift überwiegend auf die WinAPI zurück, der PDA hingegen baut auf Windows Mobile 6.5 auf und enthält andere APIs. Wenn du darauf programmieren möchtest wirst du dir das "Windows Mobile 6.5.3 SDK" herunterladen und mit C# oder Visual Basic arbeiten müssen. Ich selber habe die Informationen nur durch Recherche zusammen getragen, ich selber habe noch nie für einen PDA programmiert. ^^

  • AutoIt Picture Hilfe

    • Yjuq
    • 20. August 2015 um 06:34

    Hi, am unproblematischsten geht das, indem du einfach die WM_PAINT Message abfängst und dementsprechend dein Bild direkt in die GUI zeichnest. Sämtliche Controls werden danach einfach nur noch darüber gezeichnet. Weil ich gerade Langeweile habe, habe ich eine passende Funktion dazu bereits geschrieben. Es dürfte auch mit mehreren GUIs funktionieren da intern eine kleine Datenbank angelegt wird, welches Fenster bereits welche Ressourcen reserviert hat. Das Bild wird dementsprechend auf das Gesamte Fenster gestreckt. ^^

    Hier der vollständige Sourcecode zum ausprobieren:

    [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

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

    #include <Array.au3>
    #include <AutoItConstants.au3>
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Global $hGUI

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

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

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

    $hGUI = GUICreate('GUI Background Example')
    GUISetBkImage($hGUI, {Pfad zum Bild})

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

    GUICtrlCreateButton('Beispiel', 10, 10, 100, 20)
    GUISetState()

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

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

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

    While GUIGetMsg() <> $GUI_EVENT_CLOSE
    WEnd

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

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

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

    Func GUISetBkImage($hWnd, $sFileName)
    GUIRegisterMsg($WM_PAINT, __GUISetBkImage_WM_PAINT)
    __GUISetBkImage_Resources($hWnd, $sFileName)
    OnAutoItExitRegister(__GUISetBkImage_ExitRegister)
    EndFunc

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

    Func __GUISetBkImage_ExitRegister()
    __GUISetBkImage_Resources(Null)
    EndFunc

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

    Func __GUISetBkImage_Resources($hWnd, $sFileName = '')
    Local Static $avResources[1][3]
    Local $iFor, $iIndex, $ahRes[2]

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

    If IsKeyword($hWnd) = $KEYWORD_NULL Then
    For $iFor = 1 To $avResources[0][0]
    _GDIPlus_ImageDispose($avResources[$iFor][2])
    _GDIPlus_GraphicsDispose($avResources[$iFor][1])
    _GDIPlus_Shutdown()
    Next

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

    Return
    EndIf

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

    $iIndex = _ArraySearch($avResources, $hWnd, 1)
    If $iIndex = -1 Then
    $avResources[0][0] += 1
    ReDim $avResources[$avResources[0][0] +1][3]
    $iIndex = $avResources[0][0]

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

    _GDIPlus_Startup()
    $avResources[$iIndex][0] = $hWnd
    $avResources[$iIndex][1] = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $avResources[$iIndex][2] = _GDIPlus_ImageLoadFromFile($sFileName)

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

    Return
    EndIf

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

    $ahRes[0] = $avResources[$iIndex][1]
    $ahRes[1] = $avResources[$iIndex][2]

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

    Return $ahRes
    EndFunc

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

    Func __GUISetBkImage_WM_PAINT($hWnd)
    Local $aiPos = WinGetPos($hWnd)
    Local $ahRes = __GUISetBkImage_Resources($hWnd)
    Local $hBitmap = _GDIPlus_BitmapCreateFromGraphics($aiPos[2], $aiPos[3], $ahRes[0])
    Local $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)

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

    _GDIPlus_GraphicsDrawImageRect($hBuffer, $ahRes[1], 0, 0, $aiPos[2], $aiPos[3])
    _GDIPlus_GraphicsDrawImage($ahRes[0], $hBitmap, 0, 0)

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

    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)

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

    Return $GUI_RUNDEFMSG
    EndFunc

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

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit]
  • AutoIt Grundlagen Schulung oder Webinar / Interessenten gesucht.

    • Yjuq
    • 20. August 2015 um 02:52

    Ich schaue mal wie sich die Sache mit bazii via Skype und TeamViewer entwickelt, evtl. werde ich sogar dauerhaft einen kostenlosen Privatunterricht anbieten. Wie lange die Organisation dieser Webinare dauert steht wohl noch in den Sternen, bis dato wäre sicherlich dieses Angebot von mir durchaus eine gute Alternative. ^^

    Falls da jemand schon was plant im Team, ich selber könnte und würde die Zeit aufbringen etwas beizutragen. Gerne könnt ihr mich dabei integrieren. :)

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™