background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Кроссплатформенная разработка с Lazarus/ObjectPascal/Delphi. Программирование #ityoutubersru"

input logo icon
Теги видео
|

Теги видео

Программирование
Паскаль
Pascal
Delphi
Lazarus
Windows
Linux
OSX
Разработка
Программирование для начинающих
GUI
Окна
Компоненты
Интерфейс
UI
Нативный код
Компилятор
Отладка
Релиз
Окно
ОС
ityoutubersru
программирование
objectpascal
ityoutubers
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:02
обычно пётр
00:00:03
мои подписчики много раз просили меня
00:00:05
сделать ролики про программирования и я
00:00:07
наконец-таки на это решился
00:00:09
естественно мне хотелось бы чтобы каждый
00:00:11
мог повторить то что я делаю своих
00:00:13
роликах а для этого надо найти какую-то
00:00:15
такую среду разработки при установке
00:00:18
которой устанавливается компиляторы все
00:00:20
необходимые утилиты
00:00:21
чтобы их не надо было настраивать
00:00:22
вручную кроме того для меня крайне важно
00:00:25
чтобы разработка шла на каком-то
00:00:26
компилируем языке который позволяет
00:00:29
создавать независимые бинарники
00:00:31
а также чтобы была возможность легко и
00:00:33
просто создавать графический интерфейс
00:00:34
пользователя и поскольку мои подписчики
00:00:37
используют разные операционные системы
00:00:39
та среда разработки должна работать на
00:00:41
windows linux и os x и на самом деле
00:00:45
всего лишь две среды разработки
00:00:46
соответствует этим критериям а именно
00:00:49
киты crater и программирование на языке
00:00:51
си плюс плюс и lazarus
00:00:54
и программирование на языке обжиг
00:00:55
паскаль рассмотрев все плюсы и минусы в
00:00:58
конце концов я выбрал лазарус и
00:01:00
программирование на языке object pascal
00:01:02
если вы очень сильно не любите язык
00:01:04
паскаль то не спешите выключать это
00:01:06
видео возможно мне удастся вас
00:01:08
переубедить в этом видео я расскажу почему же
00:01:11
все-таки выбрал лазарус никиты crater
00:01:13
как установить лазарус на различные
00:01:16
операционные системы
00:01:17
расскажу немного о синтаксисе языка
00:01:19
обжиг паскаль мы напишем несколько
00:01:22
простейших консольных приложений и
00:01:24
конечно же я покажу как создать
00:01:25
приложение с графическим интерфейсом
00:01:27
пользователя что на мой взгляд очень
00:01:30
интересно кроме того я расскажу немного
00:01:32
об отладке приложений и о том как
00:01:35
сделать релиз вашего приложения в общем
00:01:38
и целом вас ждет около часа я надеюсь
00:01:40
качественного контента поэтому наливайте
00:01:43
пивасик заваривайте чай og и поехали
00:01:56
почему же для использования своих
00:01:58
роликах я выбрал lazarus
00:02:00
они qt creator среда qt creator заточена
00:02:03
под си плюс плюс
00:02:04
в то время как лазарус под обжиг pascal
00:02:06
и на мой взгляд для людей которые не
00:02:08
знают ни то ни другое понять код на
00:02:10
pascal будет проще
00:02:11
еще одним минусом титек рейтера является
00:02:14
то что в бесплатной версии он запрещает
00:02:16
дело с этические бинарники таким образом
00:02:19
с вашим приложением надо таскать с собой
00:02:21
ещё и куча динамических библиотек
00:02:23
но есть и еще одна весомая причина а
00:02:25
именно постоянное изменение лицензионной
00:02:27
политики и каюты company которое
00:02:30
последнее время творит какую-то дичь на
00:02:32
официальном сайте gt найти бесплатную
00:02:34
версию китай крейтер а теперь очень
00:02:36
сложно бесплатные tls релизы были вовсе
00:02:40
отменены компания меняет лицензии у
00:02:42
некоторых компонентов с lgpl на gpl а
00:02:46
новые компоненты создаются под лицензией
00:02:48
gnu gpl версия 3 которая является
00:02:51
настолько свободной что ты просто обязан
00:02:54
открыть исходный код свои программы без
00:02:55
всяких исключений кроме того там где
00:02:58
осталась лицензия lgpl
00:03:00
она используется третьей версии что
00:03:02
практически запрещает делать какие-то
00:03:04
встроенные приложения дошло даже до
00:03:07
абсурда оффлайн инсталлятор теперь доступен
00:03:09
только под коммерческой лицензии на
00:03:12
самом деле ясно для чего это делается
00:03:14
это делается для того чтобы пользователи
00:03:16
фреймворка qt покупали коммерческую
00:03:18
версию которая сейчас стоит 4 тысячи
00:03:20
долларов в год на одного разработчика
00:03:22
что я считаю слишком большой суммой как
00:03:25
и многие пользователи каюты забавно что
00:03:28
на некоторых сайтах разработчики теперь
00:03:30
всерьез рассматривают переход обратно на
00:03:32
delphi на самом деле катакомб они давно
00:03:34
бы уже убрала бесплатную версию и
00:03:36
возможно вовсе закрыла бы исходники на
00:03:39
этому мешает договор который был
00:03:40
заключен с pdf ricketty foundation
00:03:43
девяносто восьмом году который обязывает
00:03:45
публиковать все исходники в течение 12
00:03:48
месяцев после их изменения
00:03:50
впрочем и здесь китая company нашла
00:03:52
лазейку они собираются публиковать
00:03:54
исходники для бесплатных пользователей
00:03:56
только спустя 12 месяцев после релиза
00:03:59
честно говоря у меня нет никакого
00:04:01
желания погружаться в тонкости
00:04:03
лицензирование qt и в изменении
00:04:06
политики компании поэтому я и выбрал
00:04:08
лазарус
00:04:09
и программирование на языке обжиг
00:04:11
паскаль да и в конце концов я просто
00:04:13
люблю язык обжиг паскаль да и лицензия
00:04:16
лазаруса намного более либерально она
00:04:18
основана на lgpl
00:04:20
и кроме всего прочего у нее есть важное
00:04:22
исключение она разрешает статическое
00:04:25
связывание то есть вы можете делать
00:04:27
plaza руси как бесплатные так и платные
00:04:29
приложения закрытым исходным кодом и
00:04:32
единым бинардиком без всяких
00:04:34
динамических библиотек в общем лицензии
00:04:36
лазарус не накладывает на вас
00:04:38
практически никаких ограничений лазарус
00:04:41
это полностью независимый некоммерческий
00:04:43
проект который разрабатывается команда
00:04:46
разработчиков распределенных по всему
00:04:47
миру качестве компилятора лазарус
00:04:50
использует free pascal который тоже
00:04:52
является полностью некоммерческим
00:04:54
продуктом и хотя в некоммерческом
00:04:56
лазарус и безусловно больше недоработок
00:04:58
чем коммерческом продукт от компании к
00:05:00
этой компании это действительно хорошая
00:05:02
среда разработки я практически уверен
00:05:07
что под этим видео как и при любом
00:05:09
упоминание языка паскаль в рунете
00:05:11
появится куча комментариев вида а что
00:05:14
паскаль ищу используется паскаль мертв а
00:05:17
разве еще кто-то пишет на delphi
00:05:19
паскаль используется только в россии за
00:05:21
рубежом его никто не используют никто не
00:05:23
пишет коммерческий слов на pascal
00:05:26
все же знают что паскаль используют
00:05:28
только для обучения закопайте уже этот
00:05:30
язык и в школе не осилил begins что
00:05:35
довольно абсурдно однажды в смерти
00:05:36
pascal меня убеждал человек с
00:05:38
гуманитарного направления который вовсе
00:05:40
никогда не программировал не на чем так
00:05:42
уж вышло что в россии все знают что
00:05:44
паскаль или delphi умерли отвечу на все
00:05:47
подобные комментарии прямо сейчас в
00:05:49
действительности есть как минимум три
00:05:51
коммерческие среды разработки для pascal
00:05:53
это конечно же прекрасная среда от
00:05:55
компании embarcadero под названием
00:05:57
delphi есть также просто форменная среда под
00:06:00
названием oxigin и для программирования
00:06:02
микроконтроллеров есть среда микро
00:06:04
паскаль самой известной бесплатной
00:06:06
средой разработки конечно же является
00:06:07
lazarus но если некоторые другие есть ли
00:06:11
да м с я тоже использующая free pascal в
00:06:13
качестве компьюлента
00:06:14
есть и более мелкие проекты такие как
00:06:16
например дизель паскаль
00:06:18
есть также интересный проект под
00:06:20
названием паскаль a b c нет который
00:06:22
создан специально для обучения я думаю
00:06:25
очевидно что у мертвого языка не может
00:06:27
быть столько след разработки часть из
00:06:28
которых коммерческая
00:06:30
а по поводу программ которые написаны на
00:06:32
pascal в данном случае на delphi то вы
00:06:34
скорее всего смотрите это видео девайс
00:06:36
при проектировании которого
00:06:37
использовалась сапр altium designer
00:06:40
это огромное приложение которое написана
00:06:42
на delphi когда вы слушаете свою любимую
00:06:44
музыку то скорее всего вы слушаете и
00:06:46
треки которые были написаны с помощью
00:06:48
fruity loops studio которая тоже
00:06:50
написана на delphi и с некой долей
00:06:52
вероятности слушаете вы музыку с помощью
00:06:54
программы aimp которая тоже написана на
00:06:57
delphi
00:06:58
также на delphi написал известный
00:06:59
трассировщик плат под названием diptrace
00:07:02
sprint-layout которым вы возможно
00:07:04
пользуетесь тоже написана на delphi
00:07:06
да и в конце концов схемы к роликом на
00:07:08
моем канале я рисую программе написанный
00:07:10
на делфи под названием с план если
00:07:13
говорить конкретно о глаза руси то на
00:07:15
лоза руси написано 6 4 битная версия
00:07:17
тотал командера
00:07:19
но возможно вы предпочитаете свободный
00:07:21
софт и пользуетесь до был командиром что
00:07:23
же он тоже написан на лоза руси
00:07:25
свободный аналог paint.net
00:07:27
под названием лаз paint еще одна
00:07:29
программа сделанная глаза руси также
00:07:31
лазарус активно используется в науке
00:07:32
научных исследованиях на нем написано
00:07:34
достаточно много научного софта еще
00:07:37
лазарус популярен для написания
00:07:39
медицинского софта одна из программ
00:07:41
вовсе пережила смену аппаратной и
00:07:43
программной платформы в компьютерах
00:07:45
apple а по поводу того что большинство
00:07:47
разработчиков на pascal из россии это не
00:07:49
имеет ничего общего с правдой если
00:07:52
говорить об играх тут действительно
00:07:53
паскаль не самое популярное средство но
00:07:56
тем не менее такая игра как казаки 3 от
00:07:58
gsc или например свободный клон вором с
00:08:01
под названием хогвартс написаны на
00:08:03
pascal как видите вопреки стереотипам на
00:08:06
pascal написано много хорошего и
00:08:08
популярного софта
00:08:09
но стоит признать что действительно и за
00:08:12
многолетнего анти хайпа паскаль не так
00:08:14
популярен с
00:08:15
и новых разработчиков как мог бы но кто
00:08:17
знает возможно и что-то извиню своим
00:08:19
роликам начать конечно же стоит с
00:08:22
установки лазаруса я покажу как
00:08:24
установить лазарус но такие операционные
00:08:26
системы как windows и os x и linux
00:08:29
также я расскажу как можно установить
00:08:32
лазарус на другие операционные системы
00:08:36
установка лазаруса на операционной
00:08:39
системе от microsoft самая простая все
00:08:41
что нужно сделать это зайти на
00:08:43
официальный сайт лазарус и дает точка
00:08:45
орг и загрузить установщик лазаруса под
00:08:47
вашу операционную систему путина
00:08:50
32-битная или 64-битная
00:08:52
как правило сайт сам определяет вашу
00:08:55
операционную систему после запуска
00:08:57
инсталлятора выбираем предпочитаемой
00:08:59
вами язык и прокликивает установщик
00:09:02
кнопкой далее
00:09:03
директорию установки лазаруса лучше не
00:09:05
менять чтобы не получить в будущем
00:09:06
какие-то глюки не стоит беспокоиться
00:09:09
лазарус занимает очень мало от места на
00:09:11
вашем системном диске также при желании
00:09:14
можно создать значок на рабочем столе
00:09:16
теперь после нажатия на кнопку
00:09:18
установить надо немного подождать пока
00:09:20
установится lazarus
00:09:22
при первом запуске появится окно
00:09:25
настройки лазаруса в нем надо убедиться
00:09:27
что установлены все необходимые
00:09:28
компоненты для работы и lazarus а именно
00:09:31
сам лазарус компилятор исходный код мейк
00:09:34
и отладчик как только вы убедитесь что
00:09:37
все хорошо смело нажимайте кнопку
00:09:39
запустить ядре лазарус запустился и открыл проект
00:09:43
по умолчанию это пустое приложение с
00:09:45
одной формой для удобства я рекомендую
00:09:49
открыть окно инспектора проекта чтобы
00:09:51
было удобно осуществлять навигацию по
00:09:53
файлам вашего проекта
00:09:56
давайте доработаем стандартное
00:09:58
приложение добавим на форму одну кнопку
00:10:01
при нажатии по которой на экран будет
00:10:03
выводиться диалоговое окно с
00:10:05
приветствием
00:10:09
запустим наше приложение как вы видите
00:10:12
компиляция за счет однопроходных sti
00:10:14
компилятора
00:10:15
происходит достаточно быстро и вот мы
00:10:17
уже получили первое нативное приложение
00:10:19
под windows
00:10:22
большинство программистов предпочитают
00:10:24
темную тему редактора кода я честно
00:10:26
говоря не исключение поэтому давайте
00:10:28
включим ее в параметрах и диет
00:10:32
также для наглядности я рекомендую
00:10:34
включить отображение контуров блоков по
00:10:39
умолчанию лазарус отображает свой
00:10:41
интерфейс нескольких окнах и по
00:10:43
интерфейсу сильно похож на интерфейс
00:10:44
delphi 7
00:10:46
но не всем такой интерфейс придется по
00:10:48
вкусу возможно вам больше нравится 1
00:10:50
конной программы
00:10:51
если вы хотите включить однако ный режим
00:10:54
то зайдите в менеджер пакетов выберите
00:10:57
пакет название которого вы видите на
00:10:59
экране это экспериментальный пакет но
00:11:01
работает достаточно хорошо нажмите
00:11:04
установить выбранное
00:11:05
затем нажмите сохранить и запустить ядре
00:11:08
и согласитесь с изменениями и лоза раз в
00:11:11
течение нескольких минут перри соберет
00:11:13
сам себя из исходников с учетом
00:11:15
выбранного пакета что же как увидите
00:11:20
лазарус перри запустился его интерфейс
00:11:22
напоминает современные версии delphi
00:11:25
давайте отключим не очень красивые
00:11:26
заголовки окон и добавим менеджер
00:11:29
проекта в общем-то на этом все настройка
00:11:32
лазаруса для программирования на
00:11:34
платформе windows закончена теперь
00:11:38
рассмотрим установку лазаруса на
00:11:40
операционную систему linux
00:11:42
а более конкретно на ubuntu на
00:11:45
официальном сайте лазаруса есть как дед
00:11:47
так и рпн пакеты что покрывает большинство
00:11:49
дистрибутивов linux
00:11:51
убедимся что сайт лазаруса правильно
00:11:54
определил нашу операционную систему
00:11:55
здесь написано debian 6 4 убунта это
00:11:59
дистрибутив основанный на деле не как вы
00:12:04
видите на странице загрузки доступно три
00:12:06
пакета нам нужно загрузить каждый после
00:12:09
того как пакеты загружены
00:12:10
их следует установить строго в следующем
00:12:12
порядке сначала в пэлас это компилятор
00:12:15
free pascal затем vpc
00:12:17
сердце это исходные коды и наконец
00:12:20
lazarus project устанавливаем эти пакеты
00:12:24
друг за другом и как вы видите менеджеры
00:12:27
программ у нас появился значок лазаруса
00:12:30
после запуска лазаруса открывается окно
00:12:32
конфигурации в котором надо убедиться
00:12:34
что все необходимые компоненты
00:12:35
установлены после чего можно смело
00:12:38
нажать кнопку старт первую очередь я
00:12:40
установлю пакет для 1 оконного режима
00:12:42
работы и т.е. для того чтобы убедиться
00:12:45
что мы все сделали правильно и lazarus
00:12:47
может пересобрать сам себя из исходников
00:12:55
спустя несколько минут лазарус перри
00:12:57
запустился в однако нам режиме
00:13:00
теперь имеет смысл добавить окно
00:13:02
инспектора проекта давайте сделаем
00:13:07
простейшие приложение
00:13:08
изменим загружены по умолчанию проект
00:13:10
добавим на формулу кнопку при нажатии на
00:13:13
которую вы видим окно с приветствием
00:13:17
запустим наш проект и после
00:13:20
непродолжительной компиляции мы можем
00:13:21
убедиться что мы только что написали
00:13:23
простейшие приложение с использованием
00:13:26
gtk плюс
00:13:27
причем на линуксе по умолчанию лазарус
00:13:29
создает приложение с использованием
00:13:31
библиотеке виджетов гтк 2
00:13:33
но вы можете спросить почему бы такой
00:13:35
отвар они гтк 3 ведь библиотека гтк 3
00:13:38
существует уже несколько лет и пора бы
00:13:40
переходить на неё на самом деле
00:13:43
поддержка gt3 приложений глаза руси есть
00:13:45
но она находится в альфа режиме вызвана
00:13:48
эта многими причинами в том числе и тем
00:13:50
что библиотека gd к 3 умудряется ломать
00:13:53
совместимость сама с собой на уровне
00:13:54
исходных кодов минорных релизах не
00:13:57
говоря уже о совместимости на бинарном
00:14:00
уровне да и в целом к архитектуре гтк 3
00:14:02
есть вопросы и многие программы не
00:14:05
только лазарус продолжают использовать
00:14:06
гтк 2 даже такая программа как джим
00:14:09
довольно известное продолжает
00:14:11
использовать библиотеку гтк 2
00:14:13
несмотря на то что гтк расшифровывается
00:14:15
как джим тулкит и изначально гтк
00:14:17
создавалась именно для этой программы
00:14:20
естественно по аналогии с windows вы
00:14:22
можете расстроить другие параметры среды
00:14:24
разработки на этом установка и настройка
00:14:27
лазарус под убунтой закон
00:14:29
china
00:14:31
что же
00:14:33
время переустанавливать шанс хотя нет
00:14:38
подождите сейчас мы будем устанавливать
00:14:40
азарус на операционную систему маджар а
00:14:43
linux
00:14:44
манджари linux это арч который
00:14:46
естественно не поддерживает дед или рпн
00:14:48
пакеты однако в стандартном менеджеры
00:14:51
пакетов этой операционной системы есть
00:14:53
свежий релиз ваза руссо
00:14:54
в любом случае если вы будете установить
00:14:57
лазарус других дистрибутивах linux
00:14:58
убедитесь что у вас в репозитории
00:15:01
находится свежая версия лазаруса если
00:15:03
ваш дистрибутив поддерживает рпн или deb
00:15:06
пакеты я крайне рекомендую загружать
00:15:08
лазарус с официального сайта
00:15:10
как и в предыдущие разы при первом
00:15:12
запуске лазарус выведет окно настройки в
00:15:14
котором надо убедиться что все
00:15:16
необходимые компоненты установлены в
00:15:18
системе что же запускаем лазарус и пишем
00:15:22
программку которая будет выводить при
00:15:23
нажатии на кнопку у холма джара
00:15:28
запускаем ее и как вы видите наше
00:15:31
приложение отлично работает я думаю вы
00:15:35
уже успели заметить что у меня маджар со
00:15:37
средой рабочего стола к и дает для
00:15:39
которой нативными приложениями является
00:15:41
приложения написанные с помощью фимор
00:15:44
как ю т а по умолчанию как я уже говорил
00:15:47
лазарус создает гадко два приложения за
00:15:50
кадром я уже настроил лазарус и теперь
00:15:52
предлагаю поговорить о том как создать
00:15:54
qt приложения в лоза руси для начала
00:15:58
давайте напишем небольшой код который
00:16:00
будет выводить во всплывающем окне какая
00:16:02
библиотека виджетов используется код
00:16:05
сделан с помощью условной компиляции для
00:16:09
того чтобы была поддержка приложений
00:16:12
необходимо установить соответствующий
00:16:15
пакет пакет для создания киты приложений
00:16:17
глаза руси я нашел в стандартном
00:16:19
пакетном менеджером от жары
00:16:23
теперь надо зайти в настройки нашего
00:16:25
проекта перейти во вкладку настройки
00:16:29
целевой платформы и выбрать другую
00:16:32
библиотеку виджетов мы выберем
00:16:34
библиотеку виджетов кит e5
00:16:36
сохраняем настройки и запускаем наше
00:16:39
приложение снова
00:16:42
что ж как вы видите мы создали
00:16:44
приложение которое использует библиотеку
00:16:45
виджета в те пять и выглядит нативно для
00:16:48
данного десктопного менеджера перед тем
00:16:53
как я расскажу как установить лазарус на
00:16:55
apple os x небольшая историческая
00:16:57
справка
00:16:58
первоначальная классическая макось была
00:17:01
написана на ассемблере и pascal и
00:17:03
и пия и для приложений соответственно
00:17:05
был тоже по скальный называлось это дело
00:17:07
макинтош tool-box в принципе это 35 был
00:17:10
удобен не только для pascal но и для
00:17:12
программ которые написанную на си и все
00:17:14
разработчики в принципе были этим
00:17:16
довольны
00:17:17
девяносто шестом году apple анонсировала
00:17:19
свою новую написанную с нуля
00:17:21
операционную систему которую мы сейчас
00:17:23
знаем под названием
00:17:24
os x это операционная система была
00:17:27
сделана на основе next и было unix-like
00:17:30
качестве графического этой новой
00:17:32
операционной системы от apple был прибор
00:17:35
какого этот ремонт был очень крутым но
00:17:37
был неудобен разработчикам которые
00:17:39
разрабатывают на языках отличных от
00:17:41
языка объекте все кроме того для него
00:17:44
надо было переписывать приложение
00:17:46
практически с нуля очень уж сильно
00:17:48
отличался этот и пьянь от классического
00:17:50
и pr для макинтош однако поддержка
00:17:54
старого и pr было убрано это возмутило
00:17:57
большое количество разработчиков и даже
00:17:59
microsoft сказали что они будут
00:18:01
переписывать
00:18:02
свой код под новую платформу разработки
00:18:04
под названием какого и уже в 90 восьмом
00:18:08
году под напором разработчиков apple
00:18:10
анонсировала свое новое и перед для
00:18:12
разработки приложений под названием
00:18:14
карбон по сути это было немного
00:18:16
измененный tool-box
00:18:17
главным его плюсом было то что
00:18:19
приложение не надо переписывать с нуля
00:18:21
надо лишь сделать небольшие изменения
00:18:24
поскольку карбон и пьян был разработан
00:18:27
на основе классического по скального
00:18:29
от apple на классических макинтош их
00:18:31
разработчики лазаруса стали использовать
00:18:34
именно его и лазар в отлично работало на
00:18:36
операционной системе от apple кстати
00:18:38
apple и сама активно использовала карбон
00:18:41
вплоть до 2009 года но 2012 году apple
00:18:45
сказала что карбон api устарела и карбон
00:18:48
api больше не будет обновляться новые
00:18:50
функции не будут появляться
00:18:51
и 6 четырех битов карбон api тоже не
00:18:54
будет поэтому в lazarus начали
00:18:56
постепенно добавлять поддержку какого
00:18:58
но эта поддержка добавлялось достаточно
00:19:01
медленно потому что лазарус принципе так
00:19:03
отлично работал пока наконец 2019 году
00:19:06
не вышло айс x каталина которая вне за
00:19:09
убила поддержку 32-битных приложений а
00:19:12
заодно и поддержку приложений с
00:19:14
использованием карбон и pr
00:19:16
таким образом на какое то время а
00:19:18
лазарус остался без интерфейса под os x
00:19:21
однако спасибо команде лазаруса за это
00:19:23
довольно короткие сроки поддержка of
00:19:26
реворка какого глаза руси была добавлена
00:19:28
и хоть еще имеет некоторые проблемы
00:19:30
работает достаточно стабильная и главное
00:19:33
теперь глаза руси можно делать
00:19:35
действительно нативные приложения с
00:19:37
нативным интерфейсом под os x
00:19:39
а теперь наконец таки перейдем к
00:19:42
установке лазаруса на os x
00:19:44
принципе есть два способа установки
00:19:46
лазарус а также как и с другими
00:19:48
операционными системами можно просто
00:19:50
загрузить лазарус с официального сайта
00:19:53
перед установкой лазаруса надо будет
00:19:56
сначала установить инструменты командной
00:19:58
строки разработчика от apple для этого
00:20:00
надо будет терминале выполнить такую
00:20:02
команду в принципе если вы хоть что-то
00:20:04
разрабатывали вои сэкс то скорее всего
00:20:06
инструменты разработчика у вас уже
00:20:08
установлены после этого как и в случае с
00:20:11
другими операционными системами надо
00:20:13
будет загрузить со страницы загрузки три
00:20:15
пакета
00:20:16
а затем установить их сначала в pc потом
00:20:19
vpc сердце и наконец lazarus
00:20:22
но есть еще один способ установки
00:20:25
лазаруса который в принципе подходит и
00:20:27
для других операционных систем только не
00:20:30
забывайте об одной важной детали вы
00:20:31
должны выбрать какой-то один способ
00:20:33
установки в этих способов одновременно
00:20:35
будут конфликтовать
00:20:37
можно воспользоваться утилитой fpt
00:20:39
делюкс
00:20:40
перед использованием этой утилиты
00:20:43
необходимо будет прочитать в ридми
00:20:44
необходимой зависимости для ее запуска
00:20:47
после того как зависимости установлены в
00:20:50
данном случае это инструменты командной
00:20:52
строке от apple можно загружать утилиту
00:20:54
со страницы с релизами надо взять самый
00:20:57
последний стабильный релиз
00:20:59
посмотрите на этот огромный список в
00:21:02
этом списке перечислены все архитектуры
00:21:04
и операционные системы на которых
00:21:06
возможно использование лазаруса как
00:21:08
видите здесь огромное количество разных
00:21:10
операционных систем например здесь есть
00:21:12
free bsd solaris и даже хайку
00:21:15
мы конечно же выберем дарвин какого
00:21:19
единственное что стоит отметить утилиту
00:21:21
нельзя запускать из папок с загрузками
00:21:23
так как операционная система apple не
00:21:25
дает приложением там нормально работать
00:21:29
после запуска утилиты надо убедиться что
00:21:32
ппц вершин стоит встал и lazarus вершин
00:21:35
тоже стоит в степу после чего можно
00:21:37
смело жать кнопку install апдейт в pc +
00:21:40
класс утилита сама загрузит исходники
00:21:45
компилятора free pascal и lazarus а и
00:21:47
буквально-таки в течение нескольких
00:21:49
минут полностью пересоберём как
00:21:51
компилятор так и и среду разработки с
00:21:53
нуля
00:21:54
это к слову о популярном мифе что обжиг
00:21:56
паскаль медленный язык что ж как вы
00:22:01
видите утилита успешно завершила свою
00:22:03
работу и мы можем запустить lazarus
00:22:05
lazarus запустился я его уже настроил за
00:22:08
кадром и покажу важную настройку для os
00:22:12
x надо зайти в параметры и дыре найти
00:22:15
вкладку отладчик и включить галочку
00:22:18
сбрасывать отладчик после каждого
00:22:20
запуска а также включить галочку ланч и
00:22:22
new терминал чтобы консольное приложение
00:22:25
работали правильно ну и как с
00:22:28
предыдущими операционными системами
00:22:29
давайте доработаем стандартную заготовку
00:22:31
приложения положим на форму кнопку и в
00:22:35
ее обработчики выведем сообщение привет
00:22:38
ой секс
00:22:40
запускаем наше приложение выбираем
00:22:43
отладчик и как вы можете видеть мы
00:22:46
получили работающие нативное какого
00:22:48
приложение
00:22:50
ну и давайте так сказать подытожим
00:22:52
предыдущую часть ролика рекомендуемыми
00:22:55
настройками и да и конечно же если вам
00:22:58
нужен 1 оконный режим и дает то
00:23:00
установите соответствующий пакет также
00:23:02
крайне рекомендую включить отображение
00:23:04
инспектора проекта любителям тёмной темы
00:23:08
в редакторе кода я рекомендую включить
00:23:10
ее в настройках также в описании к
00:23:12
ролику я выложу свой вариант тёмной темы
00:23:14
для редактора кода а для более
00:23:17
наглядного вида кода я рекомендую
00:23:19
включить отображение контура блока
00:23:21
фичу под названием умные то бы я
00:23:23
рекомендую отключить так как оно не
00:23:25
всегда адекватно работает
00:23:27
лазарус при автодополнение кода
00:23:29
используют определенные настройки
00:23:30
расстановки пробелов я рекомендую такие
00:23:33
по умолчанию глаза руси достаточно
00:23:36
большая задержка перед выводом окна
00:23:38
автодополнение вашего кода я рекомендую
00:23:40
ее уменьшить ну и наконец я рекомендую
00:23:43
отключить галочку предлагать имя нового
00:23:45
файла по умолчанию нижнем регистре на
00:23:47
мой взгляд это сделает ваш проект более
00:23:49
читабельным собственно с помощью этих
00:23:52
настроек вы можете добиться очень
00:23:53
нежного вида лазаруса практически на
00:23:56
любой операционной системе давайте
00:23:58
напишем несколько простейших программок
00:24:00
на языке object pascal в ходе написание
00:24:03
которых я немного затрону тему
00:24:05
синтаксиса этого языка я думаю все
00:24:07
понимают что за просмотром одного ролика
00:24:09
по программированию научиться
00:24:11
программированию нельзя поэтому если
00:24:13
кому то интересно стало как
00:24:15
программировать на обжиг pascal в
00:24:17
описании к ролику я оставлю ссылки на
00:24:19
книги курсы и различные учебные пособия
00:24:21
по языку обжиг паскаль дальнейшем я все
00:24:24
буду показывать в операционной системе
00:24:26
от apple
00:24:27
но вы можете использовать свою любимую
00:24:28
операционную систему код останется тем
00:24:30
же начнем конечно же самой простейшей
00:24:32
программы под названием привет мир
00:24:35
который пишет все начинающие
00:24:36
программисты создаем новый проект
00:24:38
выбираем тип проекта простая программа
00:24:41
создается заготовка проекта рекомендую
00:24:45
сразу же сохранять проекты давать ему
00:24:48
адекватное имя компилятор free pascal
00:24:51
поддерживает множество различных режимов
00:24:53
я буду везде указывать режим дэльфи
00:24:55
так как синтаксис дэльфи мне наиболее
00:24:57
привычен как видите в нашем проекте есть
00:24:59
ключевое слово программ с названием
00:25:01
программ
00:25:02
а также операторные скобки бегин энд
00:25:05
именно здесь мы напишем наш код
00:25:07
воспользуемся стандартным оператором
00:25:09
write down который позволяет выводить в
00:25:11
конце различные вещи например строки или
00:25:14
числа мы выведем строчку привет мир
00:25:18
программа в общем-то завершена давайте
00:25:21
ее запустим упс
00:25:24
программа запустилась и тут же
00:25:26
завершилась возможно в ней есть какая-то
00:25:28
ошибка
00:25:29
давайте попробуем запустить эту
00:25:30
программу из проводника и смотрите оно
00:25:33
все равно запускается и тут же
00:25:35
завершается однако если мы запустим из
00:25:38
терминала то как вы видите наша
00:25:39
программа работает на самом деле это
00:25:42
связано с тем что программа выводит в
00:25:44
консоль текст и тут же заканчивается а у
00:25:46
меня по умолчанию консоль закрывается
00:25:49
как только заканчивать с программа
00:25:50
и таким образом мы не видим результат
00:25:52
работы нашей программы что же тогда
00:25:54
давайте доработаем нашу программу с
00:25:56
помощью оператора регилин который
00:25:58
позволяет вести какие-либо вещи в нашу
00:26:00
программу
00:26:01
либо если никаких параметров не указано
00:26:03
то он просто ожидает нажатии клавиши
00:26:05
ввода запускаем теперь нашу программу и
00:26:08
как вы видите она отлично работает
00:26:12
давайте напишем простейшую программу с
00:26:15
использованием функций а именно
00:26:16
программу которая вычисляет факториал
00:26:18
videonova пользователям числа
00:26:20
факториал от н это произведение
00:26:23
натуральных чисел от единицы до н
00:26:25
например так выглядит факториал числа 5
00:26:28
создадим проект и тут же сохраним его
00:26:30
под соответствующим именем включим режим
00:26:34
delphi кстати вы можете задать режим по
00:26:37
умолчанию до всего проекта глобального
00:26:38
настройках проекта теперь опишем функцию
00:26:41
которая возвращает факториал от n
00:26:43
функции определяются с помощью
00:26:45
соответствующего ключевого слова потом
00:26:48
идет название функции а в скобках
00:26:50
перечисление параметров которые
00:26:52
принимает функция сначала идет название
00:26:55
параметра а затем тип а тип
00:26:57
возвращаемого значения функции
00:26:58
указывается после двоеточия в данном
00:27:01
случае наша функция факт будет принимать
00:27:04
and типа интеджер
00:27:06
и возвращать тоже интеджер interjet это
00:27:08
целое число возвращаемое функцией
00:27:10
значения
00:27:11
жить псевдо переменной резал напишем
00:27:14
цикл который будет приравнивать
00:27:15
переменной резалт резалт умноженная на
00:27:19
переменную цикла данном случае это ой
00:27:21
объявим переменную цикла и установим
00:27:24
изначальное значение резалт единицу
00:27:27
таким образом мы написали функцию
00:27:29
которая возвращает факториал от числа n
00:27:32
как видите в pascal переменные
00:27:34
объявляются в отдельном блоке кто то
00:27:36
скажет что это плюс кто то скажет что
00:27:38
это минус я лично считаю это плюсом так
00:27:41
как всегда можно посмотреть эти перемены
00:27:42
не надо пролистывать код всей функции
00:27:44
или метода также это является неким
00:27:47
ограничением для размера функции когда
00:27:49
ты видишь что блок war явно разросся то
00:27:51
стоит разделить функцию на несколько
00:27:53
теперь давайте напишем код который будет
00:27:56
запрашивать у пользователя число n и с
00:27:58
помощью оператора riedel н мы будем
00:28:00
записывать переменную n число которое
00:28:03
ввел пользователь
00:28:04
дальше в переменную рез мы сохраним
00:28:07
результат вызова функции факт от н ну и
00:28:10
в конце концов выведем на экран
00:28:12
переменную рез с описанием что это
00:28:15
запустим нашу программу и введём в
00:28:17
качестве n число 6
00:28:19
программа вычислила факториал от 6 он
00:28:21
равен 720 и давайте проверим это с
00:28:24
помощью встроенного калькулятора как вы
00:28:27
видите наша программа работает правильно
00:28:29
модули это очень мощное средство
00:28:31
позволяющая сделать код ваших программ
00:28:33
более читабельным также модули позволяют
00:28:35
переиспользовать какой-то полезный код и
00:28:37
в других программах но на самом деле это
00:28:40
далеко не все плюсы модулей и паскаль в
00:28:42
отличие например от плюсов поддерживают
00:28:44
полноценные модули давайте перепишем
00:28:47
нашу программу для вычисления факториала
00:28:49
числа под использование модулей
00:28:51
выберем в меню файл создать и создадим
00:28:54
новый модуль сразу же укажем режим
00:28:56
синтаксиса которые нас устраивает
00:28:59
а это дэльфи и как мы видим среда
00:29:01
разработки создала заготовку модуля
00:29:03
сразу же сохраним наш модуль и давайте
00:29:06
назовем его например калк как мы видим
00:29:09
среда разработки с помощью ключевого
00:29:11
слова uses подключила к нашему модулю
00:29:13
другие модули
00:29:14
но наш модуль будет независимо ни от
00:29:16
каких модулей поэтому удалим эти строчки
00:29:18
модуль имеет две секции
00:29:20
это интерфейс которым непосредственно
00:29:22
описывается интерфейс модуля для
00:29:25
программ которые его используют и секцию
00:29:28
implementation
00:29:29
или по-другому реализация в которой
00:29:30
непосредственно пишется код внешней код
00:29:33
не видит реализацию модуля таким образом
00:29:35
реализуется принцип
00:29:36
инкапсуляции идея в том что интерфейс
00:29:39
модуля должен оставаться одним и тем же
00:29:41
в то время как реализацию мы можем
00:29:43
спокойно менять это не сломает никакой
00:29:45
код давайте скопируем нашу функцию факт
00:29:49
и вставим ее в реализацию нашего модуля
00:29:52
а в интерфейсе мы опишем только
00:29:55
интерфейс этой функции как вы видите
00:29:59
среда разработки автоматически уже
00:30:01
подключил а наш модуль с помощью
00:30:02
ключевого слова uses давайте запустим
00:30:04
программу и убедимся что она работает и
00:30:07
теперь модуль коллег можно использовать
00:30:10
любой другой программе если нам
00:30:12
понадобится вычислить факториал числа
00:30:14
как вы видите если мы закомментируем
00:30:16
подключение модуля то наша программа не
00:30:18
компилируется а теперь небольшая
00:30:21
демонстрация что секция реализации
00:30:23
действительно недоступна стороннему коду
00:30:26
давайте переименуем функцию факт в ду
00:30:29
факт как вы видите в интерфейсе нет
00:30:31
описание функции ду факт и
00:30:33
соответственно сторонний код и и не
00:30:34
может вызвать пришло время поговорить о
00:30:37
классах обжиг pascal
00:30:39
рассказывать что такое класс я не буду
00:30:41
потому что это займет очень много
00:30:43
времени об этом вы можете прочитать в
00:30:45
книжках или например википедии но
00:30:47
простейший класс мы напишем и немного
00:30:49
поиграемся с ним
00:30:50
создадим новый проект на основе шаблона
00:30:53
программа сразу же сохраним его под
00:30:56
адекватным именем и создадим новый
00:31:00
модуль в секции интерфейс на пишем
00:31:02
ключевое слово type которая позволяет
00:31:05
создавать новые типы и создадим новый
00:31:08
класс под названием директ который будет
00:31:10
описывать некий прямоугольник по
00:31:12
умолчанию если не указывать специально
00:31:14
от какого класса наш класс наследуется
00:31:17
то он наследуется от корневого класса т
00:31:20
и g
00:31:21
но при большом желании мы можем указать
00:31:23
что наследуемости от объекта в принципе
00:31:25
разницы нету у классов в
00:31:28
же pascal есть несколько областей
00:31:29
видимости это привеет здесь описываются
00:31:32
приватные члены класса protected эта
00:31:34
область доступно наследником класса и
00:31:37
public здесь описываются публичные члены
00:31:40
класса есть также специальная секция
00:31:42
публич предназначенная первую очередь
00:31:44
для работы рефлексе или ртт ой мы
00:31:49
создадим секцию public в которой пишем
00:31:51
два поля это ширина прямоугольника и высота
00:31:54
прямоугольника также создадим метод
00:31:58
класса под названием calcarea
00:32:00
позволяющий вычислить площадь нашего
00:32:02
прямоугольника теперь нажимаем волшебную
00:32:05
комбинацию кнопок shift kontrol ц для
00:32:08
того чтобы среда разработки создала
00:32:10
прототипы методов как вы можете видеть в
00:32:13
секции implementation теперь есть пустая
00:32:15
реализация метода клип ария
00:32:17
давайте напишем код который будет
00:32:19
возвращать площадь нашего прямоугольника
00:32:20
для доступа непосредственно к объекту
00:32:23
есть псевдо переменная cells хотя часто
00:32:26
ее можно не писать я все-таки рекомендую
00:32:27
это делать таким образом вы будете
00:32:30
получать более читабельный код данном
00:32:32
случае мы просто возвращаем результат
00:32:34
умножения ширины на высоту сохраним
00:32:38
модуль с нашим классом и напишем код
00:32:41
который его используют создадим новую
00:32:43
процедуру под именем тест процедур
00:32:45
отличается от функции тем что она ничего
00:32:48
не возвращает в главном же блоки беге
00:32:50
легенд мы будем вызывать эту процедуру в
00:32:53
процедуре т создадим переменную под
00:32:55
названием rect которая будет хранить
00:32:57
экземпляр нашего класса теперь присвоим
00:32:59
переменной rect новый экземпляр нашего
00:33:01
класса
00:33:02
экземпляр класса можно получить с
00:33:05
помощью конструктора конструктором по
00:33:07
умолчанию является конструктор create
00:33:09
присвоим ширине и высоте нашего
00:33:12
прямоугольника некие значения пусть это
00:33:14
будет 20 на 5 ну и напишем код который
00:33:17
выводит в консоль ширину прямоугольника
00:33:19
высоту прямоугольника и площадь с
00:33:22
помощью метода calcarea запустим нашу
00:33:25
программу и как вы видите действительно
00:33:28
площадь прямоугольника вычисляется верно
00:33:31
но на самом-то деле этот код ужасен в
00:33:35
нем есть утечка памяти давайте убедимся
00:33:37
в этом зайдем в параметры на
00:33:40
шива проекта выберем вкладку отладка и
00:33:43
включим отслеживание утечек памяти
00:33:47
запустим наше приложение еще раз и как
00:33:50
вы можете видеть после его завершения у
00:33:52
нас обнаружена одна утечка памяти дело в
00:33:56
том что в обжиг pascal как и многих
00:33:58
нативных языках нет такого понятия как
00:34:00
сборка мусора и объекты надо удалять
00:34:03
самому сделать это можно с помощью
00:34:06
методов ри
00:34:07
запустим наш код еще раз и как вы видите
00:34:10
никакой утечки памяти больше нету но кот
00:34:13
все еще ужасен давайте напишем
00:34:16
глобальный обработчик исключений в
00:34:17
котором при исключении мы выведем его в
00:34:20
консоль к слову исключения это любая
00:34:22
недопустимая операция такая например как
00:34:24
выход за предел массива деление на ноль
00:34:27
и так далее а теперь процедуре тест
00:34:30
перед вызовом метода free бросим
00:34:32
исключение пусть это будет самое
00:34:34
обыкновенное стандартно исключение
00:34:36
теперь запускаем нашу программу как вы
00:34:39
можете видеть исключение действительно
00:34:40
отработала в консоль вывелось сообщение
00:34:43
и у нас появилась утечка памяти но ее
00:34:47
довольно легко исправить здесь поможет
00:34:48
конструкция thrive anna lee and
00:34:50
идея этой конструкции в том что код в
00:34:53
блоке finally всегда будет выполнен даже
00:34:55
если в блоке трой произойдет исключение
00:35:01
запускаем нашу программу ещё раз и как
00:35:04
вы видите никаких утечек памяти больше
00:35:06
нету но код нашего класса тоже далёк от
00:35:10
идеала давайте зададим отрицательную
00:35:13
высоту для нашего прямоугольника и
00:35:15
запустим программу и кажется мы получили
00:35:20
отрицательную площадь я думаю что
00:35:22
отрицательная площадью прямоугольника
00:35:23
это просто какой-то бред не я конечно не
00:35:26
спорю я уверен что в какой-нибудь
00:35:28
геометрии лобачевского такое возможно но
00:35:31
это точно не наш случай что ж давайте
00:35:33
перепишем наш код на использовании
00:35:36
свойств или по-другому property идея
00:35:38
свой в том что для внешнего кода
00:35:41
свойства будет выглядеть просто как
00:35:42
обычное поле класса действительности же
00:35:45
в зависимости от того читаем мы is
00:35:47
property или записываем в property будет
00:35:50
вызываться где
00:35:51
это или соответственно setter либо
00:35:53
что-то одно в зависимости от того что мы
00:35:56
хочем сделать лично мне очень не хватает
00:35:58
property в таких языках как си плюс плюс
00:36:00
или голдинг снова откроем файл с нашим
00:36:04
классом и закомментируем поля ширины и
00:36:07
высоты и напишем вместо них property я
00:36:10
думаю вы заметили что я не написал центр
00:36:12
и геттер на самом деле мне устроить
00:36:15
только один setter и лазаруса может
00:36:18
создать заготовки сеттеров для этого я
00:36:20
нажимаю волшебную комбинацию клавиш
00:36:22
shift kontrol ц
00:36:24
как вы видите появилась секция приводит
00:36:27
в которой у нас есть те же самые поля
00:36:29
что были до этого тока с префиксом f
00:36:32
также появились два метода установки
00:36:34
высоты и установки ширины чтение
00:36:37
происходит непосредственно из полей
00:36:39
а запись же происходит через сеттеры по
00:36:42
умолчанию эти методы по сути особо
00:36:44
ничего и не делают давайте изменим метод
00:36:47
установки высоты если новое значение
00:36:49
высоты больше нуля то присвоим полю f
00:36:53
хайд это значение в противном же случае
00:36:57
присвоим полю f50
00:37:00
таким образом мы избавляемся от
00:37:02
возможности установить отрицательную
00:37:04
высоту то же самое проделываем и для
00:37:06
ширины запускаем проект и как вы видите
00:37:12
больше мы не можем установить
00:37:14
отрицательную высоту и соответственно у
00:37:16
нас отрицательной площади тоже не будет
00:37:19
площадь равна нулю для высоты равной
00:37:21
нулю при этом заметьте что код который
00:37:24
использовал класс переписывать не
00:37:25
пришлось то есть синтаксически что
00:37:28
свойства что полет для внешнего кода
00:37:31
равнозначны и наконец таки перейдем к
00:37:34
самому интересному на мой взгляд а
00:37:36
именно к созданию оконных приложений
00:37:38
глаза руси создадим новый проект и в
00:37:42
качестве шаблона выберем приложения
00:37:45
создалось пустое приложение с
00:37:47
графическим интерфейсом пользователя и
00:37:49
давайте сразу же рассмотрим окна и дает
00:37:52
которые видны на экране над редактором
00:37:55
кода видно редактируемой а форма в
00:37:57
которой и осуществляется дизайн
00:37:59
интерфейс на части вашего приложения
00:38:01
не переключаться между кодом и
00:38:03
дизайнером форм можно с помощью
00:38:05
соответствующего меню или горячей
00:38:08
клавиши
00:38:09
верхней части главного окна расположена
00:38:11
палитра компонентов
00:38:13
глаза руси очень много встроенных
00:38:14
компонентов но мы сегодня будем
00:38:17
использовать только компоненты которые
00:38:19
расположены на вкладке стандарт с левой
00:38:22
части располагается инспектор объектов в
00:38:25
котором можно изменять свойства как
00:38:27
формы так и расположенных на ней
00:38:29
компонентов а сверху
00:38:30
инспектора объектов располагается дерева
00:38:33
компонентов текущей формы с правой части
00:38:36
располагается окно инспектора кодов это
00:38:39
окно позволяет быстро анализироваться по
00:38:41
вашему коду там же располагается и окно
00:38:44
инспектора проекта в котором
00:38:46
отображается дерево файлов вашего
00:38:47
проекта
00:38:48
ну а снизу расположен окно вывода в том
00:38:51
числе сообщений компиляторы качестве
00:38:54
простейшего примера оконного приложение
00:38:56
я предлагаю сделать приложение которое
00:38:58
будет приветствовать пользователя по
00:38:59
введенному
00:39:00
им имени сохраним наш проект нажав
00:39:03
иконку сохранить все ведем имя проекта
00:39:06
пусть это будет хеллоу
00:39:07
lpl теперь сохраним модуль формой я его
00:39:11
назову юнит main нашими unity форма
00:39:14
представлена как класс т form1
00:39:16
наследуемый от класса т форм являющийся
00:39:19
стандартным классом для форм глаза руси
00:39:21
чтобы не было потом больно я советую
00:39:24
давать вашим формам и компонентом
00:39:26
понятные имена давайте переименуем
00:39:29
название формы в форм main
00:39:32
что соответствует имени нашего модуля
00:39:34
как вы видите в коде тоже все
00:39:36
автоматически переименовал оси
00:39:38
конкретной экземпляр формы которая
00:39:40
открывается при запуске приложения
00:39:42
представлен глобальной переменной форм
00:39:45
main не стоит бояться глобальных
00:39:47
переменных для главной формы какая-то
00:39:49
глобальная переменная в приложении в
00:39:51
любом случае должна быть кроме того с
00:39:53
опытом вы научитесь избавляться таких
00:39:55
глобальных переменных
00:39:57
теперь пришло время размещать на форме
00:39:59
компонент и разместим на форме компонент
00:40:01
ты лейбл это метка которая отображает
00:40:04
текст сразу же переименуем ее в лейбл
00:40:07
name и в качестве заголовка med
00:40:09
введём строчку name с двоеточием как вы
00:40:13
видите в дизайне реформ изменение сразу
00:40:15
же вступили в силу в следующий компонент
00:40:18
который мы разместим на форме
00:40:19
это поле ввода ты едет я сразу же
00:40:22
установлю поле ввода какой-нибудь
00:40:24
адекватный размер и последний компонент
00:40:26
который мы разместим на форуме эта
00:40:28
кнопка заменяем текст поле ввода на
00:40:32
строчку пользователь и переименовываем
00:40:35
сам компонент
00:40:36
назовем его едет name переименовываем
00:40:39
также кнопку в baton ок и последнее
00:40:42
изменим заголовок кнопки на ok
00:40:45
и как мы видим автоматически в класс
00:40:48
формы добавились соответствующие поля
00:40:51
нажимаем два раза по кнопке чтобы
00:40:53
создать обработчик события по умолчанию
00:40:55
обработчик событий по умолчанию это
00:40:58
нажатии однако вы можете создать в инспекторе
00:41:01
объектов обработчики и других событий
00:41:03
например движения курсора мыши над
00:41:05
компонентом получения фокуса ввода или
00:41:07
нажатии клавиши на клавиатуре добавим в
00:41:11
метод обработки нажатия кнопки
00:41:12
переменную name которая будет хранить
00:41:15
введенный пользователем текст присвоим
00:41:18
переменной name текст из поля ввода
00:41:21
у-компоненты ты едет введенный
00:41:23
пользователем текст хранить свойства
00:41:25
текст после того как мы в переменной
00:41:28
name получили введенный пользователем
00:41:29
текст отобразим на экране сообщения
00:41:32
привет пробел и введенный текст
00:41:35
склеивать строчки в pascal можно с
00:41:38
помощью плюса запускаем наше приложение
00:41:42
и получаем ошибку компиляции потому что
00:41:45
я забыл включить режим dlc
00:41:47
включаем джим дельфин и запускаем еще
00:41:50
раз наше приложение запустилось и мы
00:41:54
можем ввести имя при в качестве имени в
00:41:57
виду youtube нажимаем на кнопку ok и во
00:42:00
всплывающем окне появилась приветствие
00:42:02
ютубу вот так вот легко и просто
00:42:05
создавать лазарус и оконные приложения
00:42:08
предлагаю вам погрузиться немного вглубь
00:42:10
и посмотреть как же в действительности
00:42:12
работает оконное приложение и перед тем
00:42:15
как мы продолжим небольшое объявление
00:42:17
не друзья в это тяжелое время мне и
00:42:20
моему каналу крайне нужна ваша
00:42:23
материальная поддержка если у вас есть
00:42:25
такая возможность то подпишитесь на меня
00:42:28
на сервисе patreon чтобы 1 месяц
00:42:31
жертвовать некоторую сумму денег на
00:42:33
развитие канала также вы можете за
00:42:36
донатить не через сервис данный шин
00:42:38
alerts ссылки будут в описании выражая
00:42:41
благодарность тем кто уже подписан на
00:42:43
мой patreon
00:42:44
а также под донатерам со стримов стоп вы
00:42:47
не знаете о том что я провожу стримы
00:42:48
тогда обязательно подписывайтесь на мой
00:42:51
telegram канал чтобы не пропустить новые
00:42:53
когда вы редактируете форму в дизайнере
00:42:56
в действительности редактируете нативное
00:42:58
окно операционной системы уложите в это
00:43:01
окно нативные control и операционной
00:43:03
системы при сохранении же форма за счет
00:43:06
мощного механизма
00:43:08
rt той или рефлексе все реализуется в
00:43:11
текстовой вид вы можете посмотреть
00:43:14
текстовое представление формы кликнув по
00:43:16
ней левой кнопкой мыши и выбрав пункт
00:43:18
показать
00:43:19
исходный текст текстовой формат хранения
00:43:22
форм чем-то напоминает популярной нынче
00:43:25
формат джейсон хотя появился намного
00:43:27
раньше этот формат с расширением эльфам
00:43:30
лоза руси
00:43:31
или dfm в delphi тоже имеет древовидную
00:43:34
структуру как вы можете видеть у нас
00:43:37
есть корневой объект в данном случае это
00:43:39
наша формы в котором находятся
00:43:42
компоненты которые мы расположили на
00:43:44
этой форме все свойства которые мы
00:43:46
отредактировали у этих компонентов
00:43:48
отражены в текстовом виде
00:43:50
в принципе нам никто не может запретить
00:43:53
редактировать форму не в дизайне рио в
00:43:55
текстовом представлении давайте поменяем
00:43:57
заголовок формы заменяем заголовок на
00:44:00
название канала и сохраняем файл теперь
00:44:03
меню вид выбираем переключить форму
00:44:06
модуль и наша форма одессе реализуется с
00:44:08
текстового представления в настоящее
00:44:10
окно как вы видите заголовок
00:44:12
действительно сменился
00:44:14
соответственно формы вашем приложении
00:44:16
хранятся именно в таком текстовом виде а
00:44:19
при старте приложения
00:44:20
либо если мы вручную создаем форму дети
00:44:23
реализуется с текстового вида в
00:44:25
настоящее окно кстати интересный факт
00:44:28
поскольку в плюсах нету полноценной
00:44:30
рефлексе при морг ю т приходится
00:44:32
запускать перед настоящим компилятором
00:44:34
си плюс плюс
00:44:35
свой мог привет компилятор который
00:44:38
имитирует рефлексию это естественно
00:44:40
работает не так хорошо как настоящие
00:44:42
рефлексе и это еще один недостаток си
00:44:44
плюс плюс лично для меня в язык
00:44:47
добавляют все подряд всякие battleship
00:44:49
операторы комплексные числа в стандарты
00:44:52
но не добавляют те вещи которые
00:44:53
разработчикам действительно нужны такие
00:44:55
как например рефлексия или полноценные
00:44:58
модули
00:44:59
еще одним немаловажным знанием является
00:45:02
понимание работы оконных приложений во
00:45:04
всех операционных системах
00:45:06
я думаю вы заметили что в отличие от
00:45:08
консольных приложений где поток
00:45:09
выполнения ваших руках и ваш код
00:45:12
вызывает что-либо в оконных приложениях
00:45:15
lpl владеет потоком выполнения и
00:45:17
вызывает ваш код при наступлении
00:45:19
каких-то событий например нажатии кнопки
00:45:22
давайте откроем главный файл проект и
00:45:25
посмотрим на его структуру как вы можете
00:45:28
видеть сначала мы инициализируем
00:45:30
объект апликэйшен создаем необходимые
00:45:32
формы и наконец запускаем наше
00:45:35
приложение я составил примерную
00:45:37
блок-схему как в действительности это
00:45:39
работает после того как приложение
00:45:41
бронницы zero валось и создал о
00:45:43
необходимые формы подавляющее время она
00:45:46
ничего не делает и лишь ожидает
00:45:48
сообщение от операционной системы
00:45:50
когда пользователь например нажимает на
00:45:53
кнопку и не производит другое действие с
00:45:55
вашим приложением
00:45:56
то операционная система возвращает
00:45:59
библиотеки lpl код этого сообщения
00:46:01
дальше библиотека lpl создает события в
00:46:04
привычном нам виде и вызывает ваш
00:46:07
пользовательский код после того как ваш
00:46:09
код отработал мы возвращаемся главный
00:46:11
цикл и ожидаем нового сообщения от
00:46:14
операционной системы этот цикл будет
00:46:16
выполняться бесконечно пока операционная
00:46:18
система не пошлет вашему приложению
00:46:20
сообщение о необходимости завершить
00:46:22
работу после чего происходит
00:46:24
освобождение ресурсов и завершение
00:46:27
работы приложений
00:46:28
при этом операционной системы очень не
00:46:31
любят когда ваше приложение слишком
00:46:33
долго не получает новые сообщения
00:46:35
после того как буфер сообщений
00:46:37
операционной системы будет заполнен или
00:46:40
пройдет довольно большое время при
00:46:42
котором приложение не обрабатывает новое
00:46:44
сообщение от операционной системы то
00:46:46
операционная система предположит что
00:46:48
приложение просто зависла предлагая
00:46:52
такой вот небольшой дима пример здесь на
00:46:54
форме расположено 2 кнопки кнопка с
00:46:57
надписью slip составляет ваше приложение
00:46:58
заснуть на одну минуту функции slip 2 же
00:47:02
кнопка с надписью тест ничего не делает
00:47:04
и нужно лишь для индикации
00:47:06
давайте запустим наше приложение и по
00:47:09
нажимаем на кнопку test
00:47:10
как вы можете видеть кнопка тест отлично
00:47:13
нажимается также приложение спокойно
00:47:16
меняется размер окна теперь же нажмем на
00:47:18
кнопку которая заставит наше приложение
00:47:20
заснуть на 60 секунд попытаемся изменить
00:47:23
размер окна по нажимать на кнопку test и
00:47:26
даже закрыть наше приложение как вы
00:47:28
можете видеть приложение никак не
00:47:30
реагирует на действия пользователя с
00:47:32
точки зрения пользователя она просто
00:47:34
зависла через какое-то время
00:47:36
операционная система тоже приходит
00:47:38
такому выводу и все что нам остается это
00:47:41
или подождать 60 секунд или
00:47:43
принудительно завершить приложения из
00:47:46
всего этого можно сделать вывод что
00:47:47
обработчики событий вашем приложении
00:47:49
должны как можно скорее завершатся если
00:47:53
же вам необходимо выполнение каких-то
00:47:55
длительных операций то хотя бы меняйте
00:47:57
курсов на песочные часы либо что намного
00:48:00
более правильно делайте отдельный поток
00:48:03
чтобы не блокировать главный поток
00:48:04
вашего приложения но учтите что
00:48:07
графический интерфейс пользователя
00:48:08
исключительно однопоточный и обновлять
00:48:11
его надо из главного потока иначе вы
00:48:13
столкнетесь с неимоверными глюками
00:48:18
приложение которое мы сделали до этого
00:48:20
имеет мягко говоря ужасный интерфейс он
00:48:23
абсолютно не масштабируемый при
00:48:25
изменении размера окна элемент
00:48:27
управления сохраняет свой размер и
00:48:29
позицию и приложение выглядит сломанным
00:48:32
кроме того мы можем абсурдно сильно
00:48:34
уменьшить размер окна но лазарус конечно
00:48:37
же имеет возможность сделать хороший
00:48:39
масштабируемый интерфейс в качестве
00:48:41
примера давайте повторим лоза руси вот
00:48:43
такой вот несложный макет это окно у
00:48:45
которого внизу расположены кнопки отмена
00:48:47
и ok а всю остальную область занимает
00:48:50
многострочный редактор текста я
00:48:52
нарисовал более подробную версию макетов
00:48:54
который указал необходимые отступы а так
00:48:57
же подписал те компоненты которые мы
00:48:59
будем использовать для воспроизведения
00:49:00
этого интерфейса создаем новый проект и
00:49:04
сразу же сохраняем его
00:49:06
и конечно же не забываем переименовать
00:49:08
форму теперь располагаем на форме
00:49:13
компонент ты мимо
00:49:14
это многострочный редактор текста и
00:49:16
панель в которой будут лежать кнопки
00:49:19
переименовываем оба компонента убираем у
00:49:25
панели надпись и отключаем бордюр как вы
00:49:29
видите панель стала невидимой свойства
00:49:32
align или выравнивание у панели
00:49:34
устанавливаем в ботом это означает что
00:49:37
панель будет оставаться внизу окна при
00:49:39
этом изменяя свою ширину под размер
00:49:41
этого окна высота же будет оставаться
00:49:43
неизменной а свойства align у компонента
00:49:46
мимо установим в клиент что составит
00:49:48
компонент расширится на весь доступный
00:49:50
размер этих действий достаточно чтобы
00:49:53
редактор текста и панель начали
00:49:55
масштабироваться под размер окна теперь
00:49:57
откроем редактор привязать компонента
00:49:59
мимо сделать это можно кликнув правой
00:50:01
кнопкой мыши по нему и выбрав во
00:50:03
всплывающем меню редактор привязок
00:50:06
установим отступы в соответствии с
00:50:08
макетом это отступ и сверху слева и
00:50:10
справа в шесть пикселей
00:50:12
изменения сразу же вступили в силу в
00:50:14
дизайнере теперь на панель положим две
00:50:17
кнопки и коне
00:50:19
же дадим им адекватные имена откроем
00:50:24
редактор привязок кнопке ok
00:50:27
поскольку кнопка будет располагаться с
00:50:29
правой стороны отключим левую привязку в
00:50:33
качестве соседа для верхней привязки
00:50:35
установлен панель на которой лежит
00:50:36
кнопка и установим выравнивание по
00:50:39
центру таким образом кнопка будет
00:50:40
располагаться в середине по вертикали
00:50:42
теперь включим правую привязку выберем
00:50:45
привязку справа в качестве соседа тоже
00:50:48
выберем панель как вы видите кнопка
00:50:50
теперь находится посередине по вертикали
00:50:52
и привязана к правой стороне панели
00:50:56
проделаем то же самое и для кнопки
00:50:58
отмена с одним лишь отличием в качестве
00:51:01
соседа для правой привязки будет кнопка
00:51:03
ok
00:51:04
а привязка будет к левой стороне этой
00:51:06
кнопки чтобы компоненты расположены на
00:51:10
панели имели некое расстояние между друг
00:51:12
другом воспользуемся свойством child
00:51:14
сайзинг и его под свойствам горизонталь
00:51:16
spacing установим of 4
00:51:18
в соответствии с макетом как вы видите
00:51:21
между кнопками теперь есть расстояние но
00:51:24
для того чтобы кнопка ok не прилипала к
00:51:26
левой стороне панели воспользуемся
00:51:28
свойством бордюру виз установим его в 6
00:51:31
как на макете
00:51:32
осталось подобрать подходящую высоту
00:51:34
панели давайте запустим это приложение
00:51:38
как вы видите интерфейс приложения
00:51:40
корректно масштабируется под изменение
00:51:42
окна
00:51:44
правда мы все еще можем уменьшить размер
00:51:46
окна да не разумных пределов за
00:51:49
ограничения размера формы отвечает
00:51:52
свойства constraints
00:51:53
давайте установим минимальную высоту в
00:51:55
200 а минимально ширинов 3 ст а также
00:51:58
для того чтобы высота панели
00:52:00
подстраивались под размер кнопок
00:52:01
который может быть разный у разных
00:52:03
операционных системах установим свойства
00:52:06
авто says панели в true
00:52:07
теперь вручную изменить высоту панели
00:52:10
нельзя но она идеально подходит к
00:52:12
размеру кнопок ну и последнее что мы
00:52:15
сделаем это поменяем заголовки у
00:52:17
компонентов чтобы они полностью
00:52:19
соответствовали заголовком в макете
00:52:21
запускаем приложение еще раз и как вы
00:52:25
видите мы не можем уменьшить размер окна
00:52:27
меньше того что установили
00:52:29
мы получили нативное приложение с
00:52:32
нативным интерфейсом в котором работают
00:52:34
все фишечки
00:52:35
операционной системы например в случае
00:52:38
макоси это возможность изменить регистр
00:52:40
всех выделенных символов сравните это с
00:52:44
приложением написанным накид и в котором
00:52:46
интерфейс отрисовывается самостоятельно
00:52:48
и конечно же нет всех фишек операционной
00:52:51
системы я скопировал этот проект на
00:52:54
windows запустил его и как вы можете
00:52:56
видеть и под windows мы получаем
00:52:58
красивый нативный интерфейс не буду
00:53:01
обделять вниманием и операционную
00:53:03
систему linux в данном случае это
00:53:05
манджари linux в которой наше приложение
00:53:07
тоже адекватно выглядит отладка является
00:53:12
важной частью разработки любого
00:53:14
приложения и сейчас я немного расскажу
00:53:16
об отладке глаза руси
00:53:19
лазарус для отладки приложений
00:53:21
используют отладчик gdb я думаю что вы с
00:53:24
ним уже сталкивались
00:53:26
я написал у такой вот не сложный код
00:53:28
который при нажатии на кнопку в цикле
00:53:31
добавляет строчку цифры от 0 до 9 а
00:53:34
затем выводит сообщение с получившийся
00:53:37
строкой и перед отладкой приложения
00:53:40
давайте в параметрах и дае убедимся что
00:53:42
установлены необходимые настройки а
00:53:45
именно надо чтобы стояла галочка
00:53:46
сбрасывать отладчик после каждого
00:53:48
запуска также чтобы отладчик корректно
00:53:51
работал в параметрах проекта уровень
00:53:53
оптимизации должен быть установлен в
00:53:55
минимальный уровень
00:53:57
установим точку останова на сороковую
00:54:00
строку это тело цикла и запустим проект
00:54:04
нажимаем на кнопку и как вы можете
00:54:07
видеть в lazarus приостановил выполнение
00:54:09
кода на точки останова можно навести
00:54:12
курсор на переменную и посмотреть что в
00:54:15
ней сейчас хранится а с помощью
00:54:17
соответствующих кнопок производить
00:54:19
пошаговую отладку ваших программ мы
00:54:21
прошли несколько шагов и можем еще раз
00:54:23
посмотреть на значение переменных
00:54:25
они изменились также вы можете открыть
00:54:28
дополнительное окно отладки например
00:54:31
окно локальных переменных
00:54:32
теперь при дальнейшее отладки можно
00:54:34
постоянно видеть значения которые
00:54:36
хранятся в этих переменных
00:54:37
под всеми остальными операционными
00:54:39
системами кроме os x
00:54:41
а платка выглядит точно так же а вот
00:54:44
свой секс все сложнее дело в том что
00:54:46
apple сделала все чтобы отладчик gdb
00:54:49
перестал нормально работать на этой
00:54:51
операционной системе есть целые треды
00:54:54
на некоторых сайтах как починить
00:54:55
отладчик gdb так как отладчик gdb
00:54:58
используется в куче различных сред
00:55:00
разработки но честно говоря у меня
00:55:03
починить gdb под os x так и не вышла
00:55:05
команда лазарус и freepascal видя эту
00:55:08
проблему
00:55:09
добавила поддержку отладчика л л д б
00:55:11
которая находится в альфа режиме
00:55:14
отладчик сейчас работает не очень
00:55:16
стабильно но это лучше чем ничего в
00:55:19
параметрах и т.е. надо убедиться что
00:55:20
действительно стоит этот отладчик
00:55:23
давайте запустим то же самое приложение
00:55:26
и установим точку останова
00:55:29
теперь нажимаем на кнопку и при
00:55:32
наведении на переменную мы не видим ее
00:55:34
значение отладчик вылетает тем не менее
00:55:38
окно локальных переменных вполне рабочие
00:55:41
кроме того никто не отменял отладку с
00:55:44
помощью выводов терминал
00:55:46
ну и последняя расскажу как сделать
00:55:49
финальный билд у вашего приложения в
00:55:52
свое время лазарус очень сильно ругали
00:55:54
за размер получающегося приложения хотя
00:55:57
сейчас 2020 году все это выглядит смешно
00:56:00
в мире где приложение сделанные на
00:56:02
электроне весят сотни мегабайт как вы
00:56:06
видите наше приложение весит целых 20 4
00:56:09
мегабайта так как содержит отладочную
00:56:12
информацию давайте уменьшим размер
00:56:14
приложения зайдем настройки нашего
00:56:17
проекта и создадим новый режим сборки он
00:56:22
сразу же становится активным режимом
00:56:24
давайте назовем его релиз в этом режиме
00:56:28
отключим генерацию отладочной информации
00:56:31
и включим уровень оптимизации 3 и если
00:56:35
размер очень сильно важен то можно
00:56:37
установить галочку приоритет размера над
00:56:40
скоростью убеждаемся что конфигурация у
00:56:43
нас сейчас действительно стоит релиз и
00:56:45
запускаем приложение теперь посмотрим на
00:56:48
размер получившегося exe-файла как вы
00:56:51
можете видеть размер приложения теперь
00:56:53
всего лишь 3 мегабайта и это приложение
00:56:56
не зависит от каких-либо дополнительных
00:56:58
библиотек вы спокойно можете поделиться им с
00:57:01
вашими друзьями и она будет работать
00:57:03
практически на каждой системе начиная с
00:57:05
windows 7 под linux в общем-то все то же
00:57:08
самое лазарус пытается сделать
00:57:10
максимально независимые от окружения
00:57:12
бинарники я попросил нескольких друзей
00:57:15
протестировать это приложение и она
00:57:17
отлично заработало на убунте
00:57:20
номан жара linux стайла вaм оконным
00:57:23
менеджером и даже на chrome os от google
00:57:26
на операционной системе от apple
00:57:29
приложение принято распространять в
00:57:31
апликэйшен бандл поэтому давайте зайдем
00:57:34
в параметры проекта
00:57:35
откроем вкладку приложение и нажмем на
00:57:38
кнопку создать
00:57:39
апликэйшен бандл компилируем приложение
00:57:42
и как мы видим у нас есть два файла
00:57:44
непосредственно
00:57:45
исполняемый файл и апликэйшен в
00:57:48
был при этом по умолчанию в апликэйшен
00:57:50
винду находится символьная ссылка на
00:57:53
исполняемый файл для того чтобы
00:57:55
разместить
00:57:56
исполняемый файл непосредственно внутри
00:57:58
надо скопировать апликэйшен бэнду в
00:58:00
отдельную папку открыть его с помощью
00:58:02
опции показать содержание пакета открыть
00:58:05
папку mac os и заменить символьную
00:58:08
ссылку непосредственно на исполняемый
00:58:10
файл вот и все мы получили готовые к
00:58:13
распространению приложения под
00:58:15
операционную систему ios
00:58:17
x вот и подошел к концу этот ролик
00:58:21
спасибо что досмотрели его до конца все
00:58:24
проекты которые я показывал в этом
00:58:26
ролике я конечно же выложу на свой бит
00:58:28
хоп и оставлю в описании ссылку если вы
00:58:31
впервые на моем канале то обязательно
00:58:33
подписывайтесь на него здесь будет еще
00:58:35
много всего интересного и не забывайте
00:58:37
нажимать на колокольчик
00:58:39
вставьте этому ролику лайки делайте
00:58:41
репост этого ролика у себя в соцсетях
00:58:43
пишите комментарии кстати кодовое слово
00:58:46
этого ролика паскаль напишите
00:58:48
комментарий который содержит это слово
00:58:50
ведь именно так и узнаю что вы
00:58:52
досмотрели этот ролик до конца и конечно
00:58:55
же не забывайте что мне и моему каналу
00:58:58
крайне нужна ваша материальная поддержка
00:59:01
если у вас есть такая возможность то
00:59:03
подпишитесь на мой patreon чтобы 1 месяц
00:59:06
жертвовать каналу какую-то сумму или за
00:59:09
донатти через сервис данный шин alerts
00:59:11
ссылки будут в описании а с вами как
00:59:14
всегда был потоп всего удачи пока
00:59:21
[музыка]

Описание:

✅ Донат: https://www.donationalerts.com/r/crazzzypeter ✅ Patreon (помощь раз в месяц): https://www.patreon.com/crazzzypeter В этом видео я расскажу о настоящей кроссплатформенной разработке с использованием среды Lazarus и языка ObjectPascal. Я советую посмотреть этот ролик всем, вне зависимости от того любите вы этот язык или нет. Я вас уверяю - вы можете найти для себя данную среду действительно крайне полезной. Кроме того мои дальнейшие ролики о программировании будут строиться на этом видео. Также в этом ролике я отвечу на вопросы: - Паскаль мертв? - Паскаль жив? - Что не так с C++? (на мой взгляд) - Что происходит с Qt? - Что происходит с GTK+? ⚫ Проекты из этого видео: https://github.com/turborium/ProgrammingWithLazarus ⚫ Книги по Lazarus: Современный паскаль: https://castle-engine.io/modern_pascal_introduction_russian.pdf Официальные руководства, на русском: http://www.lazarus-doc.h1n.ru/ Книга от Alt Linux: https://docs.altlinux.org/books/freepascal.pdf Экспресс курс программирования в Lazarus: http://popovevgeniy.000webhostapp.com/download/technical/Lazarus.zip Книга про FPC: http://oleg.derevenets.com/Files/Songs/Pesni_o_Paskale_12-11_2018-02-09.pdf Основы программирования в среде Lazarus: http://www.freepascal.ru/download/book/lazarus_osnovy/osnovy_programmirovanija_v_srede_lazarus.pdf ⚫ Пособия по работе с Lazarus: Введение для новичков в Lazarus и Pascal: https://wiki.freepascal.org/Basic_Pascal_Introduction/ru Еще одно введение: https://wiki.freepascal.org/Lazarus_Tutorial/ru Инструкция по установке: https://wiki.freepascal.org/Installing_Lazarus/ru ⚫ Курсы по Pascal: Бесплатный курс от Intuit: https://intuit.ru/studies/courses/13745/1221/info Бесплатный курс от Intuit (основы Pascal): https://intuit.ru/studies/courses/41/41/info Программирование на Lazarus (Intuit): http://intuit.valrkl.ru/course-1265/ Бесплатный курс Stepik про PascalABC.net: https://stepik.org/course/3352/promo Курс от udemy(Англ.): https://www.udemy.com/course/learn-to-program-with-pascal/ Курс от udemy(Англ.): https://www.udemy.com/topic/pascal-programming-language/ Графика в PascalABC: http://staff.mmcs.sfedu.ru/~ulysses/Edu/CS101/PABC_Graph.pdf ⚫ Тебе понравился или нет ролик? - Напиши, что именно в комментариях. ⚫ Темы, затрагиваемые в этом ролике: Программирование, Паскаль, Pascal, Delphi, Lazarus, Windows, Linux, OSX, Разработка, Программирование для начинающих, GUI, Окна, Компоненты, Интерфейс, UI, Нативный код, Компилятор, Отладка, Релиз, Окно, ОС.

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Кроссплатформенная разработка с Lazarus/ObjectPascal/Delphi. Программирование #ityoutubersru"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Кроссплатформенная разработка с Lazarus/ObjectPascal/Delphi. Программирование #ityoutubersru" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Кроссплатформенная разработка с Lazarus/ObjectPascal/Delphi. Программирование #ityoutubersru"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "Кроссплатформенная разработка с Lazarus/ObjectPascal/Delphi. Программирование #ityoutubersru" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Кроссплатформенная разработка с Lazarus/ObjectPascal/Delphi. Программирование #ityoutubersru"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Кроссплатформенная разработка с Lazarus/ObjectPascal/Delphi. Программирование #ityoutubersru"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.