Kann es sein, dass du zuerst den Code einfügst (in einen WYSIWYG-Editor) und dann erst in den HTML-Editor gehst?
Sammeltopic für kurze Codingfragen
-
-
Fakt ist, dass in Seitenquelltext am Ende Zeilenumbrüche generiert werden, ich nehme an, dass liegt daran, dass Blogspot Newlines automatisch in Zeilenumbrüche umwandelt. Konsequenz für dich: Zeilenumbrüche aus dem Eingabefeld entfernen.
-
TIM! Danke!! :D
Endlich, dank Tsuki wusste ich sogar, welche dieser cryptischen Zeichen die Zeilenumbrüche waren (Triumph!)War das jetzt eigentlich das richtige Thema? Ich hab immer wieder mal Probleme mit sowas und bin da sicher nicht die Einzige ^^""
-
Ja, das Thema ist korrekt.
-
Gibt es bei C# WPF eine Möglichkeit ein ganzes Grid (bzw. einen Punkt in einem Grid) mit DoubleTapped anzusprechen?
Wenn ja: Wie sieht das im XAML aus?
-
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.
-
Danke für die Antwort. Wie kann man das machen? Hast du eventuell einen Link zu einer Seite, wo das an einem Beispiel erklärt wird? :)
-
Vermutlich smth like this:
C
Alles anzeigenpartial class View { private Timer _timer; private volatile bool _tapped; public View() { _timer = new Timer(x => _tapped = false); InitializeComponent(); grid.TouchDown += (s, e)=> { if(_tapped) { _tapped = false; OnDoubleTap(s,e); } else { _tapped = true; _timer.Change(300 /* whatever */,Timeout.Infinite); } }; } void OnDoubleTap(object sender, TouchEventArgs args) { // Was auch immer du tun willst } }
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. -
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.Code
Alles anzeigenpublic partial class MainWindow : Window { private Timer _timer; private volatile bool _tapped; public Timer time = new Timer(1); private Boolean clickme = false; public double lastX = 0.00; public double lastY = 0.00; public MainWindow() { InitializeComponent(); } private void HouseCanvas_TouchDown(object sender, TouchEventArgs e) { TouchPoint tp = e.GetTouchPoint(null); double tpX = tp.Position.X; double tpY = tp.Position.Y; 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 } lastX = tpX; lastY = tpY; } } }
Ü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
Codeif (time.Enabled == true && clickme == true && (tpX - lastX < 20 && tpX - lastX > -20) && (tpY - lastY < 20 && tpY - lastY > -20)) { // mach was }
Oder gar
Codeif (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):
Code
Alles anzeigenpartial ref class View { private: System::Threading::Timer^ _timer; volatile bool _tapped; void OnDoubleTap(System::Object^ sender, System::Windows::TouchEventArgs^ args) { // Was auch immer du tun willst } void OnTap(System::Object^ sender, System::Windows::TouchEventArgs^ args) { if(_tapped) { _tapped = false; OnDoubleTap(sender, args); } else { _tapped = true; _timer.Change(300 /* whatever */,Timeout.Infinite); } } void OnTimerCallback(System::Object^ unused) { _tapped = false; } public: View() { _timer = gcnew System::Threading::Timer(gcnew System::Threading::TimerCallback(this, &OnTimerCallback)); InitializeComponent(); grid->TouchDown += gcnew TouchEventHandler(this, &OnTap); } }
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.
-
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? -
Worauf bezieht sich denn das b? Für mich klingt die Fehlermeldung, als würdest du das if falsch einsetzen.
-
Ich habe ehrlich gesagt keine Ahnung! Es geht konkret darum, dass am Ende von einem Post immer nur "Kommentare" angezeigt wird und ich das Wort "Kommentare" im Template nicht ersetzen kann. Blogger spackt da ein bisschen rum und deshalb soll man das einfügen. Ich habe es nach diesem Tutorial gemacht.
-
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
-
Genau dafür sind diese Funktionen doch da. Wo liegt das Problem, diese zu verwenden?
-
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 :)
-
Weiß jemand, wie man mit PHP den Wert einer INI Datei ändern kann? (Einer INI Datei, nicht die php.ini!)
-
Datei als Textdatei öffnen und am Inhalt rumspielen, aber ob das schön ist, ist wieder eine völlig andere Frage.
Was genau möchtest du denn machen?