Antwort auf: Begrenzte Länge von Eingabefelder

Startseite Foren Deutsches LiveCode-Forum Begrenzte Länge von Eingabefelder Antwort auf: Begrenzte Länge von Eingabefelder

#14751
Klaus Major
Administrator

    Hallo Herby,

    Du hast ja recht, tut mir leid! Danke für Dein Verständnis.
    Ich war etwas genervt, weil Du ums verrecken nicht Dein Skript posten wolltest! 😀

    THE
    Ich schrieb, daß Properties mit THE angesprochen werden müssen, aber nicht LC objekte:
    Ja: put THE length of fld 1
    Nein: put the length of THE field 1

    (THE) TARGET
    Das ist kein Bug, sondern ein Feature! 🙂
    Was mir nicht bewusst war, ist die Tatsache daß TARGET tatsächlich etwas Anderes als THE TARGET ist!?

    TARGET liefert tatsächlich den Inhalt eines Feldes, sofern das Feld Gegenstand des aktuellen Skripts ist.

    THE TARGET ist eine Funktion, die den Namen des aktuellen Objektes liefert!
    Man lernt nie aus.

    Ich würde es daher so machen:

    on keydown 
       put the target into tZiel
       ## -> field "dddd"
       
       put the short name of the target into tZielName
       ## -> dddd
       
       ## Kein Feld? Dann weg hier
       if word 1 of tZiel <> "field" then
          pass keydown
       end if
       
       ## Nun checken welches Feld die KEYDOWN Message erhatlen hat
       switch tZielName
          case "fdein"
             put 4 into tMaxChars
             break
             
             ## Gilt für beide Felder:
          case "fdeinx"
          case "fdeinxy" 
             put 20 into tMaxChars
             break
       end switch
       
       ## Jetzt erst reagieren
       if the num of chars of the text of the target <= tMaxChars then
          pass keydown
       end if
    end keydown

    Getestet und funktioniert.

    RETURN (in field)
    Da reicht ein DUMMY Handler aus 😀
    Also ein Handler, der die Message abfängt, aber nichts macht:

    on returninfield
     ## nada
    end returninfield

    Wie gesagt, Dein Skript macht nur was für das erste Feld,
    if fld "fdein" of card id 1027 is a number then
    danach fehlt eine Bedingung:
    if fld "fdeinx" of card id 76194 then
    if fld xy = WAS?
    Aber mit dem DUMMY brauchst Du das ja nicht mehr.

    Yo, das hätte wir nun also geklärt mit (THE) TARGET, daher brauchst Du mir den Stack eigentlich auch nicht mehr zu schicken. Es sei denn, Du hast noch andere Fragen oder Probleme damit.

    Gruß

    Klaus