Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
sideshow •-->


Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 04.07.2002 - 09:07 Titel: Texeingabe beschränken? |
|
|
Grüße ans Forum!
Mein Problem: geht das irgendwie, das ich die maximalen Zeichen eines Texteingabe-Feldes beschränken kann? Im Klartext: Angenommen das Script geht so -> Script wird gestartet, dialog fenster geht auf wo dasteht "bitte Ordnernamen eingeben:" dann kann man den Ordnernamen eingeben. Was aber, wenn dieser eingegebene name zu lange ist? dann bekomm ich eine fehlermeldung. kann man das bei der eingabe schon beschränken, und wenn ja, wie geht das bei DD?
Vielen Dank im Voraus!!!!! _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 04.07.2002 - 09:38 Titel: Texeingabe beschränken? |
|
|
Also, DD kann ich gerade nicht, habe X drauf. Allgemeiner Weg:
set the_name to "1234567890123456789012345678901234567890"
if length of the_name > 31 then
set {old_Delim, AppleScript's text item delimiters} to {AppleScript's text item delimiters, {""} }
set the_name to (text items 1 thru 20 of the_name & "Ö" & text items -1 thru -10 of the_name) as string
set AppleScript's text item delimiters to old_Delim
end if
{length of the_name, the_name}
Du solltest bedenken, dass evtl noch bestimmte Zeichen getilgt werden müssen! Unter X könnte das ein "/" sein, vielleicht könnten auch returns oder andere Steuerzeichen problematisch werden Ö
Gruß,
Folker
(Geändert von Folker um 9:39 Uhr am 4 Juli 2002) _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 04.07.2002 - 09:43 Titel: Texeingabe beschränken? |
|
|
Achso, ja - ich habe da mal ein proggi zur Umsetzung Mac ASCII nach/von Win-ANSI geschrieben. Dieses Proggi funzt bis AS Version 1.6. In dem Proggi wird reichlich Gebrauch von von DD gemacht, insbesondere beim Einstellungsdialog. Das Beste: Die Scripte sind alle zugänglich - kannst ja einfach mal reingucken und die ein oder andere Anregung rauslauern Ö
http://www.alle-brandts.de/ascii_char.htm _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Jens Hoffmann •--->

Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 04.07.2002 - 09:58 Titel: Texeingabe beschränken? |
|
|
Hallo sideshow
Hier das Beispiel für DD, bei dem nicht mehr als 32 Zeichen ins Textfeld eingegeben werden können:
-----
dd install with fonts {null, null, null, null, {name:"Geneva", size:9}, {name:"Geneva", size:9, style:bold} } with grayscale
set fenster to dd make dialog {bounds:[100, 100, 270, 250], style:standard palette, closeable:true, name:"New Palette", contents:{¨
{class:push button, bounds:[100, 100, 140, 120], name:"OK", font:6}, ¨
{class:push button, bounds:[50, 100, 90, 120], name:"Cancel", font:5}, ¨
{class:text field, bounds:[5, 30, 165, 42], font:5} ¨
} }
repeat
set dd to dd interact with user
if dd = -1 or dd = 2 then -- Closebox oder Cancel
exit repeat
else if dd = 1 then -- OK
exit repeat
else if dd = 3 then -- Eingabe ins Textfeld
set x to dd get value of item 3 of fenster -- Inhalt des Textfelds
if (length of x) is greater than 32 then -- Länge > 32?
set x to characters 1 thru ((length of x) - 1) of x -- x auf 32 Zeichen reduzieren
dd set value of item 3 of fenster to (x as string) -- wieder in das Feld schreiben
dd set selection of item 3 of fenster to [-1, -1] -- Cursor ans Ende positionieren
end if
end if
end repeat
dd delete fenster
dd uninstall
----
Die Zeile mit dem "Cursor" ist notwendig, weil nach dem Einfügen der gesamte Text markiert ist und man dann beim Weitertippen das Bisherige überschreiben würde.
Wenn es um ein mehrzeiliges Textfeld geht, wird die Sache etwas komplizierter, denn dann musst Du die Returns berücksichtigen.
Grüße Jens
(Geändert von Jens Hoffmann um 10:04 Uhr am 4 Juli 2002)
(Geändert von Jens Hoffmann um 10:05 Uhr am 4 Juli 2002) |
|
Nach oben |
|
 |
