Вопрос по UI.

  • Автор темы Автор темы Sakharovich
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Ответ: Вопрос по UI.

Цитата:

...никто и не говорит что скрипт должен завершать работу а окно должно остаться...

Ну представь себе. Вот скрипт создал окно и он не должен завершаться. А что он должен делать? Мотать непрерывный цикл? Тогда только это он и будет делать - он однозадачный. Фокус как раз в том и состоит, что окно должно существовать при завершенном скрипте и жить свою собственную жизнь, сиречь обрабатывать свои события в рамках однозадачного ID. Для этого этот объект (окно) должен быть помещен в список объектов такого типа. Мало того, у него должен быть собственный обработчик событий и т.п. Никаких таких свойств и методов в описании скриптинга ID для объекта Window я не нашел (возможно плохо искал ;-))), а потому думаю, что решение вопроса на JS маловероятно.

Пример про PDF не самый хороший. Иллюстратор, когда открывает PDF тупо знает количество его страниц. Никто не запрещает скрипту заглянуть в PDF и узнать его количество страниц перед тем, как открывать его в Иллюстраторе, а вот навешивать на объектную модель Иллюстратора дополнительные свойства и методы для определения количества страниц PDF - это значительные накладные расходы на программирование тех самых методов, которыми довольно редко кто пользуется. Кое какая логика тут, на мой взгляд, есть.

AirGraph.
 
Ответ: Вопрос по UI.

Dенис сказал(а):
Можно. Но у нас в университете курс по дельфи был рассчитан на 1 год. А ява - 3 месяца.

Ну и что? Да хоть 10 лет! Формы на дельфи создаются визуальными средствами. Это проще чем пэджмейкер. :D
 
Ответ: Вопрос по UI.

Вобщем так. Я могу написать 3-строчную программу на Дельфи, которая повесит "плвающую панельку" с одной кнопкой "выполнить" и текстовым полем ввода, куда можно будет вводить скрипт на JS. Надо?
 
Ответ: Вопрос по UI.

Судя по тенденции темы - "маловероятное решение задачи на js", буду примного благодарен !
 
Ответ: Вопрос по UI.

... потому думаю, что решение вопроса на JS маловероятно.

На мой взгляд рассуждения на тему о принципиальной (не)возможности реализации поставленой задачи на js неуместны, хотя бы в силу того, что скрипт все таки работает, я проверил в Bridge, Illustrator. Следовательно скорей всего имела место быть некая недосказанность со стороны js tools guide, потому как примечание об отсутствии поддержки окон типа palette в PS имеется. "(Adobe
Photoshop® does not support script creation of palette windows.)", скорей всего про InDesign немного подзабыли, потому как неработает скрипт в PS и InD одинаково. Пойду ка я накатаю вопрос на adobeforums, по этому поводу.
 
Ответ: Вопрос по UI.

Никаких таких свойств и методов в описании скриптинга ID для объекта Window я не нашел (возможно плохо искал ;-))), а потому думаю, что решение вопроса на JS маловероятно.

нет, подождите. про ScriptUI читали?

InDesignCS3_ScriptingGuide_JS.pdf, стр. 83, например?

