Startseite › Foren › Deutsches LiveCode-Forum › Begrenzte Länge von Eingabefelder › Antwort auf: Begrenzte Länge von Eingabefelder
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