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

MULTIPLE Dialog-Texteingabe in 1 einzigen AppleSkript-Dialog

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> Pool
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1529
Wohnort: Olten-CH

BeitragVerfasst am: 27.05.2006 - 20:10    Titel: MULTIPLE Dialog-Texteingabe in 1 einzigen AppleSkript-Dialog Antworten mit Zitat

Zitat:
Gib bitte deinen Benutzernamen und dein Passwort ein, um dich einzuloggen!
 
Benutzername:

Passwort:

Bei jedem Besuch automatisch einloggen:
Ich habe mein Passwort vergessen!


Für sowas müsste man doch mit AppleSkripts Standard-Mitteln einen "mehrfeldigen" Dialog hinkriegen?
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1529
Wohnort: Olten-CH

BeitragVerfasst am: 27.05.2006 - 20:23    Titel: Antworten mit Zitat

Beispiel für Bedarf nach einem Multi-Text-Eingabe-Dialog bietet ZB die login-Einwahl zu Snows Forum:

Ein Dialog AppleSkript:
es erlaubt dem user mehrere Datenveränderungen gleichzeitig vorzunehmen
hat Folgendes geschrieben:
global EinloggDaten, BenuNa, PassW --ListResultER()
--
--
property AZ : "\" " --<--schwierige Anf-Zeichen
property BenuNa1 : "iHacker1"
property PassW1 : "SnowFan1"
property ZeilenCODE1 : "Überschreib Benutzername: ->: "
property ZeilenCODE2 : return & "Überschreib Passwort ->: "
property ZeilenCODE3 : return & "Bei jedem Besuch automatisch einloggen ->: "

--
------------------------------------------------------------

set logDatenListe to ¬
   {"
Benutzername: " & AZ & BenuNa1 & AZ & ¬
      "
Passwort: " & AZ & PassW1 & AZ, ¬
      "
."}
set EinloggDaten to logDatenListe
my ListResultER() --ooooooo

tell current application to ¬
   
display dialog my Dia1() --ooooo
tell current application to ¬
   
display dialog "Varaible BenuNa ergibt nun:" & return & ¬
      
BenuNa & return & ¬
      "
Varaible PassW ergibt nun:" & return & ¬
      
PassW
return BenuNa & return & PassW


--
------------------------------------------------------------
on ListResultER() --oooo
   
set BenuNa to BenuNa1
   
set PassW to PassW1
   --
-------------------------------------
   
my EinloggComposER() --oooo
   
my MULTI_DialogER() --oooo
   
set BenuNa1 to BenuNa
   
set PassW1 to PassW
end ListResultER

on EinloggComposER() --oooo
   
set EinloggDaten to ¬
      "
Benutzername: " & BenuNa & return & return & ¬
      "
Passwort: " & PassW & return & ¬
      "
-------------" & return & ¬
      "
Super-Skripter schaffen >> 2 gleichzeitige Aenderungen"
end EinloggComposER

on Dia1() --ooooo
   "
so würde ich also ZB mit Hilfe von keystroke bei Snow einloggen" & return & ¬
      "
----------" & return & return & ¬
      "
Benutzername: " & BenuNa & return & return & ¬
      "
Passwort: " & PassW & return & ¬
      "
----------" & return
end Dia1

on MULTI_DialogER() --oooo
   
set DisplMeldungDia to "Vorgängig Z.B. dem Einloggen:" & return & ¬
      "
beliebig Veränderungen anbringen. Sie werden beim nächsten Dialogaufruf gespeichert sein" & ¬
      
return & "-------------" & return & EinloggDaten
   
set DefAnsw to return & ¬
      
ZeilenCODE1 & BenuNa & return & ¬
      
ZeilenCODE2 & PassW & return & ¬
      
return & "."
   
my EinloggComposER() --oooo
   --
------------------------------
   
set DsplDia ¬
      
to display dialog DisplMeldungDia default answer DefAnsw
   
set TextButtAntw to {text returned, button returned} of DsplDia
   
set TextAntw to item 1 of TextButtAntw
   
set ButtAntw to item 2 of TextButtAntw
   --
------------------------------
   --
Auswerten--geht zwar noch wesentlich einfacher, wie¿¿
   
set OffSet1 to offset of ZeilenCODE1 in TextAntw
   
set OffSet2 to offset of ZeilenCODE2 in TextAntw
   
set ZeilenCODE1LANG to length of ZeilenCODE1
   
set ZeilenCODE2LANG to length of ZeilenCODE2
   
set ZeilenCODE3LANG to length of ZeilenCODE3
   
set TextAntwLANG to length of TextAntw
   
set ZeilenErgebnis1 to text (OffSet1 + ZeilenCODE1LANG) thru (OffSet2 - 2) ¬
      
of TextAntw
   
set ZeilenErgebnis2 to text (OffSet2 + ZeilenCODE2LANG) thru (TextAntwLANG - 2) ¬
      
of TextAntw
   
set BenuNa to ZeilenErgebnis1
   
set PassW to ZeilenErgebnis2
   
my EinloggComposER() --oooo
end MULTI_DialogER



geht doch , oder?
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 01.04.2007 - 17:54, insgesamt 3-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1529
Wohnort: Olten-CH

BeitragVerfasst am: 27.05.2006 - 20:45    Titel: Mit default-Werten gefüllte Liste vor Multifeld-Dialog Antworten mit Zitat

Multipel-Feld-Dialoge bietet ja erst FileMaker > 5.5 an. Immerhin haben sie die Nützlichkeit solcher Konstrukte erkannt
Es geht aber auch Appleskript nativ, selbst für hochkomplexes, sodass ich getrost mein FileMaker 5.5 sogar auf OSX_4 fehlerlos gebrauchen kann.

Für den user ist es sehr nützlich, wenn man ihm zuerst aus Listen gepflückte "default" Antworten auslesen lässt damit er daran nur noch kleine Modulationen vornehmen kann, wen`s denn nötig ist.

Ein weiteres Listen-verknüpftes Beispiel für Multipel-Feld-Dialoge also:
Listen-verknüpfter Multifeld-AS-Dialog hat Folgendes geschrieben:
global BenuNa, PassW --ListResultER()
property AZ : "\" "
property EinloggDaten : ""
--

property BenuNa1 : "iHacker1"
property BenuNa2 : "iKurPfuscher2"
property BenuNa3 : "spirigwi3"
--

property PassW1 : "Katschaturian1"
property PassW2 : "applescriptFan2"
property PassW3 : "SnowFan3"
--
-
property ZeilenCODE1 : "Überschreib Benutzername: ->: "
property ZeilenCODE2 : return & "Überschreib Passwort ->: "
property ZeilenCODE3 : return & "Bei jedem Besuch automatisch einloggen ->: "
--
---
set logDatenListe to ¬
   {"
Benutzername: " & AZ & BenuNa1 & AZ & " Passwort: " & AZ & PassW1 & AZ, ¬
      "
Benutzername: " & AZ & BenuNa2 & AZ & " Passwort: " & AZ & PassW2 & AZ, ¬
      "
Benutzername: " & AZ & BenuNa3 & AZ & " Passwort: " & AZ & PassW3 & AZ, ¬
      "
"}
set AntwortListe to ¬
   
choose from list logDatenListe with prompt ¬
      "
Vielleicht willst du bei Snow unter Pseudonymen arbeiten? hack einfach eins davon an :" & return & ¬
      "
(keine Angst, kannst Eingaben-Auswahl danach mit MULTIDIALOG bleibend verändern)" --performance Trick
set EinloggDaten to result
my ListResultER() --oooooooooooooooo

display dialog my Dia1() --ooooooooo
--
##################################handler


on MULTI_DialogER() --oooooooo
   
global TextAntw, OffSet2, TextAntwLANG, ZeilenCODE2LANG -- MULTI_DialogER
   {} --
oooooooo
   
   
set DisplMeldungDia to "Vor dem Einloggen kannst du nun Veränderungen anbringen. Sie werden beim nächsten Dialogaufruf gespeichert sein" & ¬
      
return & "-------------" & return & EinloggDaten
   
set DefAnsw to return & ¬
      
ZeilenCODE1 & BenuNa & return & ¬
      
ZeilenCODE2 & PassW & return & ¬
      
return & "."
   
my EinloggComposER() --oooooooo
   
set DsplDia ¬
      
to display dialog DisplMeldungDia default answer DefAnsw
   
set TextButtAntw to {text returned, button returned} of DsplDia
   
set TextAntw to item 1 of TextButtAntw
   
set ButtAntw to item 2 of TextButtAntw
   --
Auswerten--geht zwar noch wesentlich einfacher, wie¿¿
   
set OffSet1 to offset of ZeilenCODE1 in TextAntw
   
set OffSet2 to offset of ZeilenCODE2 in TextAntw
   
set ZeilenCODE1LANG to length of ZeilenCODE1
   
set ZeilenCODE2LANG to length of ZeilenCODE2
   
set ZeilenCODE3LANG to length of ZeilenCODE3
   
set TextAntwLANG to length of TextAntw
   
set ZeilenErgebnis1 to text (OffSet1 + ZeilenCODE1LANG) thru (OffSet2 - 2) ¬
      
of TextAntw
   
set ZeilenErgebnis2 to text (OffSet2 + ZeilenCODE2LANG) thru (TextAntwLANG - 2) ¬
      
of TextAntw
   
set BenuNa to ZeilenErgebnis1
   
set PassW to ZeilenErgebnis2
   
my EinloggComposER() --oooooooo
end MULTI_DialogER

on ListResultER() --oooooooooooooooo
   
global BenuNa, PassW --ListResultER()
   --
auswerten des Listenergebnisses:
   
if (EinloggDaten as text) contains PassW1 then
      
set BenuNa to BenuNa1
      
set PassW to PassW1
      
my EinloggComposER() --oo
      
my MULTI_DialogER() --oooooooo
      
set BenuNa1 to BenuNa
      
set PassW1 to PassW
   
end if
   
if (EinloggDaten as text) contains PassW2 then
      
set PassW to PassW2
      
set BenuNa to BenuNa2
      
my EinloggComposER() --oo
      
my MULTI_DialogER() --oooooooo
      
set BenuNa2 to BenuNa
      
set PassW2 to PassW
   
end if
   
if (EinloggDaten as text) contains PassW3 then
      
set PassW to PassW3
      
set BenuNa to BenuNa3
      
my EinloggComposER() --oo
      
my MULTI_DialogER() --oooooooo
      
set BenuNa3 to BenuNa
      
set PassW3 to PassW
   
end if
end ListResultER

on EinloggComposER() --oooooooo
   
set EinloggDaten to ¬
      "
Benutzername: " & BenuNa & return & return & ¬
      "
Passwort: " & PassW & return & ¬
      "
-------------" & return & ¬
      "
Nach Wunsch kannst du nun also :" & return & ¬
      "
2 Aenderungen gleichzeitig anbringen" & return & ¬
      "
(wenn du gut scripten kannst noch viel mehr) "
end EinloggComposER

on Dia1() --ooooooooo
   "
so würde ich also ZB mit Hilfe von keystroke bei Snow einloggen" & return & ¬
      "
----------" & return & return & ¬
      "
Benutzername: " & BenuNa & return & return & ¬
      "
Passwort: " & PassW & return & ¬
      "
----------" & return
end Dia1


Die höchste Steigerungsform davon ist dann der "MINI-AS-Datenbank"-verknüpfte AS-Multi-dialog zum Server, das wage ich aber hier nicht zu posten. Die Herstellung ist jedoch keine Hexerei nach Snows bisherigem teaching.

PS: die if---end ifs sind natürlich aus lauter Zeitmangel sehr stümperhaft gescriptet, funktionieren aber tadellos und lassen sich sehr leicht adaptieren.
fehlt also nur noch Snows Rotstift
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> Pool 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