Creating a Button-Bar Panel with ScriptUI
If you want to run your scripts by clicking buttons in a floating palette, you can create one using JavaScript and ScriptUI. It does not matter which scripting language the scripts themselves use.
The following tutorial script shows how to create a simple floating panel. The panel can contain a series of buttons, with each button being associated with a script stored on disk. Click the button, and the panel runs the script (the script, in turn can display dialog boxes or other user-interface elements. The button in the panel can contain text or graphics. (For the complete script, see ButtonBar.)

а про ScriptUI подробно в javascript_tools_guide_cs3.pdf

панель на Дельфи это отлично, но не забывайте, что JS будет работать и на Mac, и на PC. так что перспективнее было бы конечно решить этот вопрос. на мой взгляд, имеет место какой-то bug, раз уж образцы скриптов от официального руководства не работают, как надо.

Пойду ка я накатаю вопрос на adobeforums, по этому поводу.

очень правильная мысль. Bridge то ради этого запускать радости мало...
 
Ответ: Вопрос по UI.

Держите. 5 минут потратил. При старте приложения оно подгружает скрипт на JS лежащий в ее папке с именем равным имени экзешника. Что позволяет сделать тьму копий программы и запустить одновременно.

Исходник дать для прикола?
Там смысловая часть - ровно 3 строки.
Еще пяток строк, для флажка Always on top. И еще одна скрипт при старте читает из файла.
 

Вложения

Ответ: Вопрос по UI.

- Исходник дать для прикола?
Конечно, самый простой исходник намного полезней любых обьяснений ...
 
Ответ: Вопрос по UI.

Код:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin

if form1.CheckBox1.Checked then
 begin
  Form1.FormStyle:=fsStayOnTop;
  Form1.BorderStyle:=bsSizeToolWin;
 end
else
 begin
  Form1.FormStyle:=fsNormal;
  Form1.BorderStyle:=bsSizeable;
 end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Memo1.Lines.LoadFromFile(ChangeFileExt(Forms.Application.ExeName, '.jsx'));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Application1.Connect;
Application1.DoScript(Form1.Memo1.Lines.Text, 1246973031);
Application1.Disconnect;
end;

Это все.
Остальное - заголовок, генерируемый средой автоматически при создании проекта. ;)

PS
В этом контексте заявление Dениса о том что
Но у нас в университете курс по дельфи был рассчитан на 1 год. А ява - 3 месяца.
меня веселит. ;)
 
Ответ: Вопрос по UI.


Не по теме:

JS это и не Java, кстати

 
Ответ: Вопрос по UI.


Не по теме:
Ну всё! Так и знал, что придёт Specialist и прицепится :)
Хорошо, попросите любого, кто у вас рядом и не знает дельфи, создать немодальное окно... Это к заявлению, что "для этого вообще ничего не надо уметь, даже читать"

 
Ответ: Вопрос по UI.


Не по теме:
дельфи не знаю, но создам легко - хоть на MFC, хоть с Windows Forms. читать впрочем для этого все же уметь стоит :)
 
Ответ: Вопрос по UI.

Dенис сказал(а):

Не по теме:
Ну всё! Так и знал, что придёт Specialist и прицепится :)
Хорошо, попросите любого, кто у вас рядом и не знает дельфи, создать немодальное окно... Это к заявлению, что "для этого вообще ничего не надо уметь, даже читать"



Не по теме:
А вот вы знаете Дельфи? Дело в том, что на дельфи создать модальное окно - нужно приложить некоторое усилие (в диспетчере объектов поменять одно свойство), а вот немодальное создается по-умолчанию...
 
Ответ: Вопрос по UI.

Specialist сказал(а):
Держите. 5 минут потратил...
Так, конечно помогает, но вот если бы всё это одним файлом, да на js... =)
 
Ответ: Вопрос по UI.

Вопрос решен. Все работает в лучшем виде. Напишите в первой строчке вашего скрипта создания плавающего окна следующее:

#targetengine "session"

и будет вам счастье. У меня в ID все работает отлично и с кнопками и с иконками, как и написано в описании на той самой 83 странице... ;-) Как говорится, читайте доку - она рулез!!! ;-)

AirGraph.
 
Ответ: Вопрос по UI.

qsedftghk сказал(а):
Так, конечно помогает, но вот если бы всё это одним файлом, да на js... =)

Насчет JS - это к адобе, интерпретатор писал не я. Гы.

А насчет одним файлом - так редактировать удобнее.
И прога проще, ибо иначе куда я должен код сохранять, чтобы его восстановить при повторном запуске? Хотите - сделаю чтобы в реестр писала, тока оно вам надо?
 
Ответ: Вопрос по UI.

подскажите, pls, а где это в доке было написано, чтоб на будущее знать?
 
Ответ: Вопрос по UI.

AirGraph - браво!!! Но почему-то раньше у меня этот "session" не работал. Может апдейты повлияли.
 
Статус
Закрыто для дальнейших ответов.