Русские субтитры: Дефлорация Pascal Scripts - Русские субтитры

Перейти к содержимому

  • (2 Страниц)
  • +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Дефлорация Pascal Scripts команды, методы и контролы, доступные из скриптов

#21 Пользователь офлайн   Bodkin Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Admin
  • Сообщений: 1 084
  • Регистрация: 28 Сентябрь 03
  • Пол:Мужчина
  • Страна:
  • Прислал(a) субтитров: 116

Отправлено 15 Февраль 2010 - 23:05

Просмотр сообщенияНуПогоди (07 Февраль 2010 - 16:55) писал:

Понадобились кое-какие детали для скрипта и выяснилось, в который уже раз, что на новом IPB-движке спойлер-таг не работает и до их содержимого никак не добраться.

Тут в теме поправил. Где ещё не добраться?
0

#22 Пользователь офлайн   НуПогоди Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Избранные
  • Сообщений: 832
  • Регистрация: 31 Июль 06
  • Страна:
  • Прислал(a) субтитров: 46
  • Своих переводов: 19

Отправлено 16 Февраль 2010 - 11:36

Просмотр сообщенияBodkin (15 Февраль 2010 - 20:05) писал:

Тут в теме поправил. Где ещё не добраться?
Странно! во втором посте этой темы спойлер открывается, а во всех остальных (#4, #6, #8, #10, #12) - нет. Может, мой FF3.0.5 глючит? Или, может быть, там какие-то хитрые двойные спойлеры вставлены?
ПС Вообще-то надо будет на досуге всё переписать куда-нибудь без спойлеров - головная боль при каждом апгрейде форума.
0

#23 Пользователь офлайн   Bodkin Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Admin
  • Сообщений: 1 084
  • Регистрация: 28 Сентябрь 03
  • Пол:Мужчина
  • Страна:
  • Прислал(a) субтитров: 116

Отправлено 16 Февраль 2010 - 14:54

Просмотр сообщенияНуПогоди (16 Февраль 2010 - 10:36) писал:

Странно! во втором посте этой темы спойлер открывается, а во всех остальных (#4, #6, #8, #10, #12) - нет. Может, мой FF3.0.5 глючит? Или, может быть, там какие-то хитрые двойные спойлеры вставлены?
ПС Вообще-то надо будет на досуге всё переписать куда-нибудь без спойлеров - головная боль при каждом апгрейде форума.

И там обновил, не заметил вчера, что это спойлеры. Раньше у нас на IPB 2 стоял отдельный мод со своим форматом тега спойлера, сейчас в IPB 3 мод не нужен, но формат тегов поменялся.
0

#24 Пользователь офлайн   НуПогоди Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Избранные
  • Сообщений: 832
  • Регистрация: 31 Июль 06
  • Страна:
  • Прислал(a) субтитров: 46
  • Своих переводов: 19

Отправлено 16 Февраль 2010 - 15:33

Просмотр сообщенияBodkin (16 Февраль 2010 - 11:54) писал:

И там обновил, не заметил вчера, что это спойлеры. Раньше у нас на IPB 2 стоял отдельный мод со своим форматом тега спойлера, сейчас в IPB 3 мод не нужен, но формат тегов поменялся.
Теперь всё отлично. Спасибо. Если вечером руки дойдут, соберу всю выложенную там информацию и оформлю в приличном виде - скажем, в виде пдф (для изучения в оффтопе)
0

#25 Пользователь офлайн   BedaZzle Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Admin
  • Сообщений: 2 987
  • Регистрация: 22 Октябрь 02
  • Страна:
  • Прислал(a) субтитров: 98
  • Своих переводов: 16

Отправлено 17 Сентябрь 2011 - 01:45

Так, похоже, я разобрался как добавлять поддержку новых функций в паскалевские скрипты. На сегодня можно идти спать с чистой совестью.
0

#26 Пользователь офлайн   НуПогоди Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Избранные
  • Сообщений: 832
  • Регистрация: 31 Июль 06
  • Страна:
  • Прислал(a) субтитров: 46
  • Своих переводов: 19

Отправлено 17 Сентябрь 2011 - 11:48

Просмотр сообщенияBedaZzle (16 Сентябрь 2011 - 23:45) писал:

Так, похоже, я разобрался как добавлять поддержку новых функций в паскалевские скрипты.

"Новые" функции? Может, ты имел в виду доступ из скриптов к функциям, определённых в SW-исходниках? Например:

Просмотр сообщенияНуПогоди (07 Февраль 2010 - 15:55) писал:

...как программно задать функцию скроллинга VirtualTreeView к титру №ХХ (аналогично команде Ctrl-G, только без интерактивного окошка для введения номера титра)?



0

#27 Пользователь офлайн   BedaZzle Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Admin
  • Сообщений: 2 987
  • Регистрация: 22 Октябрь 02
  • Страна:
  • Прислал(a) субтитров: 98
  • Своих переводов: 16

Отправлено 17 Сентябрь 2011 - 20:19

Просмотр сообщенияНуПогоди (17 Сентябрь 2011 - 10:48) писал:

"Новые" функции? Может, ты имел в виду доступ из скриптов к функциям, определённых в SW-исходниках? Например:


Да, в таком аксепте. :)
0

#28 Пользователь офлайн   НуПогоди Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Избранные
  • Сообщений: 832
  • Регистрация: 31 Июль 06
  • Страна:
  • Прислал(a) субтитров: 46
  • Своих переводов: 19

Отправлено 18 Сентябрь 2011 - 01:40

Попробовал запускать кое-какие скрипты в свежей версии 2.52бета - той, где добавлена функция GoToLineNumber(N). Кратко:
  • Функция GoToLineNumber(N) работает так, как описано в example.pas - спасибо.
  • Появились проблемы при установке фокуса на VirtualTreeView - раньше (SW2.51) всё отлично работало по TWinControl(Form.Components[47]).SetFocus. Сейчас все зависит от того, включена ли при компиляции скрипта мода VideoPreview - если включена, то VirtualTreeView=Components[46] (видимо удалён один из элементов; вероятно, пункт меню, отвечающий за обновление версии Воркшопа). Отключаю превью, и только что работавший скрипт начинает ругаться, что я пытаюсь установить фокус на disabled or invisible window.
Есть идеи, как это обойти, т.е. сделать скрипт с работающим с обеими версиями SW вне зависимости от моды VideoPreview?

PS Чтобы было понятнее

Цитата

program test;
var Form:TForm;
begin
Form:=TForm(Application.MainForm);
TWinControl(Form.Components[46]).SetFocus;
GoToLineNumber(GetSubtitleCount);
end.


0

#29 Пользователь офлайн   BedaZzle Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Admin
  • Сообщений: 2 987
  • Регистрация: 22 Октябрь 02
  • Страна:
  • Прислал(a) субтитров: 98
  • Своих переводов: 16

Отправлено 18 Сентябрь 2011 - 03:19

Просмотр сообщенияНуПогоди (18 Сентябрь 2011 - 00:40) писал:

(видимо удалён один из элементов; вероятно, пункт меню, отвечающий за обновление версии Воркшопа).


Он не удалён, а пока просто visible := FALSE;
попробовал вернуть, скомпилировал, запустил, - ругается.

Завтра буду смотреть подробнее, что не нравится.
0

#30 Пользователь офлайн   BedaZzle Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Admin
  • Сообщений: 2 987
  • Регистрация: 22 Октябрь 02
  • Страна:
  • Прислал(a) субтитров: 98
  • Своих переводов: 16

Отправлено 18 Сентябрь 2011 - 03:31

а откуда магическое число 46 взялось?
у меня на версии 2.51 воркшоп ругается что с видео, что без, но сообщение об ошибке - пустое окошко

Прикрепленные файлы

  • Прикрепленный файл  controls.png (3,59К)
    Количество загрузок:: 6

0

#31 Пользователь офлайн   НуПогоди Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Избранные
  • Сообщений: 832
  • Регистрация: 31 Июль 06
  • Страна:
  • Прислал(a) субтитров: 46
  • Своих переводов: 19

Отправлено 18 Сентябрь 2011 - 11:24

Просмотр сообщенияBedaZzle (18 Сентябрь 2011 - 01:31) писал:

а откуда магическое число 46 взялось?

Для версии 2.51 магическое число = 47 (не зависит от videopreviewmode). Про него я, кажется, где-то когда-то на урусофтовском форуме вычитал... не уверен... надо будет погуглить... [EDIT] нашёл
Версия 2.52b: свежеобнаруженное магическое число = 48 (тоже не зависит от videopreviewmode), но отличается от прежней версии.

Просмотр сообщенияBedaZzle (18 Сентябрь 2011 - 01:31) писал:

у меня на версии 2.51 воркшоп ругается что с видео, что без, но сообщение об ошибке - пустое окошко

скрипт "Чтобы было понятнее" для канонической версии 2.51 (должен запускаться для любого videopreviewmode и переносить фокус с любого элемента на VirtualTreeView).

Цитата

program test;
var Form:TForm;
begin
Form:=TForm(Application.MainForm);
TWinControl(Form.Components[47]).SetFocus;

// MsgBox('VirtualTreeView is Focused!','Ok','','',0);
end.

А если закомментировать строку с SetFocus, то фокус есссно останется там, где был до запуска скрипта...

Итог: похоже, назрела необходимость новой простенькой функции для скриптов function SW_Version : string. A уж исходя из стринга, который она будет возвращать, можно будет впоследствии подгонять старые версии скриптов под новые версии SW.


Сообщение отредактировал НуПогоди: 18 Сентябрь 2011 - 15:31

0

#32 Пользователь офлайн   BedaZzle Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Admin
  • Сообщений: 2 987
  • Регистрация: 22 Октябрь 02
  • Страна:
  • Прислал(a) субтитров: 98
  • Своих переводов: 16

Отправлено 18 Сентябрь 2011 - 18:11

Просмотр сообщенияНуПогоди (18 Сентябрь 2011 - 10:24) писал:

Итог: похоже, назрела необходимость новой простенькой функции для скриптов function SW_Version : string. A уж исходя из стринга, который она будет возвращать, можно будет впоследствии подгонять старые версии скриптов под новые версии SW.


Добавить её могу, только вот толку, если 2.51 её понимать не научится.
0

#33 Пользователь офлайн   НуПогоди Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Избранные
  • Сообщений: 832
  • Регистрация: 31 Июль 06
  • Страна:
  • Прислал(a) субтитров: 46
  • Своих переводов: 19

Отправлено 18 Сентябрь 2011 - 19:10

Просмотр сообщенияBedaZzle (18 Сентябрь 2011 - 16:11) писал:

Добавить её могу, только вот толку, если 2.51 её понимать не научится.

Может, попросту изменить caption главного окна? в 2.51 он как известно "Subtitle Workshop" или "Subtitle Workshop - Filename", а в новой пусть будет, скажем, "Subtitle Workshop 2.5Х - Filename". А уж из скрипта этот caption прочесть - дело плёвое...

Или, если очень уж не хочется "портить" традиционный интерфейс, то можно дописать в SubtitleWorkshop.ini строку с версией... если строки типа Version=2.5X в нём не окажется, значит версия <2.52.
0

#34 Пользователь офлайн   BedaZzle Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Admin
  • Сообщений: 2 987
  • Регистрация: 22 Октябрь 02
  • Страна:
  • Прислал(a) субтитров: 98
  • Своих переводов: 16

Отправлено 18 Сентябрь 2011 - 20:26

Просмотр сообщенияНуПогоди (18 Сентябрь 2011 - 18:10) писал:

Может, попросту изменить caption главного окна? в 2.51 он как известно "Subtitle Workshop" или "Subtitle Workshop - Filename", а в новой пусть будет, скажем, "Subtitle Workshop 2.5Х - Filename". А уж из скрипта этот caption прочесть - дело плёвое...


Версия в заголовке уже светится, специально чтобы 2.52 было легче отличать от старого 2.51.
Поддержку GetSWVersion в скриптах добавил.

Просмотр сообщенияНуПогоди (18 Сентябрь 2011 - 18:10) писал:

Или, если очень уж не хочется "портить" традиционный интерфейс, то можно дописать в SubtitleWorkshop.ini строку с версией... если строки типа Version=2.5X в нём не окажется, значит версия <2.52.


В ини-файле версию хранить не самая лучшая идея.
0

#35 Пользователь офлайн   BedaZzle Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Admin
  • Сообщений: 2 987
  • Регистрация: 22 Октябрь 02
  • Страна:
  • Прислал(a) субтитров: 98
  • Своих переводов: 16

Отправлено 19 Сентябрь 2011 - 00:51

Просмотр сообщенияНуПогоди (18 Сентябрь 2011 - 00:40) писал:

Появились проблемы при установке фокуса на VirtualTreeView - раньше (SW2.51) всё отлично работало по TWinControl(Form.Components[47]).SetFocus.


Не зависящий от версии Воркшопа метод. К сожалению, избавиться от 1000 простыми методами пока не получилось.

program test;
var 
  Form: TForm;
  i : Integer;
begin
  Form := TForm(Application.MainForm);

  for i := 0 to 1000 do
    if Form.Components[i].Name =  'lstSubtitles' then
    begin
      TWinControl(Form.Components[i]).SetFocus;
      break;
    end;
end.

0

#36 Пользователь офлайн   НуПогоди Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Избранные
  • Сообщений: 832
  • Регистрация: 31 Июль 06
  • Страна:
  • Прислал(a) субтитров: 46
  • Своих переводов: 19

Отправлено 19 Сентябрь 2011 - 10:27

Просмотр сообщенияBedaZzle (18 Сентябрь 2011 - 22:51) писал:

Не зависящий от версии Воркшопа метод. К сожалению, избавиться от 1000 простыми методами пока не получилось.

Идея ясна, спасибо. Я бы искал как-то так
while Form.Components[i].Name<>'lstSubtitles' do i:=i+1;
TWinControl(Form.Components[i]).SetFocus;

ПС Даёшь честное пионерское не менять имена уже существующих компонентов?
0

#37 Пользователь офлайн   BedaZzle Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Admin
  • Сообщений: 2 987
  • Регистрация: 22 Октябрь 02
  • Страна:
  • Прислал(a) субтитров: 98
  • Своих переводов: 16

Отправлено 19 Сентябрь 2011 - 11:06

Просмотр сообщенияНуПогоди (19 Сентябрь 2011 - 09:27) писал:

Идея ясна, спасибо. Я бы искал как-то так
while Form.Components[i].Name<>'lstSubtitles' do i:=i+1;
TWinControl(Form.Components[i]).SetFocus;

ПС Даёшь честное пионерское не менять имена уже существующих компонентов?


Даю. :)
И твой цикл красивее, да. :)
0

  • (2 Страниц)
  • +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему