- PVSM.RU - https://www.pvsm.ru -
Всем привет! Меня зовут Сергей!
В данной статье речь будет идти больше о FPC/Lazarus, но так же многое, вероятно, можно будет отнести и к Delphi. Это будет что-то вроде обзора возможностей Lazarus вперемешку с начальными уроками. Многого я тут не раскрою (по моему мнению) и надеюсь читатель не будет надеяться что я смогу полностью раскрыть все секреты программирования (не надо, не надо меня за эти слова бить) в одной статье. Я надеюсь что данная статья поможет новичкам, а так же даст некоторую информацию не совсем новичкам.
В течении всей статьи я буду ссылаться на видеоролики, дабы упростить создание статьи. Было бы наверно лучше делать скриншоты и прикладывать их, но на это уйдёт намного больше времени, чем на подготовку видеороликов (учитывая что часть видеороликов уже готовы) и текст статьи вырастет в несколько раз.
Возможно статью разобью на несколько частей. Это я уже буду смотреть на то, что я сумею изложить в данной статье и как много места она будет занимать.
Дальше просто пропускайте не нужную вам информацию. ))) И прошу простить если приходится листать далеко.
Немного о себе [1]
"Простые уроки" [3]
Итог [5]
Чтобы вы понимали, я не профессионал своего дела, но и опыта программирования у меня достаточно не мало. И в каких-то моментах я могу ошибаться.
Мои основные языки программирования (далее ЯП) это Ассемблер и Паскаль. Создавал программы, для своего общего образования на Java, C/C++, Perl и языках разметок. По своему занятию приходится читать текст разных ЯП и переводить/модифицировать их код на Паскаль. Даже изучал такой ЯП как Erlang, язык достаточно специфичный и не стал в него сильно углубляться.
На данный момент, я ведущий разработчик кроссплатформенной библиотеки ZenGL [6] (не путайте, это паскалевская библиотека), по негласному соглашению с Андреем. До этого ей занимался Андрей Кемка, он её "забросил", а я случайно на неё наткнулся. В момент когда данная библиотека попала ко мне в руки все создаваемые программы можно было собрать только под Windows или Linux. Возможно устаревшими методами можно было собрать под старые: Android, iOS и Mac; но это было достаточно не просто.
В данный момент библиотека поддерживает платформы: Windows, Linux, MacOS и Android (наверняка ещё можно собрать под разные консоли, на которых стоят Windows или Linux).
Начинал я программировать ещё со Спектрума и даже сейчас не вспомню с какого. Понятно дело в данном случае моим первым ЯП был Бейсик Спектрума. Потом я столкнулся с Паскалем на Спектруме, там он мне не понравился и я его почти не запомнил. Пошёл учиться на радиотехника. Хотел на программиста, но как обычно места в программистах были уже заняты. Но со временем я даже не стал переводиться на другую специальность, потому что программирование у нас тоже было, а тут я ещё глубже смог углубиться в схемотехнику. Что как раз немного помогает (лично мне) понимать как всё происходит на низком уровне, на уровне даже ниже чем машинный код. ))) Большинству это не нужно.
В техникуме у нас был вроде Турбо Паскаль (хотя может и другие ЯП), но для меня это было слишком просто. Я занимался программированием у знакомого и изучал как Паскаль, так и Ассемблер, но вот только Ассемблер для Спектрума.
После учёбы - работа, потом ушёл в армию, потом вновь работа по специальности Электрика. Стал индивидуальным предпринимателем по электрике. И в недалёком прошлом завязал с электрикой ( ну почти завязал). Где-то в этом же периоде делал танки. Все же помнят Battle Tanks? Вот я и решил что-то подобное сделать. Опыта в создании игр было мало, но что-то получалось.
Но после очередной переделки основы, наткнулся на ZenGL. И увлёкся разработкой библиотеки. За период разработки получил достаточно не мало знаний, но они больше нужны на низком уровне и зачастую только один раз. Не нужно часто изобретать колесо, чтоб потом его просто использовать. Потому многие основы заложенные в ZenGL просто используются и не меняются очень многое время. Хотя правки всё равно приходится делать.
В общем на данное время я занимаюсь в основном программированием. А так же немного схемотехникой.
Достаточно недавно мне пришёл заказ на переделку каких-то частей сайта. Код был дан на Perl, а перевести его надо было на Pascal. Я бы наверно отказался, если бы не одно НО. Я и так очень долгое время отодвигал работу с сетью. Все наработки что я изучал были для статичных программ и к сети я не прикасался ни разу. И надо же было хоть когда-то начать.
И я решил что пора закончить откладывать и пора уже заняться.
За пару недель немного изучил HTML, сетевые запросы GET, POST. Ну и всякую мелочь. И уже в предвкушении думаю: "А может сайт создать на Паскале?!".
... сталкиваюсь с БД (база данных)... Думаю многие меня поймут, кто помнит как это начинать. Практически любой сайт должен работать с БД, и как раз на изучение работы с БД у меня ушло больше всего времени. Да, я стал больше понимать как всё работает. Стал понимать какие-то свои ошибки в этом направлении, но всё равно многое не достаточно понятно. Чтобы вы понимали, я стараюсь вникнуть в происходящее внутри и иногда слишком дотошно. Мне важно понять как всё работает.
И я решил написать простенькую программу для работы с БД, после того как понял самое основное. Как для практики, так и для использования. У меня есть Game Stick Lite и у меня возникло давно желание "переделать его основу", точнее перелопатить весь список игр и впихнуть туда свои, и чтоб в Game Stick Lite всё нормально работало.
И вот тут я как раз и встретился в очередной раз со многим: с проблемами мелкими, насколько достаточно у меня стало знаний, чтоб понимать как всё работает. А самое важное, это то, что я понимаю, что многие не знают того что я знаю. И я решил поделится информацией. )))
А в следующей статье, глядишь поделюсь готовой программой.
Многим данные видео можно просто пропустить, они несут только основную информацию по работе с Lazarus. Многое объяснено до меня и у большинства с этим проблем обычно нет.
Я надеюсь у вас не будет проблем с установкой FPC/Lazarus, а если всё-таки будут, то на просторах интернета достаточно примеров как их можно установить. Если будут возникать какие-то вопросы, то обращайтесь сюда [7], сюда [8] или ко мне. Я так же на какие-то вопросы смогу дать вам ответ, хотя на форумах вам могут быстрее помочь.
Извиняюсь но для Delphi я не могу предоставить ссылок, так как для этого нужны достаточно надёжные источники. Вам придётся самим искать эту информацию или будем надеяться что какой-нибудь добрый человек скинет ссылку (ссылки) под статью.
Что-то я здесь не буду ни расписывать, ни задевать. Очень многое по урокам расписано в книгах по Delphi а так же можете посмотреть уроки по Lazarus [9] на ютубе (не мои). Пробежимся по тому о чём меня достаточно часто спрашивали и тем моментам, о которых я думаю стоит знать людям, которые будут использовать Lazarus.
Создание, открытие и сохранение проекта.
Работа с формой, компонентами. Изменение свойств компонент и тестирование кода.
Настройка IDE Lazarus и настройка проекта.
Считаю достаточно важным этот шаг, потому что зачастую настройки IDE решают многие проблемы при работе с проектом и многие настройки можно сделать под себя. Настройки же проекта, всегда были достаточно важной частью, если вы постоянно занимаетесь программированием.
Группы из кнопок SpeedButton
Многим известно использование SpeedButton, но в данном случае мы имеем возможность работы с группой кнопок, где при нажатии одной кнопки, любая из остальных нажатых в группе будет отжата. Точнее получается, что в группе может быть нажата только одна кнопка.
Извиняюсь за качество видео, записывал достаточно давно.
Так же в Lazarus есть возможность устанавливать множественные курсоры и работать с ними. Зажимаем Ctrl + Shift и левой кнопкой мыши выбираем место для очередного курсора в редакторе кода. В начале виде показываю как это работает.
И встретился с некоторыми не документированными возможностями компонентов. Эти возможности у части компонентов есть, а у части нет. Ну и так же стоит помнить, что в компоненты Lazarus добавляли достаточно не мало возможностей, и часть из них не документировалась и возможно ни когда не будет документирована, если кто-то не решит добавить эту информацию.
Даже при том что многие сейчас не стремятся писать на Паскале, то рассматривая IDE Lazarus можно понять, что данная оболочка развивается и по сей день и имеет достаточно не малую функциональность. Позволяя настраивать как саму оболочку, так и её рабочее окружение.
FPC/Lazarus, Delphi и многие другие Паскали продолжают развиваться, какие-то больше, какие-то меньше. Люди продолжают использовать Паскаль в своих интересах и разработках. Паскаль позволяет делать проекты под разные платформы и при этом является компилируемым ЯП, чем не многие ЯП могут похвастаться (ни в коем случае это не занижение возможностей других ЯП!).
Сообщество Паскаля достаточно не маленькое. Если смотреть только англоязычный форум Lazarus [8], то можно увидеть что там ежедневно общаются десятки людей. Но если присмотреться повнимательнее, то можно увидеть что подобных форумов очень много и они на разных языках. Да, там меньше людей общаются и задают вопросы, даже есть наш русскоязычный сайт [10].
Я не думаю что сообщество Delphi меньше. И наверняка там так же продолжает кипеть работа, а ведь не так и редко есть работа для людей которые используют Delphi.
Я вас не призываю использовать Паскаль. Я лишь провёл маленький обзор на одну из его оболочек. А вы всегда в праве выбрать тот ЯП который вам больше всего подходит! )))
Доделаю проект, покажу что получилось в конечном итоге. Уж очень мне охота Game Stick Lite перелопатить. )))
Всем успехов!
Автор: Seenkao
Источник [11]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/393092
Ссылки в тексте:
[1] Немного о себе: #one
[2] Почему я решил написать эту статью?: #to%20two
[3] "Простые уроки": #to%20three
[4] Расширенные примеры: #to%20four
[5] Итог: #to%20five
[6] ZenGL: https://sourceforge.net/projects/new-zengl/
[7] сюда: http://www.freepascal.ru/forum/
[8] сюда: https://forum.lazarus.freepascal.org/
[9] уроки по Lazarus: https://www.youtube.com/watch?v=VWHec3Fwuck&list=PLYELAoHVltk1W4pwgYuPZsCTuENQHf27u
[10] русскоязычный сайт: http://www.freepascal.ru/
[11] Источник: https://habr.com/ru/articles/832686/?utm_source=habrahabr&utm_medium=rss&utm_campaign=832686
Нажмите здесь для печати.