Sammeltopic für kurze Codingfragen

Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!

Zu der Infoseite von „Die Mo-Mo-Manie“
  • Nochmal bitte in richtig. JS steht überlichweise für JavaScript. JavaScript hat mich Java in etwa so viel zu tun wie eine Baumschule mit einer Schule. Das sind zwei völlig verschiedene Dinge.


    Also, was macht ihr denn genau? Ich hab es jetzt so verstanden, dass ihr in irgend einer Form ein Java-Applet verwendet. Aber wie genau? Wie wird das in eurem »Windows-Programm« eingebunden? Was ist das Windows-Programm für ein Programm? In welcher Laufzeitumgebung läuft das? Win32? .NET? Warum verwendet ihr überhaupt ein Java-Applet in einem Windows-Programm? Und ist es überhaupt ein Applet und nicht einfach ein Java-Programm, das irgendwie in einem anderen Programm eingebunden ist?

  • Wir schreiben eine Erweiterung für ein Microsoft Lagerverwaltungsprogramm. Diese Erweiterung lässt sich im Browser und im Lagerverwaltungsprogramm selbst öffnen und stellt das Lager in 3D dar. Da es auch im Browser gehen soll (und es gesamt im vergleich die performanteste Lösung war), haben wir es in THREE.js geschrieben.


    Im Browser wird dann halt eine Seite mit THREE.js aufgerufen, wenn man es in dem Microsoftprogramm öffnet, haben wir es einfach nur in einem Fenster den JS Code (der auch etwas JQuery beinhaltet) eingebunden, was dankbarer Weise bei dem Microsoftprogramm ging.


    Das Problem haben wir jetzt im Browser nicht, aber im dem Programm, wo es eben in einem Fenster ist, wo auch noch ein paar andere Sachen eingeblendet sind. Da ist es so, dass wir erst den Bereich mit dem JS drin anklicken müssen, um die Tastatursteuerung für den JS Teil nutzen zu können. Frage ist halt, ob man JS dazu bringen kann auch ohne das vorherige Anklicken "aktiviert" zu sein (wir wissen nicht was genau dafür sorgt). Dass es sich sozusagen in den "Vordergrund drängelt".

  • Vermutlich würde es helfen, wenn ihr den JS-Bereich am Anfang als Fokus setzt, aber ich vermute mal, dass ihr dazu nicht die Möglichkeit habt?
    Mir fällt keine Möglichkeit ein, die aus dem JS-Teil heraus möglich ist, da es wahrscheinlich ein Problem davon ist, wie das Programm den JS-Teil ausführt (bzw. wann).

  • Vermutlich würde es helfen, wenn ihr den JS-Bereich am Anfang als Fokus setzt, aber ich vermute mal, dass ihr dazu nicht die Möglichkeit habt?

    Nope. Leider nein. :/ Microsoft setzt den Fokus effektiv automatisch auf das eigene Dropdrown Menü von dem Programm. Haben wir schon probiert dahin zu ändern, aber das scheint immer der Autofokus zu sein.

  • Dann eben nochmal die Frage: In welcher Umgebung und Sprache wird das Windows-Programm geschrieben und ausgeführt? Auch die verschiedenen UI Libraries, die die verschiedenen Windows-Umgebungen anbieten, gibt es die Möglichkeit, Elemente programmatisch zu fokussieren.

  • Ich mal wieder.


    Folgendes. Ich möchte mithilfe von Python mehrere Dateien aus einer URL Liste von einem HTTPS Server laden. Dafür muss ich mich auf der Seite allerdings erst einloggen, damit ich Zugriff auf die Datei bekomme.
    Kennt da jemand eine elegante Lösung so etwas zu machen?

  • Per Webkonsole im Browser die abgesetzten HTTP-Requests untersuchen. Diese dann in Python einfach genau so durchführen. Vermutlich also einfach passenden Login per HTTP Post abschicken. Danach checken, wie die Benutzeridentifizierung abläuft. Also dann in folgenden Requests passenden Cookie oder sonstige Parameter mitsenden, damit folgende Requests als von einem eingeloggten Nutzer abgesendet angesehen werden.

  • hi, ich habe hier ein kleines problem im javascript und da ich nicht sehr bewandert bin, wollte ich mal hier nachfragen (sofern das topic noch aktiv ist lol):
    ich habe eine funktion, die laufend die scroll-position auf der seite abcheckt, und sobald die scrollposition die eines bestimmten <div> überschreitet, wird eine weitere funktion ausgeführt, die ein <p> im vorhin genannten <div> hineinfaden (von 0 zu 1 opazität) lässt.
    das problem ist jetzt, dass die funktion natürlich immer ausgeführt wird, wenn ich scrolle und dadurch die animation wiederholt wird, wenn das <p> bereits voll sichtbar ist und dadurch entstehen unerwünschte "ruckelungen" bei der transparenz des <p> beim scrollen.
    gibt es eine möglichkeit, die funktion beispielsweise zu unterbinden, sobald die opazität des <p> 1 erreicht hat? oder irgendwelches basteln mit den scrollpositionen?
    falls das problem nicht verständlich ist, kann ich gerne ein fiddle nachtragen. wäre cool, wenn sich das problem ohne jquery lösen lässt, da ich mit dem gar keine erfahrung habe, ist aber nicht zwingend.

  • Je nachdem, ob es auch wieder raus faden soll, wenn man wegscrollt, fällt die Lösung ggfs unterschiedlich aus.
    Im Grunde genommen musst du eine If-Abfrage einbauen, die die Ausführung der Funktion verhindert, wenn der gewünschte Zustand erreicht ist. Wie diese Abfrage genau aussehen muss hängt von deinen Wünschen ab.
    Gibt wahrscheinlich noch schönere Möglichkeiten, die gesamte Funktionalität umzusetzen, aber spontan ist das das einfachste, das mir einfällt.

  • Indem du nicht mit einem selbstgebastelten Timer zur Animation arbeitest, sondern mit CSS Transitions und dort die entsprechenden Events im JavaScript-Code verwendest. Des Weiteren würde ich für sowas Waypoints verwenden. Damit hast du eine weitaus tiefergehend getestete Bibliothek für die onscroll-Funktion und kannst für das Fading immer noch auf CSS-Transitions setzen.

  • Ich habe ein Problem. Ich versuche mich gerade wieder in Javascript einzuarbeiten und ich hänge an einer Stelle fest. Ich will eine Datei öffnen, die gegebenenfalls auch lokal liegt.


    Ich habe jezt ein wenig gegooglet und die Funktion so eingefügt, aber irgendwie wirft er dennoch fehler.


    Die Funktion wird ausgelöst, wenn sich in einem Textfeld Zeichen befinden. (Da die Funktion eigentlich Übereinstimmungen zwischen dem Textfeld und der Datei überprüfen wird.)


    Hier mal der Code, wie ich ihn habe:



    Die Fehler, die herauskommen:



    Was mache ich falsch?


    Bin bei JavaScript leider sehr raus, da es eine weile her ist, dass ich damit zuletzt gearbeitet habe.

  • Folgende Situation mit einem Arduino:

    Die kleine, schnuckelige Platine macht mit dem angeschlossenen Krempel nicht so ganz das, was ich erwartet hatte.

    Nach etwas Grübeln und dem wachsenden Gefühl der Sicherheit, dass der Code stimmt, baue ich aus Verzweiflung ein Serial.println(„Test“); ein, um mir auf dem seriellen Monitor anzeigen zu lassen, ob das Programm an der entsprechenden Stelle im Code ankommt.

    Ich stelle fest, dass dem so ist, und der Code somit genau das macht, was er soll.

    Ein paar Sekunden später stelle ich dann auch fest, dass der ganze angeschlossene Krempel genau das macht, was er soll.

    Werfe ich das testweise eingebaute Serial.println(„Test“); wieder raus, funktioniert das Programm nicht mehr richtig.

    Die Lösung?

    Ich lasse das Serial.println(„Test“); einfach drin. :thumbsup:


    Mir kommt es da jetzt wirklich nicht drauf an, falls aber zufällig jemand schon mal Bekanntschaft mit diesem Phänomen gemacht, und eine Idee hat, würde ich das beim nächsten Umbau mal berücksichtigen.

  • Mir kommt es da jetzt wirklich nicht drauf an, falls aber zufällig jemand schon mal Bekanntschaft mit diesem Phänomen gemacht, und eine Idee hat, würde ich das beim nächsten Umbau mal berücksichtigen.

    Hört sich stark danach an als wäre eines der Peripheriegeräte schlichtweg noch nicht bereit, die Zeitverzögerung durch das Schreiben auf den Serial-Port schafft dem Gerät aber genug Zeit um bis dahin bereit zu sein. Sollte eigentlich ein Ready-Bit haben, auf das du abfragen solltest

  • Hört sich stark danach an als wäre eines der Peripheriegeräte schlichtweg noch nicht bereit, die Zeitverzögerung durch das Schreiben auf den Serial-Port schafft dem Gerät aber genug Zeit um bis dahin bereit zu sein.

    Eigentlich steuert der Arduino lediglich ein LED-Band. PWM-Signale an fünf MOSFETs.

    Ist jetzt nichts weltbewegendes, bzw. Auch nicht der erster Aufbau in dieser Art.

    Aber dafür halt umso verwirrender.

  • Hört sich stark danach an als wäre eines der Peripheriegeräte schlichtweg noch nicht bereit, die Zeitverzögerung durch das Schreiben auf den Serial-Port schafft dem Gerät aber genug Zeit um bis dahin bereit zu sein.

    Eigentlich steuert der Arduino lediglich ein LED-Band. PWM-Signale an fünf MOSFETs.

    Ist jetzt nichts weltbewegendes, bzw. Auch nicht der erster Aufbau in dieser Art.

    Aber dafür halt umso verwirrender.

    hast du vielleicht auch ein bisschen code für uns, damit wir sehen was du da genau tust?

  • Ich habe gerade auch ein Problem, das ich gerade einfach nicht ganz verstehe. Grübel seit 2 Stunden schon drüber nach, weil ich nicht sehe, was da falsch läuft. O.ô


    Kurzfassung: Ich archiviere gerade Vertragsdaten über Python und verarbeite diese über einen kleinen Automaten.


    Da es sich um Vertragsdaten handelt, kann ich natürlich nicht das ganze Datenset rausgeben, aber grundlegend: Es ist eine CSV Datei und ich brauche aus der Datei Geldbeträge, die in der Tabelle stehen. Diese werden jedoch anders verarbeitet, je nachdem ob wir einen Altvertrag oder einen Neuvertrag haben.


    In der Spalte "Art/Typ" wird das erklärt.


    Hier haben Verträge entweder den Eintrag "Vermietung\Neu - Einzelvertrag" oder "Vermietung\Neu - Ablösungsvertrag".


    Jetzt kommen wir zu dem Problem.


    Ich schreibe das ganze in eine Liste von Dictionaries. Also jeder Eintrag wird ein Dict, die natürlich auch den Key "Art/Typ" haben. Und... Irgendwie verschwinden die "Vermietung\Neu - Einzelvertrag", wenn ich diese Liste von Funktion A nach B weiterreiche. Obwohl vorher und nachher die Liste gleich lang ist.


    Ich zweifle hier gerade an meinem Verstand, ey.


    Der Code sieht wie folgt aus:



    Egal an welcher Stelle, die Länge der Liste ist dieselbe. Aber sobald ich die im Main-Funktion rausbekomme, verschwinden diese Einträge wenn ich durch die Liste laufe.


    Und... Ich verstehe es nicht. Was übersehe ich? Denn ich übersehe irgenetwas.