[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt "funktion create_dialog()" in ein Script eingebinden

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

"funktion create_dialog()" in ein Script eingebinden

Quarz
Beiträge gesamt: 3476

14. Nov 2015, 17:14
Beitrag # 1 von 26
Bewertung:
(6955 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Scripter,

mir läßt das ja mit den Brüchen keine Ruhe.
http://www.hilfdirselbst.ch/...i?post=544426#544426

Ich habe jetzt aus 'Suchen & Ersetzen' ein
Script geschrieben.
(Nach Anleitung von Gregor Fellenz.)
Das funktioniert auch.

Jetzt hätte ich gerne vorab die Auswahl:
Markierung oder Textabschnitt oder Dokument.

Aus einem Script von Martin habe ich den
funktion create_dialog() herauskopiert.

Aber, wie wird die obige Grep-Suche darin eingebunden?
Schön wäre es, wenn mir jemand die paar Zeilen
aufschreiben könnte, denn eigentlich habe ich keine
Ahnung vom Scripten ;-(

Code
#target InDesign 
//---------- ZAEHLER
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat= "\\<\\d+(?=/\\d)";
app.findGrepPreferences.fillColor = "Black";
app.changeGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences.appliedCharacterStyle = "Zaehler"
app.activeDocument.changeGrep();
//-------------------------------------
function create_dialog()
{
var a_dialog = app.dialogs.add({name:"Suchbereich"});
var myRange = [app.selection[0], app.selection[0].parentStory, app.documents.firstItem()];
var min_width_right = 100;
with (a_dialog)
{
with (dialogColumns.add())
{
with (borderPanels.add())
{
with (dialogColumns.add())
{
var the_rbs = radiobuttonGroups.add();
with(the_rbs)
{
radiobuttonControls.add({staticLabel: "Markierung", checkedState: true, minWidth: min_width_right});
radiobuttonControls.add({staticLabel: "Textabschnitt", checkedState: false, minWidth: min_width_right});
radiobuttonControls.add({staticLabel: "Dokument", checkedState: false, minWidth: min_width_right});
}
}
}
}
}
if (a_dialog.show() == false)
{
a_dialog.destroy();
exit();
}
else
return myRange[the_rbs.selectedButton];
}


Gruß
Quarz
---------------------------
Win7 | InDesign CS6 ver 8.1


(Dieser Beitrag wurde von Quarz am 14. Nov 2015, 17:15 geändert)
X

"funktion create_dialog()" in ein Script eingebinden

Martin Fischer
  
Beiträge gesamt: 12590

14. Nov 2015, 20:24
Beitrag # 2 von 26
Beitrag ID: #544578
Bewertung:
(6920 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Quarz,

ich weiß nicht, was genau Du mit diesem Skript vorhast.
Um damit tatsächlich etwas anfangen zu können, bräuchte es etwas mehr als die Rückgabe aus der Dialogfunktion. Was etwa, wenn die erforderlichen Zeichenformate nicht vorliegen? Skript mit einer Fehlermeldung abbrechen oder ZF anlegen – mit welchen Attributen ...?

Im Moment wüßte ich nicht, was ein Skript besser und bzgl. der Gestaltung ansprechender machen könnte als die Lösung mit den GREP-Stilen in der von Dir oben genannten Diskussion. Das Problem besteht ja nicht in der Technik, also der Zuweisung von Zeichenformaten für Zähler und Nenner von Brüchen. Du artikuliertest ästhetische Bedenken im Hinblick auf die reduzierten Strichstärken gegenüber der Grundschrift bei der Skalierung von den Ziffern.

Was erwartest Du von einem Skript zur Lösung dieses ästhetischen Problems?

Viele Grüße
Martin




als Antwort auf: [#544573]

"funktion create_dialog()" in ein Script eingebinden

Quarz
Beiträge gesamt: 3476

15. Nov 2015, 10:22
Beitrag # 3 von 26
Beitrag ID: #544581
Bewertung:
(6849 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Martin,

Antwort auf: ich weiß nicht, was genau Du mit diesem Skript vorhast.

1. Ich würde es gerne wissen ;-), denn ich
habe noch andere, ähnliche Scripte, bei denen
es hilfreich wäre.
2. Wenn ich nur wenige Brüche umwandeln muss,
dann geht das über ein Script schneller, als
wenn ich 3 GREP-Stile im AF einrichten muss.
siehe Screenshot meiner 'Schnellscriptverwaltung'
3. Bei wenigen Brüchen habe ich eine bessere
Übersicht über das, was sich da 'tut'.
4. Es bedarf keiner Fehlermeldung wegen fehlender
ZFe, denn diese hole ich vorher aus der Bibliothek.
5. Du hast natürlich Recht, dass es mit dem AF
schneller geht, wenn es im Text nur so vor Brüchen
'wimmelt'.
6. Meine ästhetischen Bedenken habe ich ja schon
größtenteils ausgeräumt.
siehe meine Antwort im InDesign-Forum
http://www.hilfdirselbst.ch/...i?post=544576#544576
7.
Antwort auf: Was erwartest Du von einem Skript zur Lösung dieses ästhetischen Problems?

Siehe 2.
Es geht, für mich, schneller und ist übersichtlicher.


Gruß
Quarz
---------------------------
Win7 | InDesign CS6 ver 8.1



als Antwort auf: [#544578]
(Dieser Beitrag wurde von Quarz am 15. Nov 2015, 10:23 geändert)

Anhang:
Leiste.gif (4.83 KB)

"funktion create_dialog()" in ein Script eingebinden

Ralf Hobirk
Beiträge gesamt: 5955

15. Nov 2015, 11:26
Beitrag # 4 von 26
Beitrag ID: #544582
Bewertung:
(6821 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Quarz,

sehe ich richtig, dass du für die Scripts Menüpunkte eingerichtet hast? Wie bzw. womit man macht man das?

---
Viele Grüße,
Ralf
---
iMac i7 (18,3) 4,2 GHz, 32 GB 10.15.7 Catalina | MacBook Pro 15" (8,2) 2,0 GHz, 16 GB, 10.13.6 High Sierra | Mac Mini (6,1) als Server 2,5 GHz, 8 GB, 10.13.6 High Sierra | CC 2021 (ID 16.3.2)


als Antwort auf: [#544581]

"funktion create_dialog()" in ein Script eingebinden

Quarz
Beiträge gesamt: 3476

15. Nov 2015, 11:42
Beitrag # 5 von 26
Beitrag ID: #544583
Bewertung:
(6813 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ralf,

Eigenes Menü einrichten:
http://www.hilfdirselbst.ch/..._P429942.html#429942

Eigenes Menü wieder löschen:
siehe Screenshot

Gruß
Quarz
---------------------------
Win7 | InDesign CS6 ver 8.1



als Antwort auf: [#544582]
(Dieser Beitrag wurde von Quarz am 15. Nov 2015, 11:43 geändert)

Anhang:
remove_xxx.jsx (0.26 KB)

"funktion create_dialog()" in ein Script eingebinden

Martin Fischer
  
Beiträge gesamt: 12590

15. Nov 2015, 12:43
Beitrag # 6 von 26
Beitrag ID: #544584
Bewertung:
(6773 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Quarz,

hier ein Anwendungsbeispiel:

Code
//---------- ZAEHLER  
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat= "\\<\\d+(?=/\\d)";
app.findGrepPreferences.fillColor = "Black";
app.changeGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences.appliedCharacterStyle = "Zaehler";

var my_range = create_dialog();
my_range
.changeGrep();
//-------------------------------------
function create_dialog()
{
var a_dialog = app.dialogs.add({name:"Suchbereich"});
var myRange = [app.selection[0], app.selection[0].parentStory, app.documents.firstItem()];
var min_width_right = 100;
with (a_dialog)
{
with (dialogColumns.add())
{
with (borderPanels.add())
{
with (dialogColumns.add())
{
var the_rbs = radiobuttonGroups.add();
with(the_rbs)
{
radiobuttonControls.add({staticLabel: "Markierung", checkedState: true, minWidth: min_width_right});
radiobuttonControls.add({staticLabel: "Textabschnitt", checkedState: false, minWidth: min_width_right});
radiobuttonControls.add({staticLabel: "Dokument", checkedState: false, minWidth: min_width_right});
}
}
}
}
}
if (a_dialog.show() == false)
{
a_dialog.destroy();
exit();
}
else
return myRange[the_rbs.selectedButton];
}


Viele Grüße
Martin




als Antwort auf: [#544581]

"funktion create_dialog()" in ein Script eingebinden

Quarz
Beiträge gesamt: 3476

15. Nov 2015, 13:09
Beitrag # 7 von 26
Beitrag ID: #544585
Bewertung:
(6756 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

wunderbar :-)
jetzt ist der Sonntag gerettet und
ich kann kuchenbacken gehen.

Falls es jemand interessiert, dann kann
ich die fehlenden zwei 'Suchen & Ersetzen',
Nenner und Pipe, noch posten.

Gruß
Quarz
---------------------------
Win7 | InDesign CS6 ver 8.1



als Antwort auf: [#544584]

"funktion create_dialog()" in ein Script eingebinden

Ralf Hobirk
Beiträge gesamt: 5955

15. Nov 2015, 13:11
Beitrag # 8 von 26
Beitrag ID: #544587
Bewertung:
(6756 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Quarz,

danke für den Link. Entweder hatte ich den Beitrag damals übersehen oder als unwichtig betrachtet ;-)

Schönen Sonntag noch!

---
Viele Grüße,
Ralf
---
iMac i7 (18,3) 4,2 GHz, 32 GB 10.15.7 Catalina | MacBook Pro 15" (8,2) 2,0 GHz, 16 GB, 10.13.6 High Sierra | Mac Mini (6,1) als Server 2,5 GHz, 8 GB, 10.13.6 High Sierra | CC 2021 (ID 16.3.2)


als Antwort auf: [#544583]

"funktion create_dialog()" in ein Script eingebinden

Quarz
Beiträge gesamt: 3476

15. Nov 2015, 14:39
Beitrag # 9 von 26
Beitrag ID: #544589
Bewertung:
(6686 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

ohhh - ich habe mich zu früh gefreut.

Nach dem Scriptaufruf kommt zwar das
Auswahlfenster, aber es ist schon die
ganze Datei (mehrere Textrahmen) bearbeitet
worden.
Auch wenn ich Suchen & Ersetzen ans Ende
stelle.

Ich wollt zwar das Auswahlfenster haben, aber
auch auswählen können ;-)
Es fehlt noch was.


Gruß
Quarz
---------------------------
Win7 | InDesign CS6 ver 8.1



als Antwort auf: [#544584]
(Dieser Beitrag wurde von Quarz am 15. Nov 2015, 14:41 geändert)

"funktion create_dialog()" in ein Script eingebinden

Martin Fischer
  
Beiträge gesamt: 12590

16. Nov 2015, 09:44
Beitrag # 10 von 26
Beitrag ID: #544600
Bewertung:
(6501 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Quarz,

laß mir mal Dein Skript zukommen.
Ich vermute, dass sich bei der Erweiterung ein Fehler eingeschlichten hat.

Viele Grüße
Martin




als Antwort auf: [#544589]

"funktion create_dialog()" in ein Script eingebinden

Quarz
Beiträge gesamt: 3476

16. Nov 2015, 09:52
Beitrag # 11 von 26
Beitrag ID: #544601
Bewertung:
(6499 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

ich hab den Fehler schon gefunden.
Kann ihn aber nicht korrigieren.

Meine Scriptangaben waren nicht
korrekt. (Schäm)
Ich will nicht nur den ZEAHLER ändern
sondern auch den NENNER und den SLASH.

Die Datei ist unterwegs.


Gruß
Quarz
---------------------------
Win7 | InDesign CS6 ver 8.1



als Antwort auf: [#544600]

"funktion create_dialog()" in ein Script eingebinden

ToniMontanaa
Beiträge gesamt: 426

16. Nov 2015, 21:11
Beitrag # 12 von 26
Beitrag ID: #544636
Bewertung:
(6417 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

das selbe Problem habe ich auch gerade.

Ich habe mir auch einen Dialog gebaut in dem ich über 3 radiobuttons Dokument, Absatz oder Auswahl anwählen kann und dann noch über mehrere Checkboxen diverse Suchabfragen auswählen kann.

Ganzes Dokument funktioniert. Die aktuelle Auswahl funktioniert auch. Nur der Absatz über app.selection[0].parentStory; geht nicht. Hier macht mir mein Skript die Änderungen auf alle Absätze.

Ich probier da jetzt schon seit einigen Tagen immer mal wieder wenn ich ein wenig Luft habe herum, komm aber nicht drauf woran das liegt???

Grüße
Stefan


als Antwort auf: [#544600]

"funktion create_dialog()" in ein Script eingebinden

Martin Fischer
  
Beiträge gesamt: 12590

17. Nov 2015, 09:01
Beitrag # 13 von 26
Beitrag ID: #544644
Bewertung:
(6349 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stefan,

Antwort auf: Nur der Absatz über app.selection[0].parentStory; geht nicht.


Möchtest Du den Textabschnitt (parentStory)
oder den ersten Absatz (paragraphs.firstItem() )
oder alle ausgewählten Absätze (paragraphs)
der Auswahl adressieren?

Viele Grüße
Martin




als Antwort auf: [#544636]

"funktion create_dialog()" in ein Script eingebinden

ToniMontanaa
Beiträge gesamt: 426

17. Nov 2015, 09:18
Beitrag # 14 von 26
Beitrag ID: #544648
Bewertung:
(6336 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

ich möchte den aktuellen Absatz, in dem der Cursor steht oder mit dem Cursor etwas ausgewählt ist, adressieren.
Und ich glaube so hätte das Quarz auch gerne.

Grüße
Stefan


als Antwort auf: [#544644]

"funktion create_dialog()" in ein Script einbinden

Martin Fischer
  
Beiträge gesamt: 12590

17. Nov 2015, 09:30
Beitrag # 15 von 26
Beitrag ID: #544651
Bewertung:
(6328 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stefan,

dann versuch's mal mit
Code
app.selection[0].paragraphs.firstItem() // erster Absatz der Auswahl 

statt
Code
app.selection[0].parentStory // Textabschnitt, in der sich die Auswahl befindet 


Antwort auf: Und ich glaube so hätte das Quarz auch gerne.


Bislang weiß ich noch nichts davon.
Aber möglicherweise hast Du Ihr Interesse geweckt. ;-)

Viele Grüße
Martin




als Antwort auf: [#544648]
(Dieser Beitrag wurde von Martin Fischer am 17. Nov 2015, 09:30 geändert)
X

Aktuell

Diverses
flightcheck

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/