sideshow •-->


Anmeldedatum: 07.05.2002 Beiträge: 130
|
Verfasst am: 04.07.2002 - 10:14 Titel: Texeingabe beschränken? |
|
|
Vielen Dank!
Haut ganz gut hin!!!! _________________ Meine Wenigkeit im Internet: http://www.sideshow-systems.de |
|
Nach oben |
|
 |
Kurt •-->

Anmeldedatum: 04.12.2000 Beiträge: 21 Wohnort: Röthenbach a.d.P. bei Nürnberg
|
Verfasst am: 04.07.2002 - 11:16 Titel: Texeingabe beschränken? |
|
|
Hallo Folker
Zitat: | Zitat: von Folker am 9:38 Uhr am 4 Juli 2002
Also, DD kann ich gerade nicht, habe X drauf. Allgemeiner Weg:
set the_name to "1234567890123456789012345678901234567890"
if length of the_name > 31 then
set {old_Delim, AppleScript's text item delimiters} to {AppleScript's text item delimiters, {""} }
set the_name to (text items 1 thru 20 of the_name & "Ö" & text items -1 thru -10 of the_name) as string
set AppleScript's text item delimiters to old_Delim
end if
{length of the_name, the_name}
|
warum so aufwendig? ;-)
if length of the_name > 31 then
set the_name to (text 1 thru 20 of the_name & "Ö" & text -10 thru -1 of the_name)
end if
{length of the_name, the_name}
ist kürzer und der Text am Ende ist nicht gedreht. |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 04.07.2002 - 11:26 Titel: Texeingabe beschränken? |
|
|
Moin Kurt,
ob ' -1 thru -10 oder -10 thru -1' ist völlig wurscht, es kommt immer das richtige heraus
Was den text of angeht hast Du natürlich recht, ist anscheinend ein Überbleibsel aus alter Zeit. Ich meine mich zu erinnern, genau diese einfachere Form verweigerte in einer weiter zurückliegenden Version (1.1.2 oder 1.3.x) seinen Dienst. Darum die Text items Ö
Gruß,
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Kurt •-->

Anmeldedatum: 04.12.2000 Beiträge: 21 Wohnort: Röthenbach a.d.P. bei Nürnberg
|
Verfasst am: 04.07.2002 - 15:36 Titel: Texeingabe beschränken? |
|
|
Zitat: | Zitat: von Folker am 11:26 Uhr am 4 Juli 2002
Moin Kurt,
ob ' -1 thru -10 oder -10 thru -1' ist völlig wurscht, es kommt immer das richtige heraus
|
ich dachte schon, daß in der 'range' Definition von AS festgelegt ist:
'startindex thru stopindex'
start/stopindex positiv: relativ zum Beginn
start/stopindex positiv: relativ zum Ende
und ich meine auch schon mal irgendwo gelesen zu haben hiermit umgedrehte Ergebnisse zu erhalten.
Ich kann's aber im Moment nicht testen, da mein AG sich nicht den Luxus von Macs leistet.
MfG Kurt |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 04.07.2002 - 15:47 Titel: Texeingabe beschränken? |
|
|
Nein, die Reihenfolge bleibt tatsächlich gleich - ist aber durchaus in internationalen User-Groups schon einige Male diskutiert worden. Bei applescript-users mailing list hat auch mal ein AppleScript Entwickler den genauen Hintergrund "warum" dazu geliefert (habe da aber keinen Zugriff im Moment drauf, ist irgendwo im BackUp Ö)
Aber der kann das dann
(reverse of text items of "Test") as string
;)
Gruß,
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Kurt •-->

Anmeldedatum: 04.12.2000 Beiträge: 21 Wohnort: Röthenbach a.d.P. bei Nürnberg
|
Verfasst am: 05.07.2002 - 10:06 Titel: Texeingabe beschränken? |
|
|
Zitat: | Zitat: von Folker am 15:47 Uhr am 4 Juli 2002
Nein, die Reihenfolge bleibt tatsächlich gleich ... |
Du hast Recht, und ich hätte schwören können, daß ich das schon einmal ausprobiert hätte. Aber so kann man sich täuschen.
cu Kurt |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2002 phpBB Group Deutsche Übersetzung von phpBB.de
|
|
|