Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Texeingabe beschränken?

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
sideshow
•-->
•-->


Anmeldedatum: 07.05.2002
Beiträge: 130

BeitragVerfasst am: 04.07.2002 - 09:07    Titel: Texeingabe beschränken? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 04.07.2002 - 09:38    Titel: Texeingabe beschränken? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 04.07.2002 - 09:43    Titel: Texeingabe beschränken? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jens Hoffmann
•--->
•--->


Anmeldedatum: 07.05.2001
Beiträge: 175

BeitragVerfasst am: 04.07.2002 - 09:58    Titel: Texeingabe beschränken? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
sideshow
•-->
•-->


Anmeldedatum: 07.05.2002
Beiträge: 130

BeitragVerfasst am: 04.07.2002 - 10:14    Titel: Texeingabe beschränken? Antworten mit Zitat

Vielen Dank!

Haut ganz gut hin!!!!
_________________
Meine Wenigkeit im Internet: http://www.sideshow-systems.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kurt
•-->
•-->


Anmeldedatum: 04.12.2000
Beiträge: 21
Wohnort: Röthenbach a.d.P. bei Nürnberg

BeitragVerfasst am: 04.07.2002 - 11:16    Titel: Texeingabe beschränken? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 04.07.2002 - 11:26    Titel: Texeingabe beschränken? Antworten mit Zitat

Moin Kurt,

ob ' -1 thru -10 oder -10 thru -1' ist völlig wurscht, es kommt immer das richtige heraus Wink
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kurt
•-->
•-->


Anmeldedatum: 04.12.2000
Beiträge: 21
Wohnort: Röthenbach a.d.P. bei Nürnberg

BeitragVerfasst am: 04.07.2002 - 15:36    Titel: Texeingabe beschränken? Antworten mit Zitat

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 Wink

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 04.07.2002 - 15:47    Titel: Texeingabe beschränken? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kurt
•-->
•-->


Anmeldedatum: 04.12.2000
Beiträge: 21
Wohnort: Röthenbach a.d.P. bei Nürnberg

BeitragVerfasst am: 05.07.2002 - 10:06    Titel: Texeingabe beschränken? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
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


AppleScript für absolute Starter