QPas - квесты на Pascal'e

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

QPas - квесты на Pascal'e

Сообщение Apromix » 06.10.2010 15:27:48

Здраствуйте! Хочу сделать интерпретатор текстовых квестов РИЛ на Лазарусе, чтобы проблем с кроссплатформенностью поменьше было бы. Вот столкнулся со множеством проблем при миграции с Дельфи на Лазарус:

1. Среди компонентов Лазаруса не нашел html-броузера. Есть ли нечто подобное IE-котрола, но для Лазаруса, чтобы потом и под Линукс пошло?

2. Для скриптов думал использовать PaxCompiler. Есть такой компонент для Лазаря?

3. Компонент ZipForge существует под Лазарус? Если нет, то, возможно, есть другой под Лазарус, который позволяет работать с архивами .zip (только распаковка).

Спасибо за ответы :)
Apromix
новенький
 
Сообщения: 28
Зарегистрирован: 06.10.2010 15:15:51
Откуда: Черновцы, Украина

Re: QPas - квесты на Pascal'e

Сообщение minoshi » 06.10.2010 16:09:34

ответы от меня
1. IE - на то он и IE что он только для Винды (не зря же у него подпольная кличка - ОСЕЛ). Нет, конечно , ИЕ можно запустить и в линуксе, но через wine. Но оно это надо - в качестве условия работы программы ставить наличие wine?.

Ссылки по вопросу 1
сссылка намбер раз viewtopic.php?f=6&t=5110&start=0&st=0&sk=t&sd=a&hilit=%D0%BF%D0%BE+%D1%83%D0%BC%D0%BE%D0%BB%D1%87%D0%B0%D0%BD%D0%B8%D1%8E

ссылка намбер два http://lazarus.freepascal.org/index.php ... pic=7854.0

ссылка нумбер три viewtopic.php?f=23&t=5935&p=43418&hilit=%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80#p43418

ссылка нумбер четыре viewtopic.php?f=23&t=5899&p=43080&hilit=%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80#p43080

пять viewtopic.php?f=5&t=4075&start=0&st=0&sk=t&sd=a&hilit=%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80


2. Понятия не имею

3.Конкретно zipForge не встречал. Но есть вот это - http://wiki.lazarus.freepascal.org/ZipFile.

Добавлено спустя 22 секунды:
Вообще - то поиск рулит :)
Последний раз редактировалось minoshi 06.10.2010 16:31:37, всего редактировалось 1 раз.
Аватара пользователя
minoshi
постоялец
 
Сообщения: 279
Зарегистрирован: 17.05.2008 21:23:38

Re: QPas - квесты на Pascal'e

Сообщение Apromix » 06.10.2010 16:28:40

Александр, спасибо огромное :D

Да, нужен именно аналог IE для Лазаруса :) Вобщем пошел разгребать ссылки и пробовать кодить.
Apromix
новенький
 
Сообщения: 28
Зарегистрирован: 06.10.2010 15:15:51
Откуда: Черновцы, Украина

Re: QPas - квесты на Pascal'e

Сообщение minoshi » 06.10.2010 16:33:55

Всегда пожалуйста, обращайтесь
Аватара пользователя
minoshi
постоялец
 
Сообщения: 279
Зарегистрирован: 17.05.2008 21:23:38

Re: QPas - квесты на Pascal'e

Сообщение Apromix » 06.10.2010 16:40:36

Нда, разочарований моих нет предела :(
Apromix
новенький
 
Сообщения: 28
Зарегистрирован: 06.10.2010 15:15:51
Откуда: Черновцы, Украина

Re: QPas - квесты на Pascal'e

Сообщение amateur » 06.10.2010 16:49:20

1. https://lazarus-ccr.svn.sourceforge.net ... /thtmlport (или тащить за собой Qt)

2. pascalscript

3. уже ответили (в принципе существуют еще варианты)

Нда, разочарований моих нет предела
- относительное понятие...
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: QPas - квесты на Pascal'e

Сообщение Apromix » 06.10.2010 17:09:19

amateur писал(а):в принципе существуют еще варианты


Да, хотелось бы и их попробовать (особенно с примерами).

И уже назрел еще вопрос: знаю, как отыскать временный каталог для распаковки архива в Windows. Как такое сделать в Лазарусе для Linux и Mac?
Apromix
новенький
 
Сообщения: 28
Зарегистрирован: 06.10.2010 15:15:51
Откуда: Черновцы, Украина

Re: QPas - квесты на Pascal'e

Сообщение Mr.Smart » 06.10.2010 17:21:16

Используем функции RTL
Код: Выделить всё
GetTempDir
GetTempFileName
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: QPas - квесты на Pascal'e

Сообщение Odyssey » 06.10.2010 21:16:42

Apromix писал(а):Да, хотелось бы и их попробовать (особенно с примерами).

Например, TZipper: http://www.freepascal.ru/forum/viewtopi ... &sk=t&sd=a

P.S.
И по поводу РИЛ (это уже в порядке рекламы, если модераторы сочтут нужным, можно потереть). Если ещё не видели INSTEAD (Interpreter of simple text adventures), возможно вам будет интересно на него взглянуть. Open source проект, правда не на Lazarus, а на C, и использует в качестве движка скриптов Lua. Если решите продолжать собственный проект, то как минимум сможете подсмотреть у существующего удачные решения.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: QPas - квесты на Pascal'e

Сообщение Apromix » 06.10.2010 21:32:24

Спасибо :) Я прекрасно знаю плюсы и минусы существующих движков для РИЛ :) INSTEAD - прекрасный кроссплатформенный движок и мне очень понравился.

Добавлено спустя 4 минуты 28 секунд:
У меня возник вопрос по файловым системам Линукс и Винды. Как все это грамотно в коде организовать, чтобы проблем небыло со слешами и другим?
Apromix
новенький
 
Сообщения: 28
Зарегистрирован: 06.10.2010 15:15:51
Откуда: Черновцы, Украина

Re: QPas - квесты на Pascal'e

Сообщение Odyssey » 06.10.2010 21:58:54

PathDelim, он же DirectorySeparator -- это разделитель на текущей платформе (/ или \)
IncludeTrailingPathDelimiter/ExcludeTrailingPathDelimiter -- добавляют или убирают последний разделитель из пути.

LineEnding, он же sLineBreak -- перевода строки на текущей платформе (#13 или #10 или #13#10)

Плюс нужно помнить про то, что GUI в Lazarus работает в кодировке UTF-8, и вполне оправдан выбор её в качестве внутренней кодировки строк всего приложения. В этом случае при вызове функций и использовании невизуальных классов из FCL (в основном работа с файлами, типа FindFirst/FindNext, StringList.SaveToFile/LoadFromFile и т.п.) нужно преобразовывать строку из UTF-8 в кодировку операционной системы. Для этого можно воспользоваться специализированными функциями (типа FindFirstUtf8/FindNextUtf8, находятся в модуле FileUtil) или функциями преобразования ( FindFirst(Utf8ToSys(path), ...); ).

Ещё довольно полезная информация есть тут (на английском):
http://wiki.lazarus.freepascal.org/Mult ... ming_Guide
Последний раз редактировалось Odyssey 06.10.2010 22:32:53, всего редактировалось 3 раз(а).
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: QPas - квесты на Pascal'e

Сообщение Mr.Smart » 06.10.2010 21:59:29

Проблем со слешами не будет, но есть возможность нарваться на проблемму с UTF8.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: QPas - квесты на Pascal'e

Сообщение Apromix » 06.10.2010 22:04:38

Спасибо за ответы ;) А что там с кодировками может быть не так? Да, было бы неплохо, чтобы прога работала в современной utf-8.
Apromix
новенький
 
Сообщения: 28
Зарегистрирован: 06.10.2010 15:15:51
Откуда: Черновцы, Украина

Re: QPas - квесты на Pascal'e

Сообщение Odyssey » 06.10.2010 22:10:59

См. чуть выше, я дополнил своё сообщение.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: QPas - квесты на Pascal'e

Сообщение Apromix » 06.10.2010 22:19:12

Омг :) Столько всего нового :) Чувствую, эти кодировки выпотрошат всю душу :) Вопрос 1, вот я знаю путь к временному каталогу и мне нужно будет в него распаковать архив в отдельный каталог. Создаю новый каталог:

Код: Выделить всё
function GetRandomDirName: string;
begin
  Randomize;
  Result := Trim(IntToStr(Round(Random(888888888) + 111111111)));
end;


Затем распаковываю в него архив и работаю с файлами. Как мне потом удалить этот каталог со всеми файлами?

Вопрос 2, я перетягиваю архив на форму (drag-n-drop) и он открывается в Виндовс. То же будет и в Линукс без изменений кода?
Apromix
новенький
 
Сообщения: 28
Зарегистрирован: 06.10.2010 15:15:51
Откуда: Черновцы, Украина

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 48

Рейтинг@Mail.ru