Кроссплатформенный минимум!

Любые обсуждения, не нарушающие правил форума.

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

Кроссплатформенный минимум!

Сообщение vitaly_l » 20.03.2012 11:32:07

:idea: Выяснилось, что: Лазарус — сделан под кроссплатформенные приложения...
:? И есть ещё CodeTyphon, в котором, тоже есть про Лазарус...

:arrow: Но непонятно: Как этим добром - кроссплатформенно пользоваться?

:?: 1) Например в windows, есть реестр, там можно сохранить «path» итп, чем реестр заменить в других системах (Linux, MAC итд)? И как к этому: НЕЧТО — обращаться из Лазарус???

:?: 2) У всех систем свои пути (правила) хранения данных. Интересуют, расположение: программ, пользователей, настроек итд в системах отличных от windows???

:?: 3) Как узнать: Какие функции Лазарус кроссплатформенные, а какие нет???

:?: 4) Куда нужно нажать в CodeTyphon, чтобы откомпилировалось кроссплатформенное приложение??? (я долго в него смотрел, но как он работает, так и не понял...)

:?: 5) Если я правильно понял, то Лазарус нужно пересобрать(пересоздать) для компиляции кроссплатформенного приложения или что??? (там много вариантов: нужен один — правильный, по указанным здесь задачам).

:?: 6) Запуск внешнего приложения общая функция какая??? (нужно чтобы можно было запустить приложение, передать «командную строку» и ещё нужно, при нажатии на ссылку запускать интернет адрес)

:?: 7) temp директория: Как определяется в отличных от windows системах???

:?: 8 ) Буфер обмена???


:idea: Вот такой крохотный кроссплатформенный минимум — мне нужен.

:!: :arrow: Заранее благодарен: ВСЕМ - за любую: краткую, понятную, доступную — полезную информацию (без воды).
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Кроссплатформенный минимум!

Сообщение Brainenjii » 20.03.2012 12:00:51

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 -> должен быть кроссплатформенным
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Кроссплатформенный минимум!

Сообщение vitaly_l » 20.03.2012 12:55:56

Громадное спасибо! Brainenjii

Однако, существуют варианты. Они всегда нужны. Дополняйте не пропадёт.
Возможно у кого есть свои вопросы, по теме или подводные камни о которых мало кто знает???...
ПОЖАЛУЙСТА, пишите - всё пригодится.

Brainenjii писал(а):Нужно иметь собранные под разные платформы LCL и используемые библиотеки (компоненты и т.п.)

Это единственное, что мне всё ещё не понятно, всё остальное понятно.
:?: 5) Что значит: собранные под разные платформы LCL и используемые библиотеки (компоненты и т.п.)???
:?: 4) Остаётся вопрос: Куда нужно нажать в CodeTyphon, чтобы откомпилировалось кроссплатформенное приложение???
:?: 4.1) И для чего его(CodeTyphon) разработали ???
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Кроссплатформенный минимум!

Сообщение SSerge » 20.03.2012 12:58:59

vitaly_l писал(а):4) Куда нужно нажать в CodeTyphon, чтобы откомпилировалось кроссплатформенное приложение??? (я долго в него смотрел, но как он работает, так и не понял...)


Куда нужно в нем нажать, чтобы откомпилировать, подскажу вряд ли. Хотя, по аналогии с 64/32-битными кроссами в нем же, скорее всего выбор будет производиться иконкой целевой платформы, в основном меню крайней справа.

Но вот в CodeTyphon Center (не в самой IDE лазаруса, а в сопровождающей надстройке) можно навыбирать разных кросс/компиляторов - лазарусов для разных процессоров и он всё это автоматически соберет, после чего собранным, наверное, можно будет воспользоваться уже из самого IDE Lazarus.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Кроссплатформенный минимум!

Сообщение amateur » 20.03.2012 13:05:05

:) оборжатсо...
5 - вы когда то програмировали ?
4 - CodeTyphon_win32.exe - запускали, меню смотрели, на сайте читали ??? (там подробно описано, или на форуме)
4,1 - :) для летняев (типо меня:))...

Как давно я не видел подобных вопросов. Подавай человеку мануал по лазарю, прочитайте книгу Мансурова, зачем инет придумали, поисковики ... Да даже на этом форуме инфы - море... Токо успевай "переваривать"...

Больше всего смеялся с этого: "Выяснилось, что: Лазарус — сделан под кроссплатформенные приложения... " уже, кажись, год 6 - выяснилось :)))
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Кроссплатформенный минимум!

Сообщение vitaly_l » 20.03.2012 13:23:03

amateur писал(а):оборжатсо...

Я не программист, я художник(по образованию) и действительно не знаю что такое: LCL и используемые библиотеки (компоненты и т.п.). Хотя наверняка этим пользуюсь, просто называю по своему... Если это, то что, указывается в uses и class- то вопрос снимается... LCL итд <-- это оно(uses и class) ???

SSerge писал(а):CodeTyphon Center

Да всё правильно я именно его(CodeTyphon Center) имел ввиду версия 2.50 для windows... Где-то на форуме прочитал, что он нужен. Скачал. Установил. И обомлел... Это первая программа из нескольких сотен, в которй я технически не понимаю куда надо нажать, чтобы загрузить и откомпилировать проект?!... Если я правильно понял, то в нём код не пишут?

А касаемо чтения мануалов... Это важные творческие творения, но все люди по разному воспринимают информацию. Если я прочитаю мануал я "ничего" не пойму и не найду. А здесь я задаю конкретный вопрос и получаю конкретный ответ. И это обоюдо-полезно, т.к. человек, который отвечает на вопрос, проделывает определённую умственную работу, которая в последствии - облегчает ему решение иных задач (это происходит в подсознании), остальное можете найти в мануале по антропологии, там порядка нескольких сотен томов...
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Кроссплатформенный минимум!

Сообщение amateur » 20.03.2012 14:57:38

смех - не плохо...

По поводу вопросов, они отпадут сразу или постепенно. только стоит почитать на эту тематику "чуток" :).
Отличия лазаря от CodeTyphon существенного нет. Просто в CodeTyphon добавлены компоненты и чуток "вылизаны". В лазаря нужно устанавливать. Поэтому он для лентяев. Хотя большая часть компонентов там не нужна.
Литература подходит и из дельфина (почти). Много ответов можно найти используя поиск.
Вкратце описать Ваши вопросы получитсо. НО есть много нюансов, на переписание которых уйдет уйма времени. Именно переписания.


А здесь я задаю конкретный вопрос и получаю конкретный ответ
- нет, Вы задаете вопросы, которые уже рассмотрены на этом форуме и разжОООваны до мелочей. Или я не прав ???
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Кроссплатформенный минимум!

Сообщение SSerge » 20.03.2012 15:25:57

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 поломаны функции преобразования кодировок, опирающиеся на определение кодировки системы по умолчанию.

Сайт, кстати у греческих товарищей - полный отстой.
И документации там нет почти никакой, и форум полумёртвый и достойно написанных материалов по кросс-компиляции там найти мне например не удалось. Какое-то мутное переливание из пустого в порожнее.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Кроссплатформенный минимум!

Сообщение vitaly_l » 20.03.2012 15:35:52

Смех - это хорошо. :cry:

Начал убирать 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 секунд:
SSerge писал(а):пока вы не начнете на 100% ориентироваться

Я не настолько совсем уж... читаю любой код кроме ASM, просто Pascal - лучшее из того, что изобрело человечество, остальные языки возможно выигрывают, но Pascal - удобнее и алдовее всех...
SSerge писал(а):В этом случае просто создаем ее вручную. Файл, на который должна показывать иконка - c:\CodeTyphon\lazarus\bin32\startlazarus.exe

Это по нашему по взрослому... Но у меня в этой директории - пусто... ыыыыыыыыыыыыыыы :( :( :( И разумных мануалов, я как и Вы - не нашёл.
На кнопку собрать для всех CPU - жал, результат - ничего...

Все основные вопросы чуть выше, о замене uses.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Кроссплатформенный минимум!

Сообщение amateur » 20.03.2012 16:06:29

SSerge :)
я форум не читал, я гуглом помагал :)
А вот насчет поломок :) лазарь иногда больше ламается....

vitaly_l прежде чем благодарить за ответы. Ответьте на вопросы:
1. Вы читали хоть какую то книгу по паскалю ?
2. Вы экспериментируете и Ваши эксперименты выводите на форум? Если так, то не надо :)

и последнее из флуда...
Вы хоть раз читали про линукс, устанавливали его, разбирались что где лежит ? В лине, кстати, подобие реестра есть (точнее появилось).
Сходу вопросы, которые за собой тянут еще вопросы. Попробуйте разобраться сами. А то ААА не получилось с первой попытки, на форум напишу. АААААААААА наф. книги, статьи пишут - на форум напишу. :(

Интересно: почему до сих пор не прозвучал вопрос о кодировках :))) Вообще уххх бы было:)

И в CodeTyphon одно достоинство для новенького. Тама море нужных и не очень компонентов. В этом свои плюсы и минусы. Плюс кое что допилено. А так, каждому свое.

http://freepascal.ru/download/book/lazarus_osnovy/osnovy_programmirovanija_v_srede_lazarus.pdf - просто капец, до чего ленивцев завелось :)
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Кроссплатформенный минимум!

Сообщение Brainenjii » 20.03.2012 16:19:30

Classes, sysutils разве попадают под условия п. 3. ? И что вы имеете в виду под "создание иконок"?
[offtop]amateur, а что за подобие реестра в линуксе появилось? Вы хоть не systemd за него приняли? [/offtop]
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Кроссплатформенный минимум!

Сообщение amateur » 20.03.2012 16:22:46

Brainenjii - нет :) я же сказал подобие реестра.... И оно есть сам им пользуюся (флажки убираю :)))

-- фактически просто древовидная структура с конфигами и всё
- gconf-editor :) хотя я пользуюсь гномом, в кеды Дааавно не заглядывал...
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Кроссплатформенный минимум!

Сообщение vitaly_l » 20.03.2012 16:28:43

Линукс я не знаю, и МАС тоже не знаю и знать не хочу, систем много... ---> я один (смысла нет знать все системы, есть Лазарус - они знают).
Однако ответить на мои вопросы - могут только те программисты, которые работают в разных системах.

Поэтому, ПОЖАЛУЙСТА, ко всем кто считает: НЕ зазорным - отвечать на вопросы, все вопросы про замену в uses в силе.

Brainenjii писал(а): И что вы имеете в виду под "создание иконок"?

Создание иконок это ярлыки на рабочем столе и в меню пуск (win)
Brainenjii писал(а):Classes, sysutils разве попадают под условия п. 3. ?

Я незнаю, я смотрю на название директории в которой лежит uses? если есть слово win - значит "использовать нельзя..."(наверное)...
Поэтому и спрашиваю...
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Кроссплатформенный минимум!

Сообщение amateur » 20.03.2012 16:38:58

Ну, пардон: НАФИГА тода такие вопросы. Пользуйтеся виндой и в ус не дуйте, зачем кросс компиляция Вам нужна? Для нормально работающего приложения во всех системах, нужно знать основы работы этих систем. А так это туфта а не приложение... Винда, Лин и Мак - принцип один, основы и направления развития разные... К примеру: с новым гномом мона обходится и без меню, токо вот как ?:). Ведь в винде меню есть, а там можна и без, в кедах другая малина. Если мы хочем сделать приложение в трее, то будем ржать долго от того как его засунуть и заставить реагировать под разными окнами. И т.д. и т.п.

Линукс я не знаю, и МАС тоже не знаю и знать не хочу, систем много...
- :) и че я знаю и могу работать что в лине что в винде, при этом прафа у меня - бух. ПАРАДОКС :)

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

Re: Кроссплатформенный минимум!

Сообщение vitaly_l » 20.03.2012 16:47:07

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 кроссплатформенно или что?

Заранее благодарен ВСЕМ, за ответы.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

След.

Вернуться в Потрепаться

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

Рейтинг@Mail.ru