Мне непонятно как это происходит , вот допусти в переменную CreditsURL попал адрес страницы для загрузки , а в переменную Result := psDownload , по идее сейчас должна идти процедура загрузки страницы GetDownloadURL , а её нет до самого конца программы , и получается что программа заканчивает работу. Ну еще в переменную Mode := smSearch.
Т.е получается при стечение этих переменных скрипт запускается снова , и соответственно вначале инициализируются адрес загрзки страницы и режим работы программы.
Значит так:
Плагины работаю таким образом:
1. подгружается библиотека
2. проверяется наличие в ней нужных ф-циё и т.д.
3. программа спрашивает у плагина что ей делать
4. результат выполнения действия передаёт плагину
5. спрашивает что делать дальше
...
6. отгружает библиотеку
Это в общих чертах. Теперь подробно на примере плагина получения информации из интернет:
1. Ищем нужные ф-ции в плагине
2. Спрашиваем у плагина данные для логина на сайт [
GetLoginInfo]
2.1. Если данные получены - логинимся
3. Выясняем кодовую страницу для использования по умолчанию (если плагин предоставляет эту информацию) [
GetCodePage]
4. Программа говорит плагину, что начинается работа (плагин имеет возможность инициализировать переменные или сделать другие подготовительные процедуры)
5. Передаём плагину список польз. полей (если он их поддерживает)
6. Запрашиваем у плагина URL [
GetDownloadURL]
7. Загружаем данные
8. Передаём полученные данные плагину и спрашиваем, что делать дальше [
ParsePage]
8.1. Если плагин говорит, что получил список фильмов, то получаем его и показываем окно для выбора
8.1.1. Загружаем URL выбранный пользователем
8.1.2. Переходим к п. 8
8.2. Если плагин говорит, что нужно загрузить ещё одну страницу, то берём у него URL [
GetDownloadURL]
8.2.1. Переходим к п. 8
8.2. Если плагин получил данные по фильму и/или постер, то присваиваем их фильму
9. Говорим плагину, что работа закончена
В квадратных скобках указаны ф-ции вызываемые в скрипте.