Anzeige:
Seite 2 von 2 ErsteErste 12
Ergebnis 16 bis 20 von 20

Thema: Textield in TikZ-Node

  1. #16
    Registrierter Benutzer
    Registriert seit
    12.11.2008
    Beiträge
    214
    Ich habe eine neue Sache, die ich gerne hinbekommen würde.

    Ich habe ein Textfeld, bei dem eine bestimmte Eingabe erwartet wird. Wenn diese Eingabe erfolgt, färbt sich die Schrift grün, bei einer anderen Eingabe färbt sich die Schrift rot.

    Ich würde nun gerne haben, dass die Anzahl der falschen Eingaben gezählt und in einem anderen Textfeld dargestellt wird.

    Ich habe es so versucht, dass ich eine Variable habe, die hochgezählt wird, wenn eine falsche Eingabe erfolgt (siehe MB). Das klappt soweit auch, allerdings habe ich das Problem, dass meine Zählvariable immer neu initialisiert wird. Dadurch kommt die Variable nie über 1 hinaus.

    Ich suche jetzt irgendeine Möglichkeit, wie ich die Variable Fehler so definieren kann, dass sie nur einmalig initialisiert wird.

    Würde mich freuen, wenn jemand ei Antwort dazu weiß.

    Damit man es sieht, muss man die Datei im Adobe Reader betrachten, damit die JavaScript ausgeführt werden.

    Viele Grüße
    MC

    Code:
    \documentclass[20pt,a4paper]{article}
    
    \usepackage{xcolor}
    \usepackage[]{hyperref}
    \begin{document}
    \begin{Form}
    		
    	\TextField[
    		name=f1,
    		format = {
    			var var1 = this.getField('f1');
    			var fehler=0 ;
    			var richtige = 0;
    			if (3 == var1.value) {
    				var1.textColor = ["RGB",0.17,0.47,0.32];	
    			}else{
    				var1.textColor = color.red;	
    				fehler++;
    			}
    		}
    	]{Feld1}
    	
    
    \TextField[
      maxlen=40,
      calculate={%
        event.value = fehler;
      },
       align=2,height=10pt,width=45pt,name=gamma,readonly=true]{Fehler}
    
    \end{Form}
    \end{document}

  2. #17
    Registrierter Benutzer
    Registriert seit
    12.11.2008
    Beiträge
    214
    Ich habe es jetzt hinbekommen.

    Ich habe jetzt noch das Problem, dass der Startwert des Feldes "Fehler" der Anzahl der Felder, die überprüft werden, entspricht, da am Anfang die Werte ja nicht stimmen. (Ich habe mal ein Bild gemacht, wo man es sieht)

    Es wäre toll, wenn jemand eine Idee hätte, wie ich das korrigieren kann.
    Viele Grüße
    Mc

    Code:
    \documentclass{article}
    
    \usepackage{hyperref}
    \begin{document}
    \begin{Form}
    	
    		
    	\TextField[
    		name=f1,
    		format = {
    			var var1 = this.getField('f1');
    			var fehler1 = this.getField('fehler');
    			var richtige1 = this.getField('richtige');
    			if (3 == var1.value) {
    				var1.textColor = ["RGB",0.17,0.47,0.32];
    				richtige1.value++;
    			}else{
    				var1.textColor = color.red;	
    				fehler1.value++;
    			}
    		}
    	]{Feld1}
    		
    	\TextField[
    		name=f2,
    		format = {
    			var var2 = this.getField('f2');
    			var fehler1 = this.getField('fehler');
    			var richtige1 = this.getField('richtige');
    			if (3 == var1.value) {
    				var2.textColor = ["RGB",0.17,0.47,0.32];
    				richtige1.value++;
    			}else{
    				var2.textColor = color.red;	
    				fehler1.value++;
    			}
    		}
    	]{Feld2}
    	
    		
    	\TextField[
    		name=f3,
    		format = {
    			var var3 = this.getField('f3');
    			var fehler1 = this.getField('fehler');
    			var richtige1 = this.getField('richtige');
    			if (3 == var1.value) {
    				var3.textColor = ["RGB",0.17,0.47,0.32];
    				richtige1.value++;
    			}else{
    				var3.textColor = color.red;	
    				fehler1.value++;
    			}
    		}
    	]{Feld3}
    	
    	
    		
    	\TextField[
    		align=2,
    		name=fehler,
    		value=0,
    	   ]{Fehler}
    
    	\TextField[
    		align=2,
    		name=richtige,
    		value=0,
    	   ]{Richtige}
    	
    
    	
    \end{Form}
    \end{document}
    Angehängte Grafiken Angehängte Grafiken

  3. #18
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.820
    Der gepostete Code liefert mir Fehler = Richtige = 0, unabhängig davon, ob ich etwas eingegeben habe, oder nicht.
    Das mag an meinem Betrachter (okular) liegen...
    Vllt hilft Dir ja `onchange' (siehe `texdoc hyperref').

    Frohes Fest
    Rainer
    There's nothing a good whack with a hammer won't fix!

  4. #19
    Registrierter Benutzer
    Registriert seit
    12.11.2008
    Beiträge
    214
    Ich habe es jetzt mit onblur halbwegs so hinbekommen, wie ich es gerne haben wollte. Es klappt dann aber auch nur in speziellen Readern (PDF Expert auf dem iPad, Adobe auf dem Mac).

    Je nach Reader klappen da leiderer unterschiedliche Sachen.

  5. #20
    Registrierter Benutzer
    Registriert seit
    12.11.2008
    Beiträge
    214
    Hallo,

    ich habe ein neues Problem. Wenn ich Umlaute vergleichen will, muss ich die in Javascript vorher ersetzen.

    Mit dieser Erklärung habe ich es versucht.
    https://steakrecords.com/417916-repl...g-replace.html


    Für normale Buchstaben klappt das ersetzten auch, aber bei den Umlauten scheitere ich. Vermutlich ist irgendwas an der Syntax falsch. In meinem Beispiel wird im Adobereader im Textfeld ein 'c' durch ein 'e'. Ein 'ä' ersetzt er leider nicht.




    Code:
    \documentclass{scrartcl}
    \usepackage{tikz}
    \usepackage{hyperref}
    
    
    \begin{document}
    
    \begin{Form}
    	\TextField[
    	name=f1,
    	onblur = {
    	var var1 = this.getField('f1');
            var1.value = var1.value.replace( 'c', 'e');
            var1.value = var1.value.replace(/u00e4/g, 'ae');
            var1.value = var1.value.replace(/ä/g, 'ae');
    		if (var1.value=="ae") {
    			var1.textColor =color.blue;
    		}else{
    			var1.textColor = color.red;	
    		}
    	}
    	]{Test1}
    \end{Form}
    
    \end{document}

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •