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


Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 27.05.2006 - 20:10 Titel: MULTIPLE Dialog-Texteingabe in 1 einzigen AppleSkript-Dialog |
|
|
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 |
|
 |
spirigwi •----->


Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 27.05.2006 - 20:23 Titel: |
|
|
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 |
|
 |
spirigwi •----->


Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 27.05.2006 - 20:45 Titel: Mit default-Werten gefüllte Liste vor Multifeld-Dialog |
|
|
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 |
|
 |
Nishaknapp •--->

Anmeldedatum: 16.03.2022 Beiträge: 217
|
|
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
|
|
|