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“
  • Meinst du das DoubleTapped-Event von WinRT oder das von Silverlight? Wenn ja: Das gibt es in WPF nicht. Also so gar nicht, weder für ein Grid noch für irgend ein anderes UIElement.


    Du kannst UIElement.TouchDown abonnieren und in dem Handler manuell überprüfen, ob in einem gegebenen Zeitintervall zwei Touchs auf die gleiche/ähnliche Position waren.

  • Vermutlich smth like this:



    Eventuell macht es Sinn, auch den Punkt abzufragen, auf den getatscht wurde, um sicherzustellen, dass jemand mit 2 Fingern nicht versehentlich den Doppeltatsch auslöst, wenn er links unten und rechts oben anfasst um zu zoomen.

    FC (PKMN Y): 3282-3144-2343 — Safarityp: Pflanze (Maracamba, Folikon, Tangela) — Bei Interesse schickt mir einfach ne PM ;)


    Testet meine Pokemon-Checkliste für Gen. 1 bis 6 (für Sammler, und solche die es werden wollen – jetzt mit vollständiger Habitatsliste für alle Editionen – OR/AS noch minimal unvollständig)

    4 Mal editiert, zuletzt von Nuffin ()

  • Danke für das Beispiel, Nuffin. :D (Und sorry, dass ich erst jetzt antworte. Hatte es nicht sofort ausprobieren können.)
    Da ich in C# arbeite und daher ein wenig anders drangehen muss, habe ich es umgeschrieben.


    Nur habe ich irgendwie das Problem, dass der Timer nicht so ganz mag, wie ich will. Denn die "Time.Enabled" Sache scheint nicht so ganz zu funktionieren. Was mache ich falsch?
    Denn ich kann sobald ich angefangen habe zig Mal die Aktion auf demselben Punkt ausführen.




    Übrigens habe ich noch eine andere Frage:


    Ich habe auf diesem Canvas, wo ich das mache, UserControls rumliegen.
    Und wenn ich wohin DoubleTappe und da, wo es ist, ein UserControll liegt, soll die Aktion nicht ausgeführt werden, weil ich ja das objekt antappe.


    Ich weiß, dass es da irgendwie so eine vorgegebene Hit-Try-Funktion gibt. Aber so, wie ich sie probiert habe, ließ die sich das mit dem Touch nicht ganz abrufen. Also sie geht wenn ich mitten drauf gehe - aber die Randbereiche, die schluckt er einfach nicht.
    Gibt es dafür ne gute Dokumentation? :D

  • Also, wenn ich das richtig verstanden habe, willst du, dass die UserControls das Touch-Down Event abfangen. Dann wird es nicht im Canvas ausgelöst:


    Ach ja, verwende in WPF lieber System.Windows.Threading.DispatcherTimer :D

  • Code
    if (clickme == false)            {                clickme = true;            }            if (time.Enabled == true && (tpX - lastX < 20 && tpX - lastX > -20) && (tpY - lastY < 20 && tpY - lastY > -20) && clickme == true)            {                // mach was            }


    Wenn clickme false ist, dann setzt du es true.
    Danach fragst du ob clickme true ist.


    Eine von beiden Aktionen ist vollkommen unnötig, Möglichkeit wäre auch clickme ganz rauszulassen, da du davon imo eh keinen Nutzen hast :(


    Zur Übersicht würde ich das ganze auch eher so schreiben


    Code
    if (time.Enabled == true && clickme == true && (tpX - lastX < 20 && tpX - lastX > -20) && (tpY - lastY < 20 && tpY - lastY > -20))            {                // mach was            }


    Oder gar


    Code
    if (time.Enabled && clickme && (tpX - lastX < 20 && tpX - lastX > -20) && (tpY - lastY < 20 && tpY - lastY > -20))
                {
                    // mach was
    
    
                }


    Nur so ein paar Anregungen zum Programierstil, ist jedem selbst überlassen, kann aber nicht schaden ;)


    e/ Die Einrückungen spinnen ein bisschen durchs kopieren, geht mir eig um den Code ;D

  • Mein Beispiel ist C#… Ich hab's nur als C/C++ markiert, um Syntax-Highlighting zu bekommen (da die Keywords in C# und C++ ungefähr die gleichen sind).


    In C++/CLI würde das ganze etwa so aussehen (auch wenn es, glaube ich, in C++ keine partial classes gibt):


    Das Beispiel in der C#-Version sollte eigentlich so direkt verwendbar sein, wenn du einen System.Threading.Timer verwendest – vorausgesetzt du möchtest nicht zusätzlich noch einfachen Touch abfangen.


    Außerdem macht es keinen Sinn, bools mit true oder false zu vergleichen, weil diese Vergleiche wiederum bools zurückgeben… Einfach expr statt expr == true bzw. !expr statt expr == false tun genau das gleiche, und machen den Code – finde ich zumindest – lesbarer.

    FC (PKMN Y): 3282-3144-2343 — Safarityp: Pflanze (Maracamba, Folikon, Tangela) — Bei Interesse schickt mir einfach ne PM ;)


    Testet meine Pokemon-Checkliste für Gen. 1 bis 6 (für Sammler, und solche die es werden wollen – jetzt mit vollständiger Habitatsliste für alle Editionen – OR/AS noch minimal unvollständig)

    Einmal editiert, zuletzt von Nuffin ()

  • Bei Blogger spinnt die Kommentar-Anzeige schon seit längerem, weshalb ich das mal mit einem Tutorial über den HTML-Text angehen wollte. Angeblich soll ich diese Zeile:
    <data:post.commentLabelFull/>: durch diese ersetzen:
    <b:if cond='data:post.numComments == 1'>1 Kommentar<b:else/><b: if cond='data:post.numComments == 0'>0 Kommentare<b:else/><data:post.numComments/>Kommentare</b:if></b:if>


    Wenn ich das mache, bekomme ich aber eine Fehlermeldung: Vorschau der Vorlage konnte nicht geladen werden: Fehler beim Parsen der XML, Zeile 1552, Spalte 84: Attribute name "if" associated with an element type "b:" must be followed by the ' = ' character.


    Au weia :'D
    Was ist denn da los?

  • Guten Abend,


    ist es möglich, dass man prüft ob in einer variable das gleiche steht wie in einer anderen, ohne strtolower oder strtoupper zu nutzen?


    Bsp.:
    [PHP]
    $var1 = "Hallo";
    $var2 = "hallo";
    if($var1 == $var2) {
    echo "Korrekt!";
    }
    [/PHP]


    Das würde ja natürlich nichts ausgeben, aber gibt es eine Möglichkeit, dass die Groß- und Kleinschreibung ignoriert wird?
    Bei anderen Funktionen wie z.B. str_replace kann man ja stri_replace benutzen :)


    LG

  • Hat sich erledigt :)
    Ich benutze ein Routingsystem und wenn in der URI z.B. Mustermann steht, dann wird auch das Profil angezeigt, wenn da allerdings mustermann oder muSTerMann steht nicht, das sollte aber auch so sein.
    Ich habe nun Optionen in das System einprogrammiert, das ging schneller :)


    Aber dennoch danke :)