Кроссплатформенный минимум!
Модератор: Модераторы
Кроссплатформенный минимум!
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
1. не пользоваться реестром. Есть кроссплатформенные решения (на худой конец GetAppConfigFile + TIniFile).
2. расположение файлов задаётся механизмом установки (msi в Windows, rpm/deb/etc в линукс). Кроссплатформенный путь к директории настроекпрограммы можно получить из GetAppConfigDir
3. всё что не в модулях windows/linux/unix должно быть кроссплатформенным
4. не скажу, не пользовался. Скорее всего, в свойствах проекта
5. нет, сам лазарус пересобирать не нужно. Нужно иметь собранные под разные платформы LCL и используемые библиотеки (компоненты и т.п.)
6. вариантов много. Один из универсальных способов - класс TProcess из модуля process.
7. GetTempDir, внезапно
8. модуль Clipbrd не попадает под исключения в п.3 -> должен быть кроссплатформенным
2. расположение файлов задаётся механизмом установки (msi в Windows, rpm/deb/etc в линукс). Кроссплатформенный путь к директории настроекпрограммы можно получить из GetAppConfigDir
3. всё что не в модулях windows/linux/unix должно быть кроссплатформенным
4. не скажу, не пользовался. Скорее всего, в свойствах проекта
5. нет, сам лазарус пересобирать не нужно. Нужно иметь собранные под разные платформы LCL и используемые библиотеки (компоненты и т.п.)
6. вариантов много. Один из универсальных способов - класс TProcess из модуля process.
7. GetTempDir, внезапно
8. модуль Clipbrd не попадает под исключения в п.3 -> должен быть кроссплатформенным
Громадное спасибо! Brainenjii
Однако, существуют варианты. Они всегда нужны. Дополняйте не пропадёт.
Возможно у кого есть свои вопросы, по теме или подводные камни о которых мало кто знает???...
ПОЖАЛУЙСТА, пишите - всё пригодится.
Это единственное, что мне всё ещё не понятно, всё остальное понятно.
5) Что значит: собранные под разные платформы LCL и используемые библиотеки (компоненты и т.п.)???
4) Остаётся вопрос: Куда нужно нажать в CodeTyphon, чтобы откомпилировалось кроссплатформенное приложение???
4.1) И для чего его(CodeTyphon) разработали ???
Однако, существуют варианты. Они всегда нужны. Дополняйте не пропадёт.
Возможно у кого есть свои вопросы, по теме или подводные камни о которых мало кто знает???...
ПОЖАЛУЙСТА, пишите - всё пригодится.
Brainenjii писал(а):Нужно иметь собранные под разные платформы LCL и используемые библиотеки (компоненты и т.п.)
Это единственное, что мне всё ещё не понятно, всё остальное понятно.
vitaly_l писал(а):4) Куда нужно нажать в CodeTyphon, чтобы откомпилировалось кроссплатформенное приложение??? (я долго в него смотрел, но как он работает, так и не понял...)
Куда нужно в нем нажать, чтобы откомпилировать, подскажу вряд ли. Хотя, по аналогии с 64/32-битными кроссами в нем же, скорее всего выбор будет производиться иконкой целевой платформы, в основном меню крайней справа.
Но вот в CodeTyphon Center (не в самой IDE лазаруса, а в сопровождающей надстройке) можно навыбирать разных кросс/компиляторов - лазарусов для разных процессоров и он всё это автоматически соберет, после чего собранным, наверное, можно будет воспользоваться уже из самого IDE Lazarus.
5 - вы когда то програмировали ?
4 - CodeTyphon_win32.exe - запускали, меню смотрели, на сайте читали ??? (там подробно описано, или на форуме)
4,1 -
Как давно я не видел подобных вопросов. Подавай человеку мануал по лазарю, прочитайте книгу Мансурова, зачем инет придумали, поисковики ... Да даже на этом форуме инфы - море... Токо успевай "переваривать"...
Больше всего смеялся с этого: "Выяснилось, что: Лазарус — сделан под кроссплатформенные приложения... " уже, кажись, год 6 - выяснилось
amateur писал(а):оборжатсо...
Я не программист, я художник(по образованию) и действительно не знаю что такое: LCL и используемые библиотеки (компоненты и т.п.). Хотя наверняка этим пользуюсь, просто называю по своему... Если это, то что, указывается в uses и class- то вопрос снимается... LCL итд <-- это оно(uses и class) ???
SSerge писал(а):CodeTyphon Center
Да всё правильно я именно его(CodeTyphon Center) имел ввиду версия 2.50 для windows... Где-то на форуме прочитал, что он нужен. Скачал. Установил. И обомлел... Это первая программа из нескольких сотен, в которй я технически не понимаю куда надо нажать, чтобы загрузить и откомпилировать проект?!... Если я правильно понял, то в нём код не пишут?
А касаемо чтения мануалов... Это важные творческие творения, но все люди по разному воспринимают информацию. Если я прочитаю мануал я "ничего" не пойму и не найду. А здесь я задаю конкретный вопрос и получаю конкретный ответ. И это обоюдо-полезно, т.к. человек, который отвечает на вопрос, проделывает определённую умственную работу, которая в последствии - облегчает ему решение иных задач (это происходит в подсознании), остальное можете найти в мануале по антропологии, там порядка нескольких сотен томов...
смех - не плохо...
По поводу вопросов, они отпадут сразу или постепенно. только стоит почитать на эту тематику "чуток"
.
Отличия лазаря от CodeTyphon существенного нет. Просто в CodeTyphon добавлены компоненты и чуток "вылизаны". В лазаря нужно устанавливать. Поэтому он для лентяев. Хотя большая часть компонентов там не нужна.
Литература подходит и из дельфина (почти). Много ответов можно найти используя поиск.
Вкратце описать Ваши вопросы получитсо. НО есть много нюансов, на переписание которых уйдет уйма времени. Именно переписания.
По поводу вопросов, они отпадут сразу или постепенно. только стоит почитать на эту тематику "чуток"
Отличия лазаря от CodeTyphon существенного нет. Просто в CodeTyphon добавлены компоненты и чуток "вылизаны". В лазаря нужно устанавливать. Поэтому он для лентяев. Хотя большая часть компонентов там не нужна.
Литература подходит и из дельфина (почти). Много ответов можно найти используя поиск.
Вкратце описать Ваши вопросы получитсо. НО есть много нюансов, на переписание которых уйдет уйма времени. Именно переписания.
- нет, Вы задаете вопросы, которые уже рассмотрены на этом форуме и разжОООваны до мелочей. Или я не прав ???А здесь я задаю конкретный вопрос и получаю конкретный ответ
vitaly_l
Я бы посоветовал вам до тех пор, пока вы не начнете на 100% ориентироваться во всех библиотеках и модулях лазаруса и fpc, не заморачиваться кросс-компилированием из одной операционной системы в другую. Достаточно иметь установленный lazarus на windows и linux, каждый на своей операционной системе и просто переносить между ними проект. В любом случае, это более лучший вариант, чем кросс-компиляция. Собрать же проект для какого-нибудь ARM или WinCE, да чтобы еще и работало - это отнюдь не так просто как кажется. Оставьте это на потом, когда не будете плавать в основных операциях языка и мучительно вспоминать названия функций.
Что касается конкретно CodeTyphon. Эта среда порою может забыть установить иконку для запуска IDE Lazarus. В этом случае просто создаем ее вручную. Файл, на который должна показывать иконка - c:\CodeTyphon\lazarus\bin32\startlazarus.exe (32-битная windows). Codetyphon center предназначен для изменения параметров настроек, доустановки и удаления пакетов и пересбора среды. После устанвки можно его ни разу и не запускать.
И имейте в виду, что CodeTyphon при всех достоинствах построен на "альфах" как компилятора, так и lazarus. То есть, вы можете столкнуться с очень странными ошибками при разработках на нём. В частности, у 2.50 поломаны функции преобразования кодировок, опирающиеся на определение кодировки системы по умолчанию.
Сайт, кстати у греческих товарищей - полный отстой.
И документации там нет почти никакой, и форум полумёртвый и достойно написанных материалов по кросс-компиляции там найти мне например не удалось. Какое-то мутное переливание из пустого в порожнее.
Я бы посоветовал вам до тех пор, пока вы не начнете на 100% ориентироваться во всех библиотеках и модулях лазаруса и fpc, не заморачиваться кросс-компилированием из одной операционной системы в другую. Достаточно иметь установленный lazarus на windows и linux, каждый на своей операционной системе и просто переносить между ними проект. В любом случае, это более лучший вариант, чем кросс-компиляция. Собрать же проект для какого-нибудь ARM или WinCE, да чтобы еще и работало - это отнюдь не так просто как кажется. Оставьте это на потом, когда не будете плавать в основных операциях языка и мучительно вспоминать названия функций.
Что касается конкретно CodeTyphon. Эта среда порою может забыть установить иконку для запуска IDE Lazarus. В этом случае просто создаем ее вручную. Файл, на который должна показывать иконка - c:\CodeTyphon\lazarus\bin32\startlazarus.exe (32-битная windows). Codetyphon center предназначен для изменения параметров настроек, доустановки и удаления пакетов и пересбора среды. После устанвки можно его ни разу и не запускать.
И имейте в виду, что CodeTyphon при всех достоинствах построен на "альфах" как компилятора, так и lazarus. То есть, вы можете столкнуться с очень странными ошибками при разработках на нём. В частности, у 2.50 поломаны функции преобразования кодировок, опирающиеся на определение кодировки системы по умолчанию.
Сайт, кстати у греческих товарищей - полный отстой.
И документации там нет почти никакой, и форум полумёртвый и достойно написанных материалов по кросс-компиляции там найти мне например не удалось. Какое-то мутное переливание из пустого в порожнее.
Смех - это хорошо.
Начал убирать uses///
И завяз в пучине сотен тысяч мануалов...
Лишними оказались:
1) Windows... Я там использую: BitBlt (это копирует часть изображения) -
Чем Кроссплатформенно заменить: BitBlt ???
2) Classes... Я там использую: Tstrings, TStringList и Rect -
Чем Кроссплатформенно заменить: Tstrings, TStringList ???
3) SysUtils... Я там использую: IntToStr(итп), Time, TimeToStr, ExtractFileName, GetAppConfigDir, GetTempDir итд или его(SysUtils) можно оставить ??? Тогда непонятно почему это находится в директории win32?
Чем Кроссплатформенно заменить SysUtils или что ???
4) ActiveX и ComObj Я там использую: IPersistFile и IUnknown - это нужно для создания иконок
Чем Кроссплатформенно заменить ActiveX и ComObj (создание иконок) ???
5) ShlObj Я там использую: SHGetSpecialFolderPath - это нужно для определения системных директорий и ещё реестр, но его тоже нельзя...
Чем Кроссплатформенно заменить (выявление системных путей) ???
Всё остальное вроде лежит в LCL, за исключением IniFiles, однако насколько я понимаю - IniFiles кроссплатформенно или что?
Заранее благодарен ВСЕМ, за ответы.
Добавлено спустя 13 минут 38 секунд:
Я не настолько совсем уж... читаю любой код кроме ASM, просто Pascal - лучшее из того, что изобрело человечество, остальные языки возможно выигрывают, но Pascal - удобнее и алдовее всех...
Это по нашему по взрослому... Но у меня в этой директории - пусто... ыыыыыыыыыыыыыыы
И разумных мануалов, я как и Вы - не нашёл.
На кнопку собрать для всех CPU - жал, результат - ничего...
Все основные вопросы чуть выше, о замене uses.
Начал убирать uses///
И завяз в пучине сотен тысяч мануалов...
Лишними оказались:
1) Windows... Я там использую: BitBlt (это копирует часть изображения) -
2) Classes... Я там использую: Tstrings, TStringList и Rect -
3) SysUtils... Я там использую: IntToStr(итп), Time, TimeToStr, ExtractFileName, GetAppConfigDir, GetTempDir итд или его(SysUtils) можно оставить ??? Тогда непонятно почему это находится в директории win32?
4) ActiveX и ComObj Я там использую: IPersistFile и IUnknown - это нужно для создания иконок
5) ShlObj Я там использую: SHGetSpecialFolderPath - это нужно для определения системных директорий и ещё реестр, но его тоже нельзя...
Всё остальное вроде лежит в LCL, за исключением IniFiles, однако насколько я понимаю - IniFiles кроссплатформенно или что?
Заранее благодарен ВСЕМ, за ответы.
Добавлено спустя 13 минут 38 секунд:
SSerge писал(а):пока вы не начнете на 100% ориентироваться
Я не настолько совсем уж... читаю любой код кроме ASM, просто Pascal - лучшее из того, что изобрело человечество, остальные языки возможно выигрывают, но Pascal - удобнее и алдовее всех...
SSerge писал(а):В этом случае просто создаем ее вручную. Файл, на который должна показывать иконка - c:\CodeTyphon\lazarus\bin32\startlazarus.exe
Это по нашему по взрослому... Но у меня в этой директории - пусто... ыыыыыыыыыыыыыыы
На кнопку собрать для всех CPU - жал, результат - ничего...
Все основные вопросы чуть выше, о замене uses.
SSerge 
я форум не читал, я гуглом помагал
А вот насчет поломок
лазарь иногда больше ламается....
vitaly_l прежде чем благодарить за ответы. Ответьте на вопросы:
1. Вы читали хоть какую то книгу по паскалю ?
2. Вы экспериментируете и Ваши эксперименты выводите на форум? Если так, то не надо
и последнее из флуда...
Вы хоть раз читали про линукс, устанавливали его, разбирались что где лежит ? В лине, кстати, подобие реестра есть (точнее появилось).
Сходу вопросы, которые за собой тянут еще вопросы. Попробуйте разобраться сами. А то ААА не получилось с первой попытки, на форум напишу. АААААААААА наф. книги, статьи пишут - на форум напишу.
Интересно: почему до сих пор не прозвучал вопрос о кодировках
)) Вообще уххх бы было:)
И в CodeTyphon одно достоинство для новенького. Тама море нужных и не очень компонентов. В этом свои плюсы и минусы. Плюс кое что допилено. А так, каждому свое.
http://freepascal.ru/download/book/lazarus_osnovy/osnovy_programmirovanija_v_srede_lazarus.pdf - просто капец, до чего ленивцев завелось
я форум не читал, я гуглом помагал
А вот насчет поломок
vitaly_l прежде чем благодарить за ответы. Ответьте на вопросы:
1. Вы читали хоть какую то книгу по паскалю ?
2. Вы экспериментируете и Ваши эксперименты выводите на форум? Если так, то не надо
и последнее из флуда...
Вы хоть раз читали про линукс, устанавливали его, разбирались что где лежит ? В лине, кстати, подобие реестра есть (точнее появилось).
Сходу вопросы, которые за собой тянут еще вопросы. Попробуйте разобраться сами. А то ААА не получилось с первой попытки, на форум напишу. АААААААААА наф. книги, статьи пишут - на форум напишу.
Интересно: почему до сих пор не прозвучал вопрос о кодировках
И в CodeTyphon одно достоинство для новенького. Тама море нужных и не очень компонентов. В этом свои плюсы и минусы. Плюс кое что допилено. А так, каждому свое.
http://freepascal.ru/download/book/lazarus_osnovy/osnovy_programmirovanija_v_srede_lazarus.pdf - просто капец, до чего ленивцев завелось
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
Classes, sysutils разве попадают под условия п. 3. ? И что вы имеете в виду под "создание иконок"?
[offtop]amateur, а что за подобие реестра в линуксе появилось? Вы хоть не systemd за него приняли? [/offtop]
[offtop]amateur, а что за подобие реестра в линуксе появилось? Вы хоть не systemd за него приняли? [/offtop]
Brainenjii - нет
я же сказал подобие реестра.... И оно есть сам им пользуюся (флажки убираю
))
хотя я пользуюсь гномом, в кеды Дааавно не заглядывал...
- gconf-editor-- фактически просто древовидная структура с конфигами и всё
Линукс я не знаю, и МАС тоже не знаю и знать не хочу, систем много... ---> я один (смысла нет знать все системы, есть Лазарус - они знают).
Однако ответить на мои вопросы - могут только те программисты, которые работают в разных системах.
Поэтому, ПОЖАЛУЙСТА, ко всем кто считает: НЕ зазорным - отвечать на вопросы, все вопросы про замену в uses в силе.
Создание иконок это ярлыки на рабочем столе и в меню пуск (win)
Я незнаю, я смотрю на название директории в которой лежит uses? если есть слово win - значит "использовать нельзя..."(наверное)...
Поэтому и спрашиваю...
Однако ответить на мои вопросы - могут только те программисты, которые работают в разных системах.
Поэтому, ПОЖАЛУЙСТА, ко всем кто считает: НЕ зазорным - отвечать на вопросы, все вопросы про замену в uses в силе.
Brainenjii писал(а): И что вы имеете в виду под "создание иконок"?
Создание иконок это ярлыки на рабочем столе и в меню пуск (win)
Brainenjii писал(а):Classes, sysutils разве попадают под условия п. 3. ?
Я незнаю, я смотрю на название директории в которой лежит uses? если есть слово win - значит "использовать нельзя..."(наверное)...
Поэтому и спрашиваю...
Ну, пардон: НАФИГА тода такие вопросы. Пользуйтеся виндой и в ус не дуйте, зачем кросс компиляция Вам нужна? Для нормально работающего приложения во всех системах, нужно знать основы работы этих систем. А так это туфта а не приложение... Винда, Лин и Мак - принцип один, основы и направления развития разные... К примеру: с новым гномом мона обходится и без меню, токо вот как ?:). Ведь в винде меню есть, а там можна и без, в кедах другая малина. Если мы хочем сделать приложение в трее, то будем ржать долго от того как его засунуть и заставить реагировать под разными окнами. И т.д. и т.п.
и че я знаю и могу работать что в лине что в винде, при этом прафа у меня - бух. ПАРАДОКС 
п.с. модер: перенеси плиз темку в обучение...
-Линукс я не знаю, и МАС тоже не знаю и знать не хочу, систем много...
п.с. модер: перенеси плиз темку в обучение...
amateur писал(а):Пользуйтеся виндой и в ус не дуйте, зачем кросс компиляция Вам нужна?
Там же ясно сказано: смысла нет знать все системы, есть Лазарус - они знают. Лазарус для этого и придуман...
Зачем мне(крохе) изучать все системы, если есть разработки Лазаруса???
amateur писал(а):могу работать что в лине что в винде
Об этом и разговор, систем сотня, всех не изучишь.
Добавлено спустя 1 минуту 35 секунд:
Повторяю вопросы, чтобы не искать:
Начал убирать uses///
И завяз в пучине сотен тысяч мануалов...
Лишними оказались:
1) Windows... Я там использую: BitBlt (это копирует часть изображения) - Чем Кроссплатформенно заменить: BitBlt ???
2) 3) Насколько я понял: Classes, SysUtils - общие...
4) ActiveX и ComObj Я там использую: IPersistFile и IUnknown - это нужно для создания иконок (ярлыков) Чем Кроссплатформенно заменить ActiveX и ComObj (создание иконок/ярлыков) ???
5) ShlObj Я там использую: SHGetSpecialFolderPath - это нужно для определения системных директорий и ещё реестр, но его тоже нельзя... Чем Кроссплатформенно заменить (выявление системных путей) ??? (это требуется только для установки)
Всё остальное вроде лежит в LCL, за исключением IniFiles, однако насколько я понимаю - IniFiles кроссплатформенно или что?
Заранее благодарен ВСЕМ, за ответы.
