Pascal code вк
Pascal code вк
Коды клавиш Delphi
Таблица кодов клавиш, которыми можно пользоваться при проверке параметра Key в обработчиках событий OnKeyDown и OnKeyUp :
Клавиша
Дес.
число
Шест.
число
Символическое
имя
Сравнение по
функции ord
Правая клавиатура при выключенной клавише NumLock:
NukDotCom-Team/vkapi-pascalabc
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
This is VK.API wrapper for PascalABC.NET
About
VKAPI Library for PascalABC.NET
Topics
Resources
License
Stars
Watchers
Forks
Releases
Packages 0
Contributors 2
Languages
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Полезные коды для PascalABC.NET
В этой теме размещаются полезные исходники программ, различные процедуры и функции, а так же готовые решения на часто задаваемые вопросы, написанные на PascalABC.NET.
Поддержать тему и добавить свои примеры, исходники и пр. может каждый, после того, как ознакомиться с правилами темы:
Модуль для PascalABC.NET
Здравствуйте уважаемые форумчане, возник вопрос почему не работает модуль. Вот модуль unit.
Персонаж для игры на PascalABC.NET
Здравствуйте. Я программирую игру на PascalABC.NET и я столкнулся с такой проблемой. Смысл игры в.
Редактор форм для PascalABC.NET
Существуют ли редакторы форм для PascalABC.NET, а то в PascalABC был свой. Добавлено через 41.
Есть ли PascalABC.NET для Mac OS X?
Есть ли PascalABC.NET для Mac OS X?
Далее пишем коротенькую процедуру, которая будет отвечать за «отпускание» кнопки:
Думаю тут всё понятно)
Последний шаг делаем событие по движению мыши:
Тут тоже вроде всё ясно, единственная сложность с «движением относительно курсора», но тут легче понять чем объяснить.
Вывод виртуального кода клавиши
Написать процедуру вывода на экран кода нажатой клавиши,
вызвать ее с использованием процедурной константы onkeyDown
и записать коды клавиш управления курсором.
Вывод кода нажатой клавиши
Доброе время суток. Прошу помочь с программой которая выводит код нажатой клавиши. Вот код.
Вывод ASCII кода нажатой клавиши в шестнадцатиричной системе счисления
Помогите пожалуйста. Необходима программа,которая способна обрабатывать события поступающие с.
Напишите фрагмент кода для определения кода нажатой клавиши (расширенного кода в том числе)
Напишите фрагмент кода для определения кода нажатой клавиши (расширенного кода в том числе).
Получение виртуального кода клавиши из строки
Все доброго времени суток. Помогите разобраться. У события OnKeyDown есть параметр WORD &Key.
Решение
Добавлено через 7 минут
Такой вопрос еще есть, каким образом можно переписать программу, чтобы она выдавала виртуальный код не только при нажатии стрелок, но вообще при нажатии любой клавиши?
Вывод scan кода и ascii кода нажатой клавиши
Подскажите пожалуйста, как реализовать вывод scan кода и ascii кода нажатой клавиши в ассемблерной.
Вывод скан-кода нажатой клавиши
Здравствуйте, мне надо вывести скан-код нажатой клавиши на экран, с помощью функции (или что это.
Вывод кода клавиши из буфера клавиатуры
Добрый вечер. Преподаватель дал задание написать курсовую. «Напишите программу обработки прерывания.
Ввод кода нажатой клавиши и вывод информации на индикацию
Здравствуйте,помогите пожалуйста написать программу: ввод кода нажатой клавиши и вывод информации.
Конвертирование кода клавиши в символ
Вообщем нужны советы, чтобы не использовать длинный кусок значений клавиш типо: private void.
Pascal code вк
Copy raw contents
Copy raw contents
What’s new in Pascal 9.5
Pascal is an open source extension created for Visual Studio Code. While being free and open source, if you find it useful, please consider supporting it
It adds support for the Pascal language and its dialects like Delphi and FreePascal.
Here are some of the features that Pascal provides:
Coding with style
Pascal supports full syntax highlighting for Delphi and FreePascal
Almost 40 snippets are available
Check out Pascal Formatter documentation.
Navigate to any language element (methods, attributes, classes, interfaces, and so on) inside Pascal files. It supports native VS Code commands like:
It uses GNU Global, a source code tagging system, which means that it has some limitations if you compare with an AST parsing.
Installing and Configuring GNU Global
Let’s say you extract GNU Global and CTags in C:\gnu folder. The two new entries in %PATH% should be:
Also make sure Python is in %PATH%
GNU Global uses CTags + Python Pygments as plugin in order to recognizes Pascal source code, so you have to configure them.
NOTE: For now, it was tested only on Windows, but since these tools are multiplatform (in fact, it comes from Unix), it should work on Linux and Mac.
To enable Code Navigation, the extension depends on GNU Global and Exuberant Tags and for that, you must run gtags on the Root folder, so the tags are created. In order to make life easier, two commands where added:
Controls how the code navigation should work. Specially useful if you work with huge projects
For huge projects, its recommended to use:
Use this Task Examples, so you can:
If you want to build tasks (Task: Run Task Build) you can use the snippets below.
Update two tags:
Update two tags:
Субреддит pascal достиг тысячи подписчиков, а для Visual Studio Code появилось расширение с поддержкой Паскаля
какой только херни не придумают.
А Паскаль и Visual Studio Code не смутили?
кому нужен этот паскаль?
если кто то сейчас скажет о том что с него стоит начинать обучение программированию то для совсем начинающих лучше брать скретч.
Зачем ты это написал?
потому что я так думаю я в этом уверен искренне
забивать голову такой фигней как паскаль я не стану и никому не рекомендую.
Паскаль нужен всем, кто находят его хорошим и полезным языком.
Напоминаю, что это язык уровня Си, а не, якобы, Фокала.
Я про первый полуриторический вопрос. saahriktu ты не переубедишь ни в чём и никогда.
и что такие есть странно
Как раз таки нет. Всё, что можно написать на Си, можно написать и на Паскале. Только код на Паскале может получиться короче и красивее. Появилась статья «Как основы программирования Паскаль помогут стать высокооплачиваемым программистом» (комментарий)
я и си толком не знаю но считаю это недостатком
языки которые мне нужны python php js java haxe чем дальше тем меньше они мне нужны
Лучше дочь паскалистка чем сын жабаскриптер
жабаскрипт я не люблю но вынужден использовать
Я про вот такое:
Ну, а смысл в этом всём?
Впрочем, никто не заставляет её использовать, но тогда проще сразу целиком писать на ассемблере, чем делать софтину ассемблерной вставкой в обёртку на Паскале.
Всё, что можно написать на Си, можно написать и на Паскале.
На паскаль «подписаны» миллионы школьников, а вы про какую-то тысячу на каком-то огороженном сайте в сети.
А на сабреддит таки подписаны те, кому Паскаль нравится. В т.ч. и те, кто пишут на нём полезный софт.
Это самое важное.
Это уже особенности компиляторов.
С другой стороны, это всё какие-то редкие случаи, когда кроме syscall’ов от софтин ничего и не нужно. Но при этом кому-то нужно экономить вес бинарников. И это несмотря на аппетиты того же Go.
то уже особенности компиляторов.
Если вспомнить, что речь про POSIX, то то, что так ведут себя и GCC и Clang, приближает количество практически используемых компиляторов, у которых такая особенность, к 100%.
Хотя, тут это работа не компилятора, а компоновщика, но ну да без разницы.
И это несмотря на аппетиты того же Go.
Но причём тут Go?
Ну так по инструкциям Паскаль, действительно, один из самых шустрых языков.
А Go при том, что его бинарники весят мегабайты. Ибо статические и в них вкомпиливается весь рантайм. И это один из последних именно компилируемых, а не скриптовых, языков.
Бинарники Паскаля гораздо худее. Но кому-то это в век гигабайтов и терабайтов, видите ли, много.
Ну так по инструкциям Паскаль, действительно, один из самых шустрых языков.
Не во всём и не всегда. Но я тут акцентирую внимание не на шустрость, а на гибкость. «Уровень Си», о котором ты говоришь, это возможность изогнуться как Си, и… ну не может он.
И это один из последних именно компилируемых, а не скриптовых, языков.
Из более последних: Zig, Rust.
Ты бы ещё с Crystal сравнивал.
Бинарники Паскаля гораздо худее.
А программисты на Go сравнивают оверхэд с Java.
гггг а я то думал python
а дельфи я юзал не все понравилось особенно этот раритет :=
Да ты шо, это же киллерфича, чтобы = и == не реально было перепутать.
не помню чтоб когда либо путал присваивание и условие.
Лучше дочь паскалистка чем сын жабаскриптер
Ты точно больной. Нормальный человек дал бы ссылку на расширение в магазине расширений: https://marketplace.visualstudio.com/items?itemName=alefragnani.pascal
и кстати я сам создавал эти мля библиотеки динамической компоновки dll вот это фича это было на vb6 еще.
питон гумно, начинай писать что-то сложней хеловорлдов, тебя ждет множество чудных открытий и это несмотря на кучу костылей написанных к нему
единственная причина по которой питон тащат дальше скрипоты, это возможность быстрого прототипирования, с кучей оговорок конечно
написал множество сложных программ я бы те показал на своем сайте но не хочу палиться
ну вот, как всегда, привет неуловимым джо (:
я все еще жду getch в стандартной либе, судя по рассылке этого не будет никогда, наш вождь так сказал. гыгыгы
дай почту кину ссылку
нафига? ты хочешь меня уговорить? то бишь инфа всеж публичная? тогда я не вижу причин скрываться
я не сильно зеленый, троллить не буду, спи спокойно
имя не публичное не хочу светить
Всем заслуженным преподавателям дисциплины «Программирование ПО для ЭВМ» в очередном *ТГУ а также студентам, которые будут учиться современным технологиям в этом университете и потом пойдут искать работу, указав в резюме владение Delphi и Turbo Pascal.
я тут акцентирую внимание не на шустрость, а на гибкость. «Уровень Си», о котором ты говоришь, это возможность изогнуться как Си, и… ну не может он.
Возможно. Но не всем и не всегда это нужно. Я же акцентировал внимание не на конкретных реализациях, а на конкретном функционале софта, что может делать софт. Т.е. я писал, что на Паскале можно написать софт, который будет делать тоже самое, что и софт на Си.
Из более последних: Zig, Rust. Ты бы ещё с Crystal сравнивал.
На этих языках консольные утилиты и редакторы не пишут. А тот же https://github.com/cli/cli/ пишут на Go. И вес бинарника никого не смущает.
Я этой IDE не пользуюсь и ни про какие магазины расширений не знаю. Потому перепостил ту ссылку, которую сам автор расширения выложил на реддит.
А так бы мог написать, что число установок расширения превысило 90 тыс!
И что значит «появилось»? Ему больше 4 лет уже.
И что значит «появилось»? Ему больше 4 лет уже.
По магазину это видно, да. По репозиторию на github’е это не очевидно, а сам автор выложил ссылку на github как новость. В то время как субреддит существует с 2009-го года.
Как раз это видно по репозиторию, там коммиты ещё от 2015 года.
Змейка на паскале код
Задача
Используя модуль graph или ctr языка программирования Паскаль написать программу «Змейка».
Решение
Змейка — это игра, в которой по экрану движется полоска, изменяющая свое направление при нажатии клавиш вверх, вниз, влево и вправо. Цель игры, управляя движением змейки, не столкнуться с бордюром, «врагами», собрать «бонусы». При столкновении с последними длина змейки увеличивается.
Написать полную версию игры на любом языке программирования, в том числе Паскаль, — достаточно сложная задача для начинающих. Можно остановиться на варианте, когда по экрану движется полоска, управляемая клавиатурой.
Ниже представлен вариант кода, при выполнении которого по экрану перемещается курсор, управляемый нажатием клавиш d, a, w, s. Игра заканчивается, как только его позиция выходит за края дозволенной области, которая указана в заголовке цикла while.
Новый блог по адресу Блог об ИТ и программировании на русском. Если вы хотите, чтобы я обновил, какие-либо статьи, пожалуйста напишите мне на email.
Игра Змейка — текстовая реализация на языке Pascal
Дальше текст программы
Комментарии к этой программе, такие же, как и к предыдущей.
Конечно интереснее, если сделать графическое отображение, например через модуль graph, но текстовое исполнение, добавляет немного романтики времени MS-DOS.
Эта статья написана в Вторник, Январь 19th, 2010 at 18:54 в разделе Задачи программирования. Вы можете подписаться на обновления комментариев к статье — RSS 2.0. Вы можете оставить комментарий, или послать пинг со своего сайта.
12 комментария
хм, а я круче написал! с зашибенным интерфейсом!
Привет, давай свяжемся с тобой во Вконтакте?
https://m.vk.com/id445385155
kak zapustit i kakaimi klaviwami igrat’.
Free Pascal выдает ошибку на строке
пардон, не туда запостил, сорри )))))
Здравствуйте.
У меня возник вопрос: что означают e.x, e.y, snakebody[i].x, snakebody[i].y?
как играется это игра? вообще не играется, запускаю но ваша змейка не двигается
В самом конце программы в срочке» Delay(30000);» уменьши значение хотябы до 100, чем меньше сделаешь тем быстрее она будет двигаться. И ещё при запуске проверь что стоит английская раскладка, на русской не работает. Управление на (W,A,S,D).
type
TDirection = (None, Left, Right, Up, Down);
var x,t,y,i,z,xr,yr,prin1,prin2,prin3,prin4,prin5,k,s4et,prin6: integer;
Direction :TDirection;
xs,ys,bufx,bufy:array[1..200]of integer;
procedure shar3;
begin
SetBrushColor(clYellow);
circle(xs[k],ys[k],r);
end;
procedure Circl;
begin
SetBrushColor(clBlack);
circle(x,y,r);
end;
procedure rshar ;
begin
xr:=Random(WindowWidth) ;
yr:=Random( WindowHeight);
end;
procedure rshar2;
begin
SetBrushColor(clYellow);
circle(xr,yr,r);
end;
procedure XP(Key:integer);
begin
case Key of
VK_Left: Direction := Left ;
VK_Right:Direction := Right ;
VK_UP: Direction := UP ;
VK_Down: Direction :=Down ;
end;
circle(x,y,r);
end;
procedure pause;
begin
for i:=1 to 1 do
begin
Circl;
rshar2;
ClearWindow;
rshar2 ;
prin1:=(xr-x+r)*(xr-x+r)+(yr-y)*(yr-y) ;
prin2:=(xr-x-r)*(xr-x-r)+(yr-y)*(yr-y) ;
prin3:=(xr-x)*(xr-x)+(yr-y+r)*(yr-y+r) ;
prin4:=(xr-x)*(xr-x)+(yr-y-r)*(yr-y-r) ;
prin5:=R*R;
if (prin1) =WindowW > Down: begin y:=y+d; if y>=WindowHeight then y:=0 end;
end;
xs[1]:=x;
ys[1]:=y;
for k:=1 to s4et do
begin
bufx[k]:=xs[k];
bufy[k]:=ys[k];
end;
for k:=1 to s4et do
begin
xs[k+1]:=bufx[k];
ys[k+1]:=bufy[k] ;
end;
for k:=2 to s4et do
shar3;
Circl;
end;
end;
begin
rshar;
s4et:=2;
alefragnani/vscode-language-pascal
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
What’s new in Pascal 9.5
Pascal is an open source extension created for Visual Studio Code. While being free and open source, if you find it useful, please consider supporting it
It adds support for the Pascal language and its dialects like Delphi and FreePascal.
Here are some of the features that Pascal provides:
Coding with style
Pascal supports full syntax highlighting for Delphi and FreePascal
Almost 40 snippets are available
Check out Pascal Formatter documentation.
Navigate to any language element (methods, attributes, classes, interfaces, and so on) inside Pascal files. It supports native VS Code commands like:
It uses GNU Global, a source code tagging system, which means that it has some limitations if you compare with an AST parsing.
Installing and Configuring GNU Global
Let’s say you extract GNU Global and CTags in C:\gnu folder. The two new entries in %PATH% should be:
Also make sure Python is in %PATH%
GNU Global uses CTags + Python Pygments as plugin in order to recognizes Pascal source code, so you have to configure them.
NOTE: For now, it was tested only on Windows, but since these tools are multiplatform (in fact, it comes from Unix), it should work on Linux and Mac.
To enable Code Navigation, the extension depends on GNU Global and Exuberant Tags and for that, you must run gtags on the Root folder, so the tags are created. In order to make life easier, two commands where added:
Controls how the code navigation should work. Specially useful if you work with huge projects
For huge projects, its recommended to use:
Use this Task Examples, so you can:
If you want to build tasks (Task: Run Task Build) you can use the snippets below.
Update two tags:
Update two tags:
Free Pascal in Visual Studio Code
This article is about setting up things so that you can code, compile and debug Free Pascal from Visual Studio Code.
This can be useful if you’re doing non-GUI work and you don’t want to rely on the full-blown Lazarus IDE. It also allows Windows users to write and test Linux programs using the WSL, which is what I did to test this setup. Note that similar steps can be used to configure VS Code for Pascal on a Mac if that’s your poison. At the very least, this is one more tool at your disposal when working with a legacy codebase.
Special credit goes to Mr Bee from the Pascal Indonesia group, whose article was the basis for mine.
Install Free Pascal
Windows
On Windows, you can download and install Free Pascal directly from the website. Note that there is no native Windows 64-bit compiler for the latest version— you’ll need the native 32-bit compiler as well as the 64-bit cross-compiler. The source can be downloaded from a separate link.
Linux
Bonus: Installing WSL
This is a bit of an aside, but if you want to run Ubuntu the way I did, this Microsoft article does a pretty good job of explaining the steps for activating the WSL. I used the Manual Installation Steps because I didn’t want to join the Windows Insiders Program.
The first time you do this, the VS Code Server will be installed. After that, it will launch VS Code in the context of your Linux subsystem.
Install VS Code extensions
OmniPascal
This VS Code extension brings Object Pascal support to VS Code, including code completion, outlining, etc.
EvilCoder
Просто об IT изнутри
VK API. Авторизация для сайта
Для того, чтобы не писать сильно большую статью я сократил код лишь до необходимого минимума. Т.е. никаких проверок, мощных фильтров на ошибки и прочего. Только то, что непосредственно необходимо для авторизации, для понимания происходящего. Так же, статья рассчитана, что вы обладаете хотя-бы базовыми знаниями PHP и HTML. Подробно будут описаны только функции и приёмы которые очень редко встречаются.
Всё просто. Ставим тычинку напротив веб-сайта и заполняем инфу.
Да, серьёзно, локальные хосты (localhost) тоже можно указывать и они работают вполне исправно.
После создания, всё что необходимо, это открыть настройки приложения и скопировать id приложения и защищенный ключ куда-нибудь. Вскоре они нам понадобятся.
Всё. Этот файл более нам не понадобится.
METHOD_NAME – название метода из списка функций API,
PARAMETERS – параметры соответствующего метода API,
ACCESS_TOKEN – ключ доступа, полученный в результате успешной авторизации приложения.
(с) Из официальной документации[/spoiler]
Функция file_get_contents здесь используется для того, чтобы получить ответ от GET в php без перезагрузки страницы. Сразу в переменную. Удобно.
Функция json_decode позволяет декодировать JSON-строки.
[spoiler title=’Немного о JSON. Для справки.’]JSON-строки выглядят примерно вот так:
В переменную fields можно добавить ещё другие вещи, которые позволяет использовать данный метод. С именем и фамилией можно получить так же аватарку, онлайн, город, пол и многое другое.
Подробнее про метод users.get : https://vk.com/dev/users.get
Подробнее про параметр fields : https://vk.com/dev/fields
How can I compile and run my Pascal code in VS code?
Is there a way I can modify tasks.json and keybingings to create shortcuts for compiling the code and running it? After a ton of googling I came up with this. When I press ctrl+shift+b it compiles but command prompt with the program doesn’t pop up.
2 Answers 2
Trending sort
Trending sort is based off of the default sorting method — by highest score — but it boosts votes that have happened recently, helping to surface more up-to-date answers.
It falls back to sorting by highest score if no posts are trending.
Switch to Trending sort
Pascal is stil alive and kicking. What I meant by Pascal is the modern object Pascal programming, not your daddy’s Pascal. I’ve been making many apps for all platforms using (mainly) Free Pascal, with Lazarus IDE (for GUI apps) and VS Code (for non-GUI apps). Modern Pascal can do whatever every other languages out there are able to do. Check out The Big 5 Pascal of Today.
Now… to be able to work use Pascal with VS Code. First, install Free Pascal for sure. Then install the OmniPascal extension. And read my guide Free Pascal and VS Code. I provide many useful tasks in there to help you work with Pascal, including code formatting. It’s in Indonesian but you could use Google Translate to read it in English (or whatever language you like).
alefragnani / vscode-language-pascal Goto Github PK
Pascal language extension for Visual Studio Code
License: MIT License
vscode-language-pascal’s Introduction
What’s new in Pascal 9.5
Pascal is an open source extension created for Visual Studio Code. While being free and open source, if you find it useful, please consider supporting it
It adds support for the Pascal language and its dialects like Delphi and FreePascal.
Here are some of the features that Pascal provides:
Coding with style
Pascal supports full syntax highlighting for Delphi and FreePascal
Almost 40 snippets are available
Check out Pascal Formatter documentation.
Navigate to any language element (methods, attributes, classes, interfaces, and so on) inside Pascal files. It supports native VS Code commands like:
It uses GNU Global, a source code tagging system, which means that it has some limitations if you compare with an AST parsing.
Installing and Configuring GNU Global
Let’s say you extract GNU Global and CTags in C:\gnu folder. The two new entries in %PATH% should be:
Also make sure Python is in %PATH%
GNU Global uses CTags + Python Pygments as plugin in order to recognizes Pascal source code, so you have to configure them.
NOTE: For now, it was tested only on Windows, but since these tools are multiplatform (in fact, it comes from Unix), it should work on Linux and Mac.
To enable Code Navigation, the extension depends on GNU Global and Exuberant Tags and for that, you must run gtags on the Root folder, so the tags are created. In order to make life easier, two commands where added:
Controls how the code navigation should work. Specially useful if you work with huge projects
For huge projects, its recommended to use:
Use this Task Examples, so you can:
If you want to build tasks (Task: Run Task Build) you can use the snippets below.
Update two tags:
Update two tags:
vscode-language-pascal’s People
Contributors
Stargazers
Watchers
Forkers
vscode-language-pascal’s Issues
Migrate from TSLint to ESLint
There should be a way to disable update popup
When the extension updates, it opens a popup to tell you what is new. Most extensions don’t do that. You should either disable the update popup, or add a way to optionally disable it.
Cannot run gtags on Mac OS X
So what causes this problem? Is that about the operating system I used? Is there any way to fix it?
Support VS Code package split
June 2019 (1.36)
Add Linux support to the FreePascal task snippet
Please add this code to tasks.json snippet for FreePascal so it can be used in Linux:
And maybe change «args»: [«YOUR_FREEPASCAL_PROJECT»] to the «args»: [«$
Split Formatter and Snippets in its own extensions
Doing so would make this pieces move alone, with no dependency from the language itself.
Adding syntax highlighting
Hi! Can I define a new syntax highlighting?
Or is there a file in your extension that holds the highlighted syntax?
Keep `until` as `keyword.control` only
It is a normal keyword also today, so it does not highlight as keyword.control
Update Syntax definitions
Better syntax definitions
Build tasks automation
Instead of copy/pasting the same build tasks into tasks.json for every pascal project folder that a user has, have you found any way to automate the process?
For example: A user has a fully functional build script that points to DCC32.exe, is there a way for the extension to automatically create a tasks.json with those parameters to each created pascal project?
Support other Document Symbols (variables, interfaces, classes)
Hello, thanks for the great work first.
Improve code navigation
Let’s create a setting for that.
Add Go to Symbol
read iss files?
I’m using inno setup and I’d love to edit the files in code with fun colors. How do I get your pascal tool to recognize iss files?
gtags: directory » not found
After installing dependencies (GNU Global, ctags, gtags, python and pygments), reloading everything and editing *.pas, I keep getting following error in VSC:
Consequently, I cannot harness extension’s code navigation.
OS: Ubuntu 20.04 (Linux x64 5.4.0-31-generic)
Visual Studio Code: 1.45.1
Security Update
Add Go to Definition
Problems with autocompletion
Some of the auto complete does not work well.
Besides, the snippet of begin. end is bad.
It inserts two position, one between begin end and one after the end keyword.
However, when I type code between begin end, the auto complete function will not work at all. There will be no hint at all.
Also, can you make a option to capitalize the first letter of keywords?
For example, when I type «if» then pressed space, the «if» keyword will become «If»
Lastly, it will be good if the main begin end will be automatically insert the dot instead of a semicolon.
Formatter issues on 0.3.0
Two issues with the initial release:
Enhance Language Features
Increase the support other Programmatic Language Features available in VS Code, which makes IntelliSense experience so great.
Currently, the extension only supports a few set of features:
There are another set of features which would make the coding experience even richer.
Syntax Highlighter: CodeTyphon FileExtension *.ppr
Syntax Highlighter: CodeTyphon FileExtension *.ppr doesn’t work
Debug?
Does debug work with FPC?
Support Extension View Context Menu
January 2020 (1.42)
Remove remaining Format settings (now on Formatter)
Better messages when some error occurs while formatting code
When an error occurs while formatting code, specially when using Jedi Code Format, the message displayed does not say much information. Mostly because the showErrorMessage API only displayes one line.
The «global» command is not available. Make sure it is on PATH
Add Find all References
Remove `vscode` module dependency
Unable to compile project
Hi! I forked you project to make a support for «Component Pascal» aka «BlackBoxComponentBuilder».
Actually I have a syntax highlight working already, but due to its dynamic nature blackbox allows to do interesting things like dynamic completion from RTTI and so on. This is in a far future.
Meanwhile It looks like you forgot to add some files to git, like src/whats-new/* and vscode-whats-new/*
Now trying to disable all references to missing files.
Extension issue
⚠️ We have written the needed data into your clipboard. Please paste! ⚠️
No symbols found
Am I doing something wrong? Is there anything else I can test to determine whether something is wrong with my configuration or is it something with the extension?
Got troubles in configuring
Hey, i got some troubles in configuring the run build task in the tasks.json file, can you please give an example for it, or may be a tutorial video for it? Maybe you could also make the whole installation tutorial if you want to.
Also, i can’t seem to configure debugging for it, any help please?
Thanks
Support VS Code Multi-root Workspaces
Breakpoints totally disabled?
I’m testing Visual Studio Code now (1.21.1 for Mac) and got it working just fine using C++ (debugging, building, breakpoints). Now I’m trying to setup a Pascal project using the extension «Language Pascal» but breakpoints seem to be entirely disabled, i.e. clicking in gutter doesn’t toggle anything, «Debug > Toggle Breakpoint» menu doesn’t work either (nothing is added in the breakpoints pane).
Is this a bug or does the extension have to explicitly opt into breakpoints? Creating a new empty file has breakpoints disabled also so maybe I’m missing something.
Sorry if this is a bad place to ask questions but I didn’t know where else to go. Thanks in advance.
Update grammar based on new features from VSCode 1.9.0
Update README.md to support othere file ext in FreePascal build task snippet
Regex pattern uses «.p» file extension, but the «.pas» is commonly used.
Maybe change or add this extension too?
Support Remote Development
The filename, directory name, or volume label syntax is incorrect.
I created the tasks.json but when i try to Run Task Build I get «The filename, directory name, or volume label syntax is incorrect.»
Is maybe something wrong with my paths?
Problem in Task building and Tags settings
Support Code Completion
Do you plan to add support for completion support in the near future?
Suggest generate tags if not available
If the user asks for language services but the tags were not yet generated.
Полезные коды для PascalABC.NET
В этой теме размещаются полезные исходники программ, различные процедуры и функции, а так же готовые решения на часто задаваемые вопросы, написанные на PascalABC.NET.
Поддержать тему и добавить свои примеры, исходники и пр. может каждый, после того, как ознакомиться с правилами темы:
Модуль для PascalABC.NET
Здравствуйте уважаемые форумчане, возник вопрос почему не работает модуль. Вот модуль unit.
Персонаж для игры на PascalABC.NET
Здравствуйте. Я программирую игру на PascalABC.NET и я столкнулся с такой проблемой. Смысл игры в.
Редактор форм для PascalABC.NET
Существуют ли редакторы форм для PascalABC.NET, а то в PascalABC был свой. Добавлено через 41.
Есть ли PascalABC.NET для Mac OS X?
Есть ли PascalABC.NET для Mac OS X?
В: Как в PascalABC.NET сделать текст с тенью и под углом?
или Как в PascalABC.NET работать с WPF?
В: Как украсить обычное приложение PascalABC.NET с помощью WPF?
или
В: Прочитал про текст с тенью. Как туда добавить простую кнопку. Или мне ради этой тени всю прогу переписывать под какую то WPF? Что за бред?
О: Достаточно вынести код выполнения приложения в отдельный поток STA и с помощью ElementHost вставить элемент управления WPF в свою обычную форму PascalABC.NET (Winforms)
Тогда форма будет поддерживать создание и элементов WPF и стандартных элементов Winforms
STA указывает что функция должна выполняться в основном потоке приложения, и все потоки, которые в ней создаются, например при создании элементов, должны объединяться с основным потоком
Иначе может нарушиться взаимодействие элементов управления друг с другом
Это можно посмотреть создав поток на шарпе и попытавшись обратиться из него к форме или контролам на форме
Но в PascalABC.NET она почему-то не срабатывает-приходится создавать поток, объединяемый с основным потоком с помощью SetApartmentState(ApartamentSt ate.STA), и в нем работать с WPF
Почему это тогда не нужно для Winforms-загадка. Наверно препроцессор сам добавляет STAThread, но очень криво
И есть еще WindowsFormsHost-его кидают на окно WPF для размещения элементов Winforms
По моему опыту особенно остро в WPF не хватает DataGridView
Лучшие библиотеки для работы с VK API на C++, Java, Python и других языках
Работать с API ВКонтакте доводилось многим из нас, и каждый может сказать: работать с ним напрямую неудобно. Разумеется, было написано множество библиотек, предоставляющих удобный интерфейс работы с ним. Их можно и даже нужно использовать для облегчения работы и ускорения разработки. Сегодня tproger представляет подборку библиотек, набравших на GitHub больше всего звездочек и форков, для почти всех самых популярных ныне языков.
Недавно Вконтакте выпустили официальный SDK для работы с API средствами Java. Страница проекта на GitHub содержит множество примеров, вот один из них, для публикации фотографии на странице пользователя:
InTouch — кроссплатформенная библиотека для С#, которая весьма активно развивается. На момент публикации заявлена полная совместимость с версией 5.57 VK API. Вот пример работы с библиотекой:
Или даже короче:
Node.js
Node-vkapi — современная библиотека для JavaScript, основанная на промисах. Она доступна так же в npm:
Вот пример кода, который публикует текст на стену пользователя с помощью node-vkapi:
VK API Lib — небольшая библиотека для работы API, написанная на чистом C++. Из зависимостей требуется только Curl. Библиотека предоставляет базовый класс VK::Client с методами авторизации и выполнения запросов к API.
Python
В настоящее время библиотека достаточно активно развивается, однако до этого в её разработке был перерыв примерно на год. Всегда хочется использовать актуальные инструменты, поэтому стоит упомянуть и другую библиотеку для Python. Вот как выглядит загрузка фотографии на сервер с её помощью (комментарии сохранены):
Библиотека на PHP, использующая, по словам автора, «сахалинские технологии», чтобы облегчить труд разработчика. Написана в ООП-стиле. Одна из самых крутых ее фич — генерация на основе запроса на PHP готового кода для специального метода ВК execute.
Пример просмотра последних 200 сообщений:
vkontakte_api — ruby-адаптер для ВКонтакте API. Он позволяет вызывать методы API, загружать файлы на сервера ВКонтакте, а также поддерживает все 3 доступных способа авторизации (при этом позволяя использовать стороннее решение).
Работать с ним можно, например, так:
Простенькая, полностью асинхронная библиотека AnyEvent::VK, выполняющая все запросы по https. По сути является клиентом. Автор рекомендует использовать Async::Chain для комбинирования вложенных колбеков.
Для мобильной разработки
Android (Java)
Еще одна официальная библиотека, на этот раз — для Android. Написана на Java и позволяет сильно упростить работу с API ВКонтакте из этого языка.
Пример отправки запроса:
Windows Phone (C#)
Последняя в этом списке официальная разработка: написанная на C# базовая библиотека для разработки на WP, похожая по функциональности на свои аналоги под Android и iOS.
Отправка запроса на список друзей:
iOS (Objective C)
Официальная библиотека от ВКонтакте, предназначенная для написания приложений под iOS. Написана на Objective-C.
Пример кода с отправкой запроса:
Для хипстеров
На Github есть библиотека и для этого языка — vkrs. Она не слишком активно развивается, но это уже хоть что-то. Вот так она выглядит в деле:
Golang
Как ни странно, была написана обёртка для VK API и на языке Go. Так же, как и остальные, она доступна на Github. Hello World на ней выглядит так:
Если для какого-либо языка вы знаете более актуальную или функциональную библиотеку — пишите в комментарии, мы обязательно обновим статью.
Pascal code вк
Windows, Real, Protected
Замечания
Символ не отображается на экране.
При нажатии некоторых специальных клавиш (стрелки и функциональные клавиши) ReadKey возвращает нулевой символ (#0), а повторный вызов ReadKey возвратит сканкод нажатой клавиши.
Коды специальных клавиш
Клавиша | Что возвращает ReadKey? |
---|---|
Escape | #27 |
Enter | #13 |
Ctrl+Enter | #10 |
Backspace | #8 |
Ctrl+Backspace | #127 |
Tab | #9 |
Shift+Tab | #15 |
F1 | #0, #59 |
F2 | #0, #60 |
F3 | #0, #61 |
F4 | #0, #62 |
F5 | #0, #63 |
F6 | #0, #64 |
F7 | #0, #65 |
F8 | #0, #66 |
F9 | #0, #67 |
F10 | #0, #68 |
← | #0, #75 |
↑ | #0, #72 |
→ | #0, #77 |
↓ | #0, #80 |
Delete | #0, #83 |
Insert | #0, #82 |
Home | #0, #71 |
End | #0, #79 |
Page Up | #0, #73 |
Page Down | #0, #81 |
NumPad 5 1 | #0, #76 |
Shift+F1 | #0, #84 |
Shift+F2 | #0, #85 |
Shift+F3 | #0, #86 |
Shift+F4 | #0, #87 |
Shift+F5 | #0, #88 |
Shift+F6 | #0, #89 |
Shift+F7 | #0, #90 |
Shift+F8 | #0, #91 |
Shift+F9 | #0, #92 |
Shift+F10 | #0, #93 |
Ctrl+F1 | #0, #94 |
Ctrl+F2 | #0, #95 |
Ctrl+F3 | #0, #96 |
Ctrl+F4 | #0, #97 |
Ctrl+F5 | #0, #98 |
Ctrl+F6 | #0, #99 |
Ctrl+F7 | #0, #100 |
Ctrl+F8 | #0, #101 |
Ctrl+F9 | #0, #102 |
Ctrl+F10 | #0, #103 |
Alt+F1 | #0, #104 |
Alt+F2 | #0, #105 |
Alt+F3 | #0, #106 |
Alt+F4 | #0, #107 |
Alt+F5 | #0, #108 |
Alt+F6 | #0, #109 |
Alt+F7 | #0, #110 |
Alt+F8 | #0, #111 |
Alt+F9 | #0, #112 |
Alt+F10 | #0, #113 |
Ctrl+← | #0, #115 |
Ctrl+→ | #0, #116 |
Ctrl+Home | #0, #119 |
Ctrl+End | #0, #117 |
Ctrl+Page Up | #0, #132 |
Ctrl+Page Down | #0, #118 |
Ctrl+2 | #0, #3 |
Ctrl+A | #1 |
Ctrl+B | #2 |
Ctrl+C 2 | #3 |
Ctrl+D | #4 |
Ctrl+E | #5 |
Ctrl+F | #6 |
Ctrl+G | #7 |
Ctrl+H 3 | #8 |
Ctrl+I | #9 |
Ctrl+J | #10 |
Ctrl+K | #11 |
Ctrl+L | #12 |
Ctrl+M | #13 |
Ctrl+N | #14 |
Ctrl+O | #15 |
Ctrl+P | #16 |
Ctrl+Q | #17 |
Ctrl+R | #18 |
Ctrl+S | #19 |
Ctrl+T | #20 |
Ctrl+U | #21 |
Ctrl+V | #22 |
Ctrl+W | #23 |
Ctrl+X | #24 |
Ctrl+Y | #25 |
Ctrl+Z | #26 |
Ctrl+[ | #27 |
Ctrl+\ | #28 |
Ctrl+] | #29 |
Ctrl+6 | #30 |
Ctrl+— | #31 |
Alt+Q | #0, #16 |
Alt+W | #0, #17 |
Alt+E | #0, #18 |
Alt+R | #0, #19 |
Alt+T | #0, #20 |
Alt+Y | #0, #21 |
Alt+U | #0, #22 |
Alt+I | #0, #23 |
Alt+O | #0, #24 |
Alt+P | #0, #25 |
Alt+A | #0, #30 |
Alt+S | #0, #31 |
Alt+D | #0, #32 |
Alt+F | #0, #33 |
Alt+G | #0, #34 |
Alt+H | #0, #35 |
Alt+J | #0, #36 |
Alt+K | #0, #37 |
Alt+L | #0, #38 |
Alt+Z | #0, #44 |
Alt+X | #0, #45 |
Alt+C | #0, #46 |
Alt+V | #0, #47 |
Alt+B | #0, #48 |
Alt+N | #0, #49 |
Alt+M | #0, #50 |
Alt+1 | #0, #120 |
Alt+2 | #0, #121 |
Alt+3 | #0, #122 |
Alt+4 | #0, #123 |
Alt+5 | #0, #124 |
Alt+6 | #0, #125 |
Alt+7 | #0, #126 |
Alt+8 | #0, #127 |
Alt+9 | #0, #128 |
Alt+0 | #0, #129 |
Alt+— | #0, #130 |
Alt+= | #0, #131 |
Приведённая таблица не претендует на полноту
См. также
Пример
Язык:
Русский
English
For Informatics
Материалы к урокам информатики, алгоритмики и программирования.
Чтобы просмотреть задание и материалы с урока, выберите ваш предмет!
Главная
четверг, 2 февраля 2012 г.
Правила оформления кода на Pascal
Секции определения типов и констант Вы можете располагать относительно друг друга как Вам угодно.
Для визуального разделения элементов между ними должна быть хотя бы одна пустая строка.
СОГЛАШЕНИЕ ОБ ИМЕНОВАНИЯХ
Исключая зарезервированные слова и директивы, которые всегда пишутся в нижнем регистре, все идентификаторы Object Pascal должны использовать InfixCaps:
Правильно:
Неправильно:
Запрещается объявлять переменные с одинаковыми именами в глобальном разделе объявления переменных и в локальным разделе внутри процедур и функций.
ИСПОЛЬЗОВАНИЕ ПРОБЕЛОВ
Никогда не разрывайте строку между параметром и его типом, кроме параметров, перечисляемых через запятую. Двоеточие для всех объявлений переменных не должно содержать перед собой пробелов и иметь один пробел после перед именем типа.
Правильно
Неправильно
Нельзя переносить строки в тех местах, где не допускаются пробелы, например между именем метода и открывающей скобкой или между именем массива и открывающей квадратной скобкой. Никогда нельзя помещать выражение begin на строку, содержащую другой код.
Неправильно
Правильно
В случае с логическими операторами предпочтительнее будет следующий вариант:
КОММЕНТАРИИ
Однострочные комментарии
Однострочный комментарий состоит из символов // со следующим за ними текстом комментария. После символов // должен идти пробел и затем текст. Однострочные комментарии должны иметь отступы такие же, как и код, в котором они встречаются. Однострочные комментарии можно сгруппировать, чтобы сформировать большой комментарий.
Однострочный комментарий может начинаться с новой строки и может продолжать код, который он комментирует. В этом случае между кодом и комментарием должен быть хотя бы один пробел. Если больше одного комментария следует за кодом, то они должны быть выровнены по одному столбцу.
Пример однострочного строкового комментария:
Пример комментария в коде:
Необходимо избегать использовать комментарии в коде для каждой строки модуля.
ОПЕРАТОРЫ
Объявление локальных переменных
Локальные переменные должны иметь стиль Camel Caps. Для локальных переменных префикс F не требуется.
Все переменные с их типами, особенно поля класса, должны быть объявлены на различных строках. Объявление массивов
В объявлении массива перед и после квадратных скобок должны стоять пробелы.
Оператор if
Оператор if всегда должен располагаться по крайней мере на двух строках
Неправильно
Правильно
В случае составного оператора необходимо поместить каждый оператор на новую строку.
Неправильно
Правильно
Все остальные варианты расположения операторов не рекомендуются и не одобряются, хотя и являются синтаксически правильными. Избегайте использования круглых скобок в простых проверках. Например:
Правильно
Неправильно
Оператор for
Неправильно
Правильно
Оператор while
Неправильно
Правильно
Оператор repeat until
Правильно
Оператор case
Несмотря на то, что существует множество синтаксически правильных конструкций, одобренной и рекомендованной считается следующая:
Правильно
Const, Var и Type
Зарезервированные слова var, const и type всегда пишутся на новой строке и не допускают появления на этой же строке какого-либо текста.
Правильно
Неправильно
Процедуры должны иметь только по одной секции type, const и var в следующем порядке:
Категории и разделение алгоритмов
В секции реализации каждая подкатегория или класс должен разделяться строкой, состоящей из символов равенства (=), закомментированных однострочным комментарием и пустой строкой перед и после группы функций:
Каждая функция из одной группы или методы класса должны разделяться между собой строкой, состоящей из символов минуса (-), закомментированных однострочным комментарием и пустой строкой перед и после функции или метода:
Онлайн-компиляторы для разных языков: выполняем код прямо в браузере
Отобрали лучшие онлайн-компиляторы. Некоторые из них умеют работать с десятками языков программирования, другие заточены под конкретные технологии.
Мультиязычные онлайн-компиляторы
Repl.it — среда для совместной работы с кодом в браузере. Поддерживает более 50 языков, среди которых C, C++, C#, Java, Python, R, JavaScript.
В бесплатной версии доступно многопользовательское сотрудничество, 500 МБ хранилища и 500 МБ памяти, 0.2 — 0.5 vCPUs. Есть также платная версия с приватными проектами, хостингом до 5 реплов, 5 ГБ хранилища, 2 ГБ памяти и 2 vCPUs.
Если нужны не только языки программирования, но и интерактивные терминалы для работы с MySQL и MongoDB, попробуйте сервис JDoodle. Это инструмент для онлайн-обучения, у которого есть режим совместного использования. Вы можете компилировать код на разных языках и разбираться с базами данных прямо в браузере.
Пример кода на Pascal
Если нужен не только компилятор, но и другие технологии, попробуйте сервис Coding Ground. Эта платформа предоставляет доступ к 75+ языкам программирования и технологиям. Вы можете использовать встроенный редактор Markdown и запускать Bash Shell в браузере. Кроме того, на сайте есть учебные материалы, в том числе бесплатные справочники и платные видеокурсы.
Ещё один мощный сервис — Ideone. Это онлайн-компилятор и инструмент отладки, который позволяет прямо в браузере выполнять код на более чем 60 языках программирования и их версиях.
В Ideone есть ряд ограничений для пользователей. Например, время компиляции/интерпретации не должно превышать 10 секунд. Максимальное время исполнения для гостей — 5 секунд, для зарегистрированных пользователей — 15 секунд. Размер выделенной оперативной памяти не превышает 256 МБ.
Python онлайн-компиляторы
Для проверки кода на Python подходит сервис Online Python. Здесь представлена простая IDE, которая поддерживает загрузку с компьютера и скачивание кода в виде файла с расширением *.py. Вы можете работать над проектом совместно с коллегами, поделившись ссылкой. В редакторе поддерживается тёмная тема.
В многоязычных компиляторах тоже очень хорошая поддержка Python. Например, на Repl.it есть вторая и третья версии языка, Python with Turtle для обучения, фреймворк PyGame и движок Pyxel для создания игр, библиотека Tkinter для разработки графического интерфейса, а также шаблоны для Django, Multi-Page Flask и даже ботов для Discord.
JavaScript онлайн-компиляторы
Если вам нужен JavaScript онлайн-компилятор, то JSFiddle — один из лучших вариантов. Он позволяет проверить любое сочетание JavaScript, HTML и CSS.
JavaScript, как и Python, есть во всех многоязычных онлайн-компиляторах. Так что если вам не требуется поддержка препроцессоров и постпроцессоров, библиотек и фреймворков, то можно выбрать любой сервис.
PHP онлайн-компиляторы
Лучший выбор для проверки кода на PHP — Sandbox на сайте Online PHP Functions. Здесь можно выбрать версию языка, начиная с 4.4.9 и до последней. На сайте также есть подсказки по функциям PHP. Они выполнены в виде шпаргалок, разбитых на темы: Arrays, Date and Time, Math и так далее. Есть и пошаговые туториалы.
Выполнить код на PHP можно и с помощью многоязычных онлайн-компиляторов. Однако они не предлагают такой большой выбор версий. Более того, практически везде отсутствует последняя версия языка.
Java онлайн-компиляторы
Если требуется Java онлайн-компилятор, попробуйте Codiva.io. В нём нет такого разнообразия языков, как на других сервисах. Кроме Java поддерживаются только C и C++.
Можно также использовать компилятор Java на сайте OnlineDGB. Здесь есть встроенный отладчик и автоматическое форматирование. Вы можете поделиться примерами кода с другими пользователями, сохранить их или скачать в виде файла с расширением *.java.
Чтобы сделать процесс разработки более эффективным, используйте также полезные сервисы для программистов. Как и онлайн-компиляторы, они помогают сэкономить время на решении разных задач.
Почему в школе до сих пор изучают Pascal
Паскаль. Турбо Паскаль!
Часто в разговорах со школьниками и их родителями можно услышать, что на информатике они «до сих пор изучают Pascal, страну развалили, не могут современные компьютеры поставить!». Говорят, что в 21-м веке можно было бы изучать в школе уже что-то другое — Python или тот же JavaScript, но во многих школах, особенно в регионах, до сих пор преподают этот язык.
Но постойте. Не отменяя, что многим российским школам не повредит обновление парка компьютеров, давайте посмотрим, чем хорош сам Паскаль.
Олды тут?
Он действительно простой
Pascal — предельно простой и понятный язык. В нём нет сложных конструкций, перегрузок операторов или неявного приведения типов. Достаточно выучить 15 команд, и вы уже сможете решить большинство школьных задач.
Программы на Pascal легко читать и понимать, даже если вы видите этот язык первый раз. Смотрите сами:
Компилятор — наш друг
Pascal — компилируемый язык, как и многие другие. В нашем случае компилятор перед тем как собрать программу проверяет исходный код на ошибки. Единственное, он не предупреждает, если вы объявили переменную, но ни разу её не использовали, как это делает, например, С++. Но если компилятор встретит ошибку, он сразу поставит курсор на место ошибки и сверху на красном фоне напишет, что конкретно ему не нравится в этом коде.
Ошибка несоответствия типов: программист пытается в целочисленную переменную (integer) поместить дробное число.
Всё только по правилам
Pascal — строго типизированный язык с чёткой логической структурой. В нём всё упорядочено настолько, что ошибиться в командах будет очень сложно. Единственное, что может показаться немного странным для тех, кто привык к другим языкам — оператор присваивания, который выглядит так :=
Программисту остаётся следить только за тем, чтобы нигде не пропустить точку с запятой в конце каждого оператора, и за тем, чтобы количество операторов begin и end совпадало. Благодаря такому подходу Pascal заслужил репутацию лучшего языка программирования для начинающих.
Разумеется, в Паскале нет ООП. Но для того чтобы понять основы алгоритмов, переменных и циклов, этого и не нужно. А процедуры, функции, локальные и глобальные переменные — это всё есть.
Что на нём пишут сегодня
На Паскале сейчас не пишут ничего. Сегодня он только для учёбы.
Но раньше — писали, например, самый первый фотошоп был написан на Паскале пополам с ассемблером. А вообще сейчас больше пишут на Delphi — преемнике Pascal, в котором есть и ООП, и визуальное программирование, и работа с мышью и окнами.
С чего начать
Если вы давно хотели познакомиться с Паскалем поближе, но не знали, с чего начать, то начните с этого:
Pascal
Alessandro Fragnani
What’s new in Pascal 9.5
Support
Pascal is an open source extension created for Visual Studio Code. While being free and open source, if you find it useful, please consider supporting it
Pascal
It adds support for the Pascal language and its dialects like Delphi and FreePascal.
Here are some of the features that Pascal provides:
Features
Coding with style
Syntax Highlighting
Pascal supports full syntax highlighting for Delphi and FreePascal
Snippets
Almost 40 snippets are available
Format Code
Check out Pascal Formatter documentation.
Code Navigation
Navigate to any language element (methods, attributes, classes, interfaces, and so on) inside Pascal files. It supports native VS Code commands like:
It uses GNU Global, a source code tagging system, which means that it has some limitations if you compare with an AST parsing.
Installing and Configuring GNU Global
Let’s say you extract GNU Global and CTags in C:\gnu folder. The two new entries in %PATH% should be:
Also make sure Python is in %PATH%
GNU Global uses CTags + Python Pygments as plugin in order to recognizes Pascal source code, so you have to configure them.
NOTE: For now, it was tested only on Windows, but since these tools are multiplatform (in fact, it comes from Unix), it should work on Linux and Mac.
Available commands
Code Navigation
To enable Code Navigation, the extension depends on GNU Global and Exuberant Tags and for that, you must run gtags on the Root folder, so the tags are created. In order to make life easier, two commands where added:
Available Settings
Controls how the code navigation should work. Specially useful if you work with huge projects
For huge projects, its recommended to use:
Task Build
Use this Task Examples, so you can:
Building Tasks
If you want to build tasks (Task: Run Task Build) you can use the snippets below.
Delphi
Update two tags:
FreePascal
Update two tags:
Pascal code вк
Создание 1 игры (змейки) на PascalABC
CreatingOver | Дата: Четверг, 15 Августа 2013, 09:22 | Сообщение # 1 | ||||||||||||||||||||||||||||||||||||||
| По скольку сам уже долго изучаю pascal и владею достаточными знаниями, хочу поделиться ими с вами. И так, начнем. Не знаю, много ли 118 строк кода для первого урока, но писать нам их придется. Не волнуйтесь, каждые 5-10 строчек я объяснять не буду, объясню лишь самое главное. 200?’200px’:»+(this.scrollHeight+5)+’px’);»> const type var x,t,y,i,z,xr,yr,prin1,prin2,prin3,prin4,prin5,k,s4et,prin6: integer; 200?’200px’:»+(this.scrollHeight+5)+’px’);»> procedure shar3; procedure Circl; procedure rshar ; procedure rshar2; 200?’200px’:»+(this.scrollHeight+5)+’px’);»> procedure XP(Key:integer); procedure pause; end; x:=WindowWidth div 2; Это уже полностью конец кода. Здесь мы указали все самое основное: движение, поедание, повороты. На этом, я наверно, закончу наш с вами урок. Хотя и уроком это трудновато назвать. Просто много букаф (точнее кода, причем легкого), где мало точных пояснений. А вообще, лучше, поройтесь в коде сами. Я объяснил вам все самое необходимое. Поэкспериментируйте с цветами, переменными и клавишами. (Лично я так освоил pascal). Всем до свидания и до следующих уроков! GuvaCode/Pascal-for-C-usersUse Git or checkout with SVN using the web URL. Work fast with our official CLI. Learn more. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching XcodeIf nothing happens, download Xcode and try again. Launching Visual Studio CodeYour codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commitGit statsFilesFailed to load latest commit information. README.mdPascal for C users Note: Logical operators (AND/OR/XOR etc) are logical or boolean depending on the type of the arguments (boolean or integer). Since Pascal had a separate boolean type from the start, boolean operators on integers were not necessary, and are always logical. Pascal code вкI’ve went back and moved some of the more noteable programs into their own folders. Compiling these programs requires the horribly outdated and Windows only Virtual Pascal Compiler. Open up the «main» source file for a program in the Virtual Pascal IDE and select Compile->Build andthen Run to run the given program. In the future I would like to port a couple of these programs to Free Pascal using the ncurses library to port the text-based interface to Linux + OSX. Last Tested December 2015 on a PC running Windows 10.
Nyan Cat in Pascal, plays the music as well. A very simplistic RPG-like battle game. Despite the displayed options you can only attack and the program ends when either you or the computer wins. A program which pretends to be loading something but instead taunts the user for a few minutes. Eight different colored racers race to the finish by moving a random amount forward each round. Constantly fills the screen with random characters of different colors Разработка веб-сайта на паскале (backend)В этой статье я расскажу о том, зачем, почему и как я начал делать сайты на паскале: Delphi / FPC. Но нет, всё гораздо интереснее! Впрочем, исходный код реального сайта (почти весь) доступен на GitHub. Зачем?Вообще я ни разу не профессиональный веб-разработчик — я делаю игры. А игре, особенно онлайновой, нужен сайт. Поэтому так сложилось, что я стал делать ещё и сайты для своих игр. Используя CGI на Perl — в начале/середине 2000-х это было популярно. Всё было хорошо, пока не возникла проблема. В 2013 году мы начали проводить онлайн-турниры по игре «Спектромансер», для этого на сайте игры я сделал турнирную страничку, где показывается кому с кем играть, текущие результаты и т.п. В момент старта турнира страничка у игроков обновилась и… не загрузилась. Люди нажимали F5, чем ещё больше усугубляли проблему. Оказалось, что даже 4-5 запросов в секунду к CGI-скрипту, запускаемому в виде отдельного Perl-процесса, ощутимо замедляют сервер, а >10 запросов в секунду делают его совсем недоступным. Хорошо что этот стресс-тест состоялся во время репетиционного турнира: в дальнейшем я уже использовал для турниров обновляемую статическую страницу. Почему?В качестве интерфейса выбрал SimpleCGI (SCGI): он несколько проще FastCGI, а преимущества последнего для меня неактуальны — нет необходимости разносить бэкенд на разные сервера, всё крутится на одном сервере. Так что задача свелась к разработке некоего SCGI-фреймворка, обрабатывающего запросы от сервера и генерирующего в ответ HTML-страницы из неких заготовок, шаблонов. В результате получился вот такой модуль-фреймворк. Он состоит из следующих частей: ШаблоныВесьма удобное свойство скриптов на Perl в том, что очень легко вносить небольшие изменения на сайт: просто подредактировал код скрипта — и все. Не нужно ничего компилировать, деплоить. Конечно, паскаль — язык компилируемый, тут так не выйдет, но все же я хотел иметь возможность по возможности вносить изменения без перезапуска процесса. Поэтому я постарался сделать систему шаблонов достаточно гибкой. Работает она так. В папке «templates» лежат файлы шаблонов: они загружаются при запуске процесса а также перезагружаются при изменении — таким образом можно изменять динамический контент не перезапуская процесс. В каждом файле может быть один или несколько шаблонов. Все вместе они образуют словарь (или хэш) шаблонов: <«имя»->«значение»>. Это статический словарь шаблонов — он общий для всех запросов и его содержимое неизменно (пока не изменится содержимое файлов). Есть ещё второй — динамический словарь, он создаётся пустым для каждого запроса и заполняется обработчиком динамическими данными — например из БД. Комбинируя статические и динамические данные и формируется итоговый результат. Пример декларации шаблона: Здесь можно также заметить псевдотэг для условной трансляции: — в процессе трансляции такие тэги удаляются а их содержимое оставляется либо также удаляется — в зависимости от значения указанного шаблона. Я специально выбрал такой формат условий — в виде HTML-тэгов, чтобы при редактировании в текстовом редакторе работала подсветка синтаксиса и чтобы было легко видеть парный тэг. Код формирования ленты новостей, использующий этот шаблон, выглядит примерно так: ЛокализацияПример использование фреймворкаПример кода простого сайта: ИтогоОписываемый фреймворк я написал в процессе создания реального сайта astralheroes.com в конце 2015 года. Как это обычно бывает, первый блин вышел немножко комом — код получился несколько сумбурным и запутанным, следующий сайт получается уже лучше. Тем не менее, и процессом и результатом я доволен: сайт работает хорошо, легко отлаживается и обновляется. В целом высокая производительность позволила не напрягаясь сделать на форуме подсветку названий игровых карт, чтобы можно было навести на них мышь и посмотреть описание карты. При этом название в тексте может быть написано неточно — для определения соответствия используется расстояние Левенштейна. Например, на этом скриншоте в названии карты отличаются две буквы: Подсветка названий карт выполняется динамически при загрузке страницы, а не заранее — при сохранении текста. Это хоть и более ресурсоёмко, но имеет свои плюсы. Так где же исходники сайта?Обратите внимание, что в репозитории есть подмодуль, поэтому клонировать лучше с параметром «—recursive«. Проект сайта находится в файле: «AH-Website\Backend\src\website.dpr» Это не совсем полная копия действующего сайта: понятно, что я не могу опубликовать содержимое БД с данными игроков, я также не публикую CGI-скрипты, поскольку они не имеют отношения к описываемой теме. Тем не менее, проект собирается, запускается и работает, полностью демонстрируя работу фреймворка. Публикация кода сайта, а также кода движка, который он использует, стала возможной благодаря поддержке, которую я получил на Patreon. Выражаю благодарность всем поддержавшим, и призываю присоединиться — впереди ещё много интересного 🙂 Pascal code вкХакерские Штучки Старенькая программа для АМИ-биоса AutoHack ][ v1.2 Автоматическая снималка для навесных защит, распаковщик «круто»-запакованных программ. | 23.07.1994 8k | |||||||||||||||||||||||||||||||||||||
ITPU v.1.31. Инструмент изучения TPU файлов v6.0 | Василий Востриков | ||||||||||||||||||||||||||||||||||||||
Средство изучения интерфейса объектных модулей Турбо Паскаля (TPU) Утилита для преобразования контрольной суммы в символьный пароль для популярной BBS «Remote Access 1.0». | 18.06.1994 10k | ||||||||||||||||||||||||||||||||||||||
View and Delete a Password from NU 6.0 | Николай Михайлов | ||||||||||||||||||||||||||||||||||||||
Программа проcмотра/удаления пароля с утилит П.Нортона 6.0 версии (C) Symantec Corporation. SOURCEWARE | 07.04.1993 5k | ||||||||||||||||||||||||||||||||||||||
Резидентный перехватчик обращений к портам | Сергей Васильев | ||||||||||||||||||||||||||||||||||||||
18.06.1994 16k | |||||||||||||||||||||||||||||||||||||||
Снятие защиты ситемы ГАРАНТ | MegaProduct Software | ||||||||||||||||||||||||||||||||||||||
Утилита для снятия защиты с баз данных системы ГАРАHТ и подключения новых баз. | 24.10.1994 6k | ||||||||||||||||||||||||||||||||||||||
American Megatrends CMOS password detector | | ||||||||||||||||||||||||||||||||||||||
Программа для получения пароля, установленного в AMI BIOS. | 22.04.1994 1k | ||||||||||||||||||||||||||||||||||||||
AMI BIOS Password Reader | | ||||||||||||||||||||||||||||||||||||||
Показывает, какой пассворд установлен в AMI BIOS. | 25.11.1996 1k | ||||||||||||||||||||||||||||||||||||||
Jump Tracer | | ||||||||||||||||||||||||||||||||||||||
18.09.1996 6k | |||||||||||||||||||||||||||||||||||||||
HASP Emulator v0.10d | | ||||||||||||||||||||||||||||||||||||||
Исходники HASP’а и его эмулятора. | 26.08.1997 117k | ||||||||||||||||||||||||||||||||||||||
The Simplest Executable Cracker | | ||||||||||||||||||||||||||||||||||||||
Простейшая программа для внесения изменений в указанные адреса исполняемых модулей. | 18.09.1997 1k | ||||||||||||||||||||||||||||||||||||||
Inside TURBO Pascal 6.0 Units | | ||||||||||||||||||||||||||||||||||||||
TINFO70.PAS 7.00. Утилита для получения всей возможной информации из TPU, TPP, TPW и TPL файлов от BP7.0. TPU2ASM.EXE (Executable). Символьный (Мнемонический) дизассемблер для TPU модулей от TP5.0. Формирует ассемблерный листинг, готовый к компиляции с помощью TASM. Утилита для преобразования модуля System.Tpu в файл System.Tps, готовый для модификации и перекомпиляции. Такая возможность позволяет уменьшить минимальный размер исполняемой программы с 1400 до 128 байт. | 06.06.1991 136k | ||||||||||||||||||||||||||||||||||||||
UFO Save Game Cracker | Unknown | ||||||||||||||||||||||||||||||||||||||
Утилита для подбора пароля в ZIP файле. Использует метод «Brute Force Attack». Хорошо работает на коротких паролях, но для длинных непригодна. RossMeikleham/Pascal-CodeUse Git or checkout with SVN using the web URL. Work fast with our official CLI. Learn more. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching XcodeIf nothing happens, download Xcode and try again. Launching Visual Studio CodeYour codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commitGit statsFilesFailed to load latest commit information. README.mdI’ve went back and moved some of the more noteable programs into their own folders. Compiling these programs requires the horribly outdated and Windows only Virtual Pascal Compiler. Open up the «main» source file for a program in the Virtual Pascal IDE and select Compile->Build andthen Run to run the given program. In the future I would like to port a couple of these programs to Free Pascal using the ncurses library to port the text-based interface to Linux + OSX. Last Tested December 2015 on a PC running Windows 10.
Nyan Cat in Pascal, plays the music as well. A very simplistic RPG-like battle game. Despite the displayed options you can only attack and the program ends when either you or the computer wins. A program which pretends to be loading something but instead taunts the user for a few minutes. Eight different colored racers race to the finish by moving a random amount forward each round. Constantly fills the screen with random characters of different colors delphi-pascal-archive/Pascal-QRCodeUse Git or checkout with SVN using the web URL. Work fast with our official CLI. Learn more. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching XcodeIf nothing happens, download Xcode and try again. Launching Visual Studio CodeYour codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commitGit statsFilesFailed to load latest commit information. AboutDeplhi/Pascal QR code generator TopicsLicenseStarsWatchersForksReleasesPackages 0LanguagesFooter© 2022 GitHub, Inc. You can’t perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. MaxMitter/pascal-codeUse Git or checkout with SVN using the web URL. Work fast with our official CLI. Learn more. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching XcodeIf nothing happens, download Xcode and try again. Launching Visual Studio CodeYour codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commitGit statsFilesFailed to load latest commit information. README.mdContains pascal code for University projects and homework AboutContains pascal code for University projects ResourcesStarsWatchersForksReleasesPackages 0LanguagesFooter© 2022 GitHub, Inc. You can’t perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. Как возможно интерпретировать этот Pascal ABC код в Python код?В процессе обучения искусству оригами, Митя достиг апогея своего развития он научился складывать листы точно пополам! Так же он выяснил, что лист бумаги можно сложить пополам, только если длина стороны, которая уменьшается в результате складывания, не меньше удвоенной толщины. Вам задан прямоугольный лист бумаги единичной толщины и размером L W. Подсчитайте, какое максимальное количество раз он может быть сложен. У меня есть код который частично решает это задачу. Могли бы Вы объяснить как работает этот код?(По какому принципу, т.к я не знаю даже основ паскаля, то пожалуйсто, подробно.) Если это возможно, интерпретируйте этот код в Python код. Надеюсь я не ошибся тематикой портала. alefragnani/vscode-pascal-formatterUse Git or checkout with SVN using the web URL. Work fast with our official CLI. Learn more. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching XcodeIf nothing happens, download Xcode and try again. Launching Visual Studio CodeYour codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commitGit statsFilesFailed to load latest commit information. README.md
What’s new in Pascal Formatter 2.6 Pascal Formatter is an open source extension created for Visual Studio Code. While being free and open source, if you find it useful, please consider supporting it It adds Code Formatters for Pascal language and its dialects like Delphi and FreePascal.
Standardise your Pascal code! It uses external tools (engines) to format the code, so you must install them prior to use the Format Document and Format Selection commands.
You can choose which formatter engine to use (required): If you decide to use FreePascal PToP, you have two additional settings: The extension seamlessly integrates with the Format Document and Format Selection commands Visual Studio Code. Special thanks to the people that have contributed to the project: ShpiratЛазяют там по своим интернетам, шпираты гребанные!Попросил меня однажды один человек помочь ему с курсовой. Все делали что-то простенькое, а он вот решил выделиться, замахнулся на игру, даже начал, но потом он понял, что как-то не понимает некоторых вещей, поэтому обратился за помощью ко мне 🙂 TSquareColor — это запись, хранящая в себе фоновый цвет и цвет текста. Функция createColor принимает на вход первым параметром цвет фона, а вторым — цвет текста и возвращает уже заполненную запись TSquareColor, которая потом уже используется для задания цвета определённой клеточки ) Вообще, код неплохо откомментирован. В некоторых местах даже избыточно, т.к. это курсовая работа, пришлось комментировать почти всё 🙂 Настало время показать, как это дело выглядит! А вот так:
Ничего особенного. Всё как обычно ) А в заголовке отображается ещё и количество очков. Управление то же самое, как и в классической реализации игры. Поведение тоже ) Также был написан небольшой класс для показа «диалоговых» окон, который содержит в себе простенькую реализацию некоего подобия окна подтверждения (которое содержит вопрос и кнопки ОК и Отмена). Суть в том, что можно динамически создавать эти диалоговые окошки, модально показывать их, реагируют они также на нажатия клавиши Esc (отмена) и Enter (ок).
Про модальные диалоги я, конечно, загнул немножко ) Обрабатываются нажатия в главном окне программы, а там уже идёт проверка, если открыто какое-то диалоговое окно, то нужно обрабатывать нажатия несколько иначе, а если же нет никаких окон, то там уж управлять игрой нужно ) Прикольно, в общем. Остальное можно найти в коде и в комментариях, которых там, как уже было сказано выше, предостаточно. Были некоторые идеи, типа сохранения состояния игры при закрытии и восстановление при открытии, но как-то не было в этом необходимости, да и интерес через некоторое время пропал, поэтому всё осталось на таком уровне, на котором есть сейчас. К тому же, для курсовой тому человеку всех этих окошек диалоговых не нужно, поэтому на каком-то этапе он просто оставил старую версию и стал дорабатывать её по-своему ) Сделано это всё было ещё осенью, но сейчас стало можно это опубликовать, может, ещё кому-то пригодится или же просто интересно будет 🙂 Вывести символ по его кодуВ литерном файле найти символ, повторяющийся максимальное число раз. Напечатать этот символ и количество его Программа, которая выдаёт символ по коду Дан символ C. Вывести его код (то есть его номер в кодовой таблице) Решение Строка: найти символ и вывести его на экран, который встречается в ней реже всех остальных. RTX2080S/PascalCodeUse Git or checkout with SVN using the web URL. Work fast with our official CLI. Learn more. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching XcodeIf nothing happens, download Xcode and try again. Launching Visual Studio CodeYour codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commitGit statsFilesFailed to load latest commit information. AboutPascal code aged from 2007 StarsWatchersForksReleasesPackages 0LanguagesFooter© 2022 GitHub, Inc. You can’t perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. Мидлет на Pascal: мобильный арканоид своими рукамиПартнерprogram New; Как вы наверное догадались, после выполнения такого кода на экране мобилки появится надпись «Hello world!». Сразу стоит Создаем новый проект и пишем код процедуры, которая при запуске будет вы водить наше сообщение Все просто. Теперь нужно создать меню. type zp=record var a : array [0..20, 0..20] of zp; Реализуем перемещение кирпича. Для этого пригодятся 2 переменные: direction_x и direction_y, в которых будут храниться if x1 = (GetWidth-10) then direction_x := left; Теперь научим нашу доску передвигаться в зависимости от того, какая кнопка нажата Эта процедура будет прорисовывать видимые кирпичи, а при запуске игры мы должны определить какие будут видимы, а какие нет for z:=0 to GetWidth div 10 do Таким образом будут видимы все кирпичи из 5 строк, кроме тех, что находятся в 1 и последнем столбце. Теперь готово все, if (a[ x1 div 10, y1 div 10].b) or (a[ (x1+10) div 10, y1 div 10].b) or Если есть столкновение с кирпичом, то меняем направление движения и делаем кирпич, с которым столкнулись, невидимым. Все. Вроде осветил все аспекты создания простой игрушки для тела, написанной на budden/vscode-language-blackboxcomponentbuilderUse Git or checkout with SVN using the web URL. Work fast with our official CLI. Learn more. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching XcodeIf nothing happens, download Xcode and try again. Launching Visual Studio CodeYour codespace will open once ready. There was a problem preparing your codespace, please try again. This branch is 6 commits ahead of alefragnani:master. Open a pull request to contribute your changes upstream. Latest commitGit statsFilesFailed to load latest commit information. README.mdДалее следует файл ПРОЧТИМЯ от режимя для Паскаля. What’s new in Pascal 7 Pascal for Visual Studio Code Pascal is an open source extension created for Visual Studio Code. While being free and open source, if you find it useful, please consider supporting it It adds support for the Pascal language and its dialects like Delphi and FreePascal. Here are some of the features that Pascal provides: Coding with style Pascal supports full syntax highlighting for Delphi and FreePascal Almost 40 snippets are available Standardise your Pascal code! It uses external tools (engines) to format the code, so you must install them prior to use the Format Document and Format Selection commands.
You can choose which formatter engine to use (required): Navigate to any language element (methods, attributes, classes, interfaces, and so on) inside Pascal files. It supports native VS Code commands like:
Installing and Configuring GNU Global Let’s say you extract GNU Global and CTags in C:\gnu folder. The two new entries in %PATH% should be: Also make sure Python is in %PATH% GNU Global uses CTags + Python Pygments as plugin in order to recognizes Pascal source code, so you have to configure them.
The extension seamlessly integrates with the Format Document and Format Selection commands Visual Studio Code. To enable Code Navigation, the extension depends on GNU Global and Exuberant Tags and for that, you must run gtags on the Root folder, so the tags are created. In order to make life easier, two commands where added: Controls how the code navigation should work. Specially useful if you work with huge projects
Use this Task Examples, so you can: If you want to build tasks (Task: Run Task Build) you can use the snippets below. Update two tags: Update two tags: While Pascal is free and open source, if you find it useful, please consider supporting it. I’ve been building Pascal since VS Code internal beta days, and while I enjoy developing it, I would like to be able to give more attention to its growth. Mr Bee on GitHubBeberapa waktu yg lalu, di grup Pascal Indonesia saya menyampaikan bahwa pemrogram Pascal tidak harus terikat dengan IDE seperti Delphi dan Lazarus saja. Apalagi jika kita tidak sedang membuat program GUI sehingga tidak perlu fitur perancangan form, misalnya membuat program web atau console. Lalu saya tunjukkan bahwa saya biasa menggunakan aplikasi penyunting Visual Studio Code dari Microsoft di komputer Macbook Pro saya. Ini yg saya tunjukkan: Namun rupanya semua itu belum cukup jelas. Masih ada beberapa anggota grup Pascal.ID yg bertanya tentang bagaimana cara menulis program Pascal di VS Code. Karena itu, saya kemudian menulis artikel ini. Baiklah… pertama, saya anggap anda sekalian sudah memasang (install) aplikasi VS Code, ya. Jika belum terpasang, silakan unduh VS Code di sini, lalu ikuti panduan cara memasangnya di sini. Silakan. Pemasangan Free PascalKedua, saya anggap anda sekalian juga sudah memasang Free Pascal versi terbaru. Jika belum terpasang, silakan unduh Free Pascal di sini, pilih sesuai sistem operasi yg anda gunakan. Untuk pengguna Windows 64 bit, berkasnya ada di dalam folder Win32 (yg akhir nama berkasnya ada win64 ). Kemudian, silakan jalankan aplikasi pemasang dan ikuti panduan yg muncul. Pemasangan ExtensionKeempat, setelah VS Code dan Free Pascal terpasang dengan baik dan benar, selanjutnya adalah memasang extension VS Code yg dibutuhkan. Memasang extension di VS Code sangat mudah. Cara pertama adalah melalui panel Extension (atau dari menu View → Extensions) di sisi kiri jendela VS Code, lalu cari nama extension yg ingin dipasang, kemudian klik tombol Install pada extension yg dimaksud. Cara kedua adalah melalui laman VS Code Extension Marketplace, lalu cari nama extension yg ingin dipasang, kemudian klik tombol Install pada laman extension yg dimaksud. Beberapa extension yg sifatnya wajib dipasang adalah: OmniPascal Native Debug Beberapa extension lain yg disarankan untuk dipasang juga antara lain: Git History Better Comments Bookmarks Bracket Pair Colorizer Khusus bagi pemrogram yg biasa bekerja jarak jauh, extension berikut harus terpasang, yaitu sftp. Dengan extension ini, proses unduh dan unggah berkas program secara jarak jauh melalui protokol SSH jadi lebih mudah, cepat, dan aman serta langsung dari berkas panel VS Code sendiri. Ada banyak extension sejenis ini, namun yg ini adalah yg paling mudah digunakan dan paling ringan yg pernah saya coba. Setiap selesai pemasangan extension, VS Code akan menampilkan tombol Reload di baris extension yg terkait. Jangan lupa untuk klik tombol tersebut agar extension bisa bekerja. Beberapa pengaturan membutuhkan mulai-ulang (restart) VS Code, maka lakukanlah itu jika dibutuhkan. Pengaturan OmniPascalKelima, setelah semua extension yg dibutuhkan terpasang, selanjutnya adalah melakukan pengaturan pada setiap extension tersebut. Karena ini tentang penggunaan Pascal di VS Code maka saya hanya akan membahas pengaturan extension yg dibutuhkan untuk bekerja dengan Pascal saja. Untuk pengaturan extension lainnya, silakan baca panduan tiap extension di lamannya masing-masing. Lanjut… silakan jalankan aplikasi VS Code lalu buka menu File → Open… dan arahkan ke folder tempat anda menyimpan program-program Pascal. Kemudian buka pengaturan VS Code melalui menu Preferences → Settings yg akan menampilkan isi berkas settings.json berupa daftar pengaturan VS Code yg tersedia. Lalu tambahkan tiga baris berikut, letakkan setelah baris pertama, dalam berkas pengaturan: Baris kedua adalah «omnipascal.delphiInstallationPath» yaitu nama berkas compiler berikut folder tempatnya berada. Untuk Free Pascal di Mac adalah /usr/local/bin/fpc ( fpc adalah nama berkas compiler), sedangkan di Windows biasanya c:\fpc\ \bin\ \fpc.exe (tergantung yg diberikan saat proses pemasangan). Bagi pengguna Delphi, biasanya di c:\program files\embarcadero\studio\ \bin\dcc32.exe (nilai bawaan dari aplikasi pemasang). Silakan disesuaikan saja dengan lokasi berkas masing-masing dan pastikan lokasinya benar. Baris pengaturan lainnya di berkas tersebut bisa diabaikan karena itu hanya pengaturan saya pribadi. Namun jika anda mau mencobanya juga, silakan saja diutak-atik, sekalian belajar memahami pengaturan di VS Code. Pengaturan Perintah
Kemudian, silakan anda buka berkas tasks.json dari saya di atas, salin (copy) seluruh isinya lalu tempel (paste) ke berkas tasks.json yg sedang dibuka VS Code. Lalu simpan berkas melalui menu File → Save. Setelah berkas disimpan maka setiap kali kita menjalankan perintah menu Tasks → Run Tasks… akan muncul 5 pilihan perintah baru seperti dalam gambar berikut ini. Dalam tasks.json tersebut ada 5 perintah yg saya sediakan, yaitu: Syntax Check untuk melakukan kompilasi kode program tanpa perlu menjalankannya. Ini bermanfaat jika kita hanya ingin menguji apakah program kita sudah benar secara sintaks tapi kita tidak ingin betul-betul menjalankan program tersebut. Build Debug untuk melakukan kompilasi program dengan menyertakan informasi awakutu. Ini bermanfaat jika kita ingin melakukan proses awakutu pada program yg sedang kita buat. Build Release untuk melakukan kompilasi program tanpa menyertakan informasi awakutu sehingga ukuran berkas lebih ringkas. Ini bermanfaat jika kita ingin membagikan program jadi ke pengguna. Execute Binary untuk menjalankan program jadi hasil kompilasi. Ini bermanfaat untuk memastikan program bisa bekerja dan bisa dilakukan pengujian pada program yg sedang kita buat. Clean Files untuk membersihkan berkas-berkas yg tidak dibutuhkan dari proses kompilasi. Perlu diperhatikan bahwa perintah ini juga menghapus berkas program jadi dari hasil kompilasi. Sebagai tambahan, anda juga bisa menambahkan perintah untuk mempercantik kode program Pascal dengan memasang Jedi Code Formatter versi CLI (Command Line Interface) di VS Code. Untuk petunjuk lebih lanjut, silakan baca laman JCF-CLI di sini. Atau anda juga bisa mencoba versi daringnya di sini.
Pengaturan AwakutuSebelum kita lanjut ke tahap selanjutnya, saya anggap anda sudah memasang awakutu di komputer anda, baik itu GDB maupun LLDB. Saya sarankan anda menggunakan GDB saja karena compiler Free Pascal lebih sesuai dengan GDB daripada LLDB. Pengguna Linux bisa memasang baik LLDB atau GDB dengan mudah melalui perintah apt-get (distro Debian dan turunannya, termasuk Ubuntu) atau yum (Distro RedHat dan turunannya, seperti Fedora). Sedang untuk pengguna Mac, cukup memasang aplikasi XCode dari Apple yg sudah termasuk LLDB juga. Bagi pengguna Windows, pemasangan GDB atau LLDB sedikit lebih rumit karena Windows kurang cocok dengan alat-alat dari selain Windows. Cara termudah adalah dengan memasang Lazarus IDE yg sudah membawa GDB dan sekaligus memasangnya untuk anda. Saya sendiri hanya menggunakan Linux dan Mac sehingga kurang paham juga bagaimana pemasangan GDB di Windows. Jika anda mengetahui caranya, saya mohon anda jelaskan di kolom komentar di bawah untuk saya tambahkan ke artikel ini. Terima kasih.
Kemudian, silakan anda buka berkas launch.json dari saya di atas, salin (copy) seluruh isinya lalu tempel (paste) ke berkas launch.json yg sedang dibuka VS Code. Jika anda menggunakan extension awakutu NativeDebug, lakukan beberapa hal berikut: Lalu simpan berkas melalui menu File → Save. Setelah berkas disimpan maka setiap kali kita menjalankan perintah menu Debug → Start Debugging (atau tombol F5) VS Code akan menjalankan proses awakutu pada kode program yg sedang terbuka. Pengaturan awakutu yg saya sertakan itu melakukan proses sebagai berikut: VS Code melakukan kompilasi pada kode program yg sedang dibuka dengan menjalankan perintah Build Debug. Pastikan anda sedang membuka kode program Pascal atau proses kompilasi akan gagal. VS Code akan menjalankan proses awakutu. Proses awakutu bisa kita kendalikan melalui panel mini awakutu, misalnya untuk pause, step-over, step-into, dan sebagainya. Untuk pengamatan nilai selama proses awakutu, bisa dilakukan melalui panel awakutu (dari menu View → Debug). Contohnya ada di video di atas. Setelah proses awakutu selesai, VS Code akan menjalankan perintah Clean Files. Menguji PengaturanKedelapan, terakhir… untuk memastikan pemasangan dan pengaturan telah benar maka kita perlu mengujinya dengan membuat sebuah program Pascal sederhana. Silakan buat berkas baru, beri nama test.pas kemudian salin dan tempel contoh kode program berikut ini. Kemudian simpan berkas tersebut. Lakukan hal berikut: Lakukan 5 perintah di atas satu per satu melalui menu Task → Run Task… sesuai urutan di atas, dari Syntax Check hingga Clean Files. Jika semua perintah tersebut berjalan tanpa pesan kesalahan, berarti perintah tambahan untuk Free Pascal telah bekerja dengan baik. Pasang titik-henti (breakpoint) di kode program pada baris clrscr; dengan cara mengeklik titik merah di sisi kiri nomor baris program (lihat video di atas). Kemudian jalankan proses awakutu dengan menekan tombol F5. VS Code akan menjalankan proses awakutu seperti yg telah dijelaskan di atas. Program akan terhenti pada saat proses awakutu tiba di baris clrscr; dan VS Code akan menampilkan tanda kuning di baris setelahnya. Anda klik saja tombol Continue (seperti tombol play berwarna hijau) pada panel mini awakutu. Jika program terus berjalan hingga menampilkan teks Hello World! dan selesai tanpa masalah, berarti pengaturan awakutu telah benar. Jika semua pemasangan dan pengaturan di atas berjalan baik dan benar, selamat! Selanjutnya anda bisa menikmati kenyamanan menulis program Pascal dengan VS Code seperti pada video yg saya tunjukkan di atas itu. Namun jika masih ada kendala, silakan tanyakan ke grup Pascal Indonesia di Facebook atau di Telegram. Demikian. Semoga bermanfaat. ——— pascalabcnet/pascalabcnetUse Git or checkout with SVN using the web URL. Work fast with our official CLI. Learn more. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching XcodeIf nothing happens, download Xcode and try again. Launching Visual Studio CodeYour codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commitGit statsFilesFailed to load latest commit information. README.mdBuilding PascalABC.NET in Windows Run _RegisterHelix.bat on first use to install the HelixToolkit.dll and HelixToolkit.Wpf.dll in GAC _RebuildReleaseAndRunTests.bat builds the project in Release-mode, rebuilds the pas-units and runs tests (run with administrative privileges!). _GenerateAllSetups.bat builds the project in Release-mode, rebuilds the pas-units, runs tests and creates the install package (run with administrative privileges!). _ReBuildRelease.bat builds the project in Release-mode. _ReBuildDebug.bat builds the project in Debug-mode. PascalABC is being developed in Visual Studio Community 2019. Building PascalABC.NET in Linux (Ubuntu) Build the project and run tests. Building PascalABC.NET in MacOS Download and install Mono from official page. Install the git-client. Run the commands: Run the PascalABC.NET command line compiler Tests are located in the directory «TestSuite». To run the tests execute the file bin/TestRunner.exe Сборка проекта в Windows Перед первой компиляцией необходимо запустить _RegisterHelix.bat с правами администратора _RebuildReleaseAndRunTests.bat собирает проект в Release-режиме, перекомпилирует pas-модули и прогоняет все тесты (запускать с правами администратора). _GenerateAllSetups.bat собирает инсталлят (запускать с правами администратора). _ReBuildRelease.bat собирает проект в Release-режиме. _ReBuildDebug.bat собирает проект в Debug-режиме. Разработка ведется в Visual Studio Community 2019. Сборка проекта в Linux (Ubuntu) Сборка проекта и выполение тестов Сборка проекта в MacOS Скачайте и установите Mono с официального сайта. При необходимости установите git-клиент. Далее выполните команды Тесты расположены в папке TestSuite. Прогон тестов осуществляется программой bin/TestRunner.exe AboutИтак, продолжаем наши уроки Паскаль для начинающих. В прошлом уроке мы разобрали строковый тип данных, но там мы упомянули про символы, поэтому прежде чем глубоко изучать тип данных String, мы узнаем о типе Char. Символьный тип данных Char — тип данных, значениями которого являются одиночные символы. Данный тип может содержать всего один любой символ (Например: «*», «/», «.», «!» и другие). Каждый такой символ занимает 8 бит памяти, всего существует 256 восьмибитовых символов. Все символы, используемые символьным типом Char записаны в таблице символов ASCII (American Standart Code for Information Interchange) или Американский стандарт кода для обмена информацией. Символьные константы заключаются в апострофы, например ‘.’, ‘*’, ‘7’, ‘s’. Также символьную константу можно записать с помощью символа — «решетки», например #185 — выведет символ под номером 185 из таблицы ASCII (это символ ‘№’). К символьному типу применимы 5 функций: Ord, Chr, Pred, Succ и Upcase. Функция Ord преобразовывает символ в её числовой код из таблицы ASCII. Например для символа ‘№’ она возвратит значение 185. Функция Chr обратна функции Ord. Функция Chr преобразует числовой код символа в сам символ, например, если взять числовой код 64, то функция Chr (64) возвратит символ ‘@’. Пример программы на Паскаль с использованием функции Ord: Пример программы на Паскаль с использованием функции Chr: Функция Pred возвращает значение предыдущего символа из таблицы ASCII, например для символа ‘P’ (Pred (P)) эта функция возвратит символ ‘O’. Функция Succ обратная функции Pred. Для символа ‘P’ функция Succ (P) возвратит символ ‘Q’, то есть следующий символ из вышеописанной таблицы ASCII. Пример программы на Паскаль с использованием функций Pred и Succ: Функция UpCase применима только для строчных букв английского алфавита. Данная функция преобразует строчные английские буквы в заглавные. Пример программы на Паскаль с использованием функции UpCase: На сегодня урок окончен. Помните, что программирование на паскале просто и является основой для многих языков программирования. Pascal code вкЧасто, при просмотре чужих исходников на форуме, возникает желание отформатировать код. Свои тексты также иногда неплохо бы приводить в «божий вид». Тогда и возникает желание автоматизировать рутинную работу. А т.к. Pascal появился далеко не вчера, то и подобные утилиты для него уже давно существуют. Перечислю лишь некоторые:
В интернете можно встретить упоминания и о множестве других форматтеров. Лично мне довелось пользоваться двумя: О них я и расскажу. Описание этого пакета программ будет довольно коротким из-за интуитивно понятного интерфейса, а также хорошей справки к этому пакету. Это самостоятельный пакет программ, который можно найти по ссылке. Из недостатков хочется отметить пару несущественных: Установка пакета: В состав пакета входит несколько исполняемых файлов. Нас будут интересовать только три, а точнее два из них: Настроек форматирования очень много, но пользуясь JCFNotepad можно сразу наблюдать за результатоми их изменения. Результат форматирования сохраняется в папке с исходником, с тем же именем, что и у исходника, но с расширением «.out» (возможно настроить иначе). Эта утилита входит в состав Free Pascal Compiler http://www.freepascal.org, и скачать её исполняемый файл и исходники можно только вместе со всем пакетом программ. Описание на английском (довольно ироничное) доступно по http://www.freepascal.org/tools/ptop.var. Как следует из описания утилиты, она является модернизацией другой утилиты, восходящей корнями к программе PP (pretty-printer), опубликованной в 1977 году. Программа — консольная, и у неё отсутствует графический интерфейс.
Если нужно по-быстренькому переформатировать «исходную кашу», просто запускаю из командной строки Теперь, можно привести вольный перевод официальной странички для ptop. Я его приведу здесь только потому, что ранее мне он не встречался, и не каждый умеет читать по-английски. Строка запуска программы Описание конфигурационного файла « ptop.cfg » Структура конфигурационного файла это простые блоки, повторяющиеся некоторое (20-30) количество раз для каждого ключевого слова Pascal’я, которое известно программе ptop. Список ключевых слов можно уточнить взглянув в дефолтный конфигурационный файл ptop или в исходник « ptopu.pp». Каждый блок конфигурационного файла состоит из двух строк, описывающих как ptop должен реагировать на каждое конкретное ключевое слово. Первая строка без квадратных скобок имеет следующий формат: Если среди опций присутствует опция » dindonkey«, то необходима вторая строка вида: Ключевые слова (keyword) это зарезервированные слова Pascal’я (вроде, BEGIN, END, CASE, IF, THEN, ELSE, IMPLEMENTATION). Дефолтный конфигурационный файл ptop содержит большинство из них. Pascal code вкПрофиль Репутация: нет Профиль Репутация: 1 iOS Lead Developer Профиль Репутация: 16 Хотя проще сохранить этот файл куда-нибудь с кодом и открыть простым блокнотом, откуда и скопирнуть в ворд, или напрямую вордом открыть. Опытный Профиль Репутация: 33 Профиль Репутация: нет
В том приложении после нажатия enter происходит действие, но у меня что то не получается этим способом. Можно с помощью keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0), 0, 0); этот споссоб работает но тогда в то приложение отправляется огромное количество этих энтеров. как мне можно сделать L45 Профиль Репутация: 7 Alix неработает. Я сделал вот как
L45 Профиль Репутация: 7
begin s := ‘Hello’; sendmessage(wnd, wm_keydown, vk_return, 0); |
L45
Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb
Репутация: 7
Всего: 23
у меня нету Apex’a, а ставить не хочу, может быть есть эквивалент в StrongDC? В принципе ифейс то у них одинаковый почти, скажи что за Edit, я проверю.
—
кажется я понял, речь про строку чата? действительно невыходит, ща я его помучаю.
L45
Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb
Репутация: 7
Всего: 23
Код |
procedure sendReturn(victimWindow, victimControl : HWND) var myId, threadId : DWORD; |
begin
threadId := GetWindowThreadProcessId(victimWindow, nil);
myId := GetWindowThreadProcessId(form1.Handle, nil);
if AttachThreadInput(myId, threadId, true) then begin
windows.SetFocus(victimControl);
keybd_event(vk_return, mapvirtualkey(vk_return, 0), 0, 0);
AttachThreadInput(myId, threadId, false);
end;
end;
Добавлено через 2 минуты и 3 секунды
т.е. перед тем как симулировать нажатие кнопки мне надо установить активный контрол
Alix мой пример тоже не плохо работает, там можно посылать к томуже текст, только проблема есть.
Код |
procedure TForm1.SendKeys(buffer: string; fHandle : HWND); var i:integer; w:word; D:DWORD; P:^DWORD; begin P:[email protected]; SystemParametersInfo( //get flashing timeout on win98 SPI_GETFOREGROUNDLOCKTIMEOUT, 0, P, 0); SetForeGroundWindow(fHandle); for i:=1 to length(buffer)+1 do begin if buffer[i]<>#13 then SendMessage(fHandle, WM_CHAR, ord(buffer[i]), 0) else begin w := VkKeyScan(buffer[i]); keybd_event(w,0,0,0); keybd_event(w,0,KEYEVENTF_KEYUP,0); end; |
end;
SystemParametersInfo( //set flashing TimeOut=0
SPI_SETFOREGROUNDLOCKTIMEOUT,
0,
nil,
0);
SetForegroundWindow(TWinControl(TComponent(Self).Owner).Handle);
//->typecast working.
SystemParametersInfo( //set flashing TimeOut=previous value
SPI_SETFOREGROUNDLOCKTIMEOUT,
D,
nil,
0);
end;
1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.
[ Время генерации скрипта: 0.1178 ] [ Использовано запросов: 21 ] [ GZIP включён ] Online Pascal CompilerOnline Pascal Compiler (Free Pascal v3.0.2) helps you to Edit, Run and Share your Pascal Code directly from your browser. This development environment provides you version Free Pascal v3.0.2. How to give program Input?The latest version of Coding Ground allows to provide program input at run time from the termnial window exactly the same way as you run your program at your own computer. So simply run a program and provide your program input (if any) from the terminal window available in the right side. Keyboard Shortcuts
Save Pascal ProjectYou can save your Pascal Project with us so that you can access this project later on. To save a project you will need to create a login Id with us. So before you save a project, please create a login Id using a link given at the top right corner of this page. Share Pascal ProjectYou can use this feature to share your Pascal Code with your teachers, classmates and colleagues. Just click Share Button and it will create a short link, which can be shared through Email, WhatsApp or even through Social Media. A shared link will be deleted if it has been passive for almost 3 months. Конвертация кода на C++ в код на Pascal!Конвертация кода Pascal на C++ Конвертация кода Pascal на C++ РешениеКонвертация кода С++ в код на С# Перевести в код Pascal ABC из кода Pascal Delphi Сделать с кода Pascal код C++ Транспилятор PAS2JS из Паскаля в JavaScript: несовместимости с Delphi и пути обходаВ наше время в кармане обычного человека лежит мощный персональный компьютер, о котором 10-20 лет назад можно было только мечтать. И если у вас километры отлаженного Windows-кода и отлично работающие приложения и утилиты, написанные на Delphi, вы наверняка хотели бы задействовать это богатство для мобильной разработки. А также опыт, накопленный за время программирования под Windows. PAS2JS поможет вам совместить два мира: разработку под Windows и создание Web-приложений и Node.js модулей. О некоторых обнаруженных трудностях из личного опыта идёт речь в этой статье. Почему просто не изучить JavaScript и писать Web-приложения на нём?Я изучил язык JavaScript в достаточной мере. Но во-первых, программирование для Web — это больше чем просто знание языка. Во-вторых, возможность писать один код под разные платформы бесценна. Можно отладить модули приложения в Delphi IDE, используя его мощный отладчик и редактор, и затем, добавив необходимую обвязку, получить готовое работающее приложение для сайта. А когда вы исправите ошибку или добавите новую функциональность в приложение для Windows, достаточно будет только перекомпилировать JavaScript-модули в PAS2JS. Нужно заметить, что пока PAS2JS поддерживает не все возможности языка Delphi, они указаны на сайте. Также некоторые фрагменты, казалось бы, простого кода PAS2JS не может транспилировать в JavaScript. Трудности переводаИтак, свежий пакет PAS2JS скачан с FTP, пробуем перекомпилировать простой «Привет, мир», и сразу же остановка на:
Готовые пакеты PAS2JS, которые можно найти в папке packages, частично дублируют системные юниты Delphi. Но у них нет префикса в имени. Решение простое: удаляем префикс «System.» из названия юнита. Программа в Delphi компилируется (если нет — проверьте наличие префикса «System» в Unit Scope Names, в меню Delphi Project | Options | Delphi Compiler). Приведение типа в константахPAS2JS не поддерживает приведение типа в константных выражениях:
В случае перечислимых типов можно попробовать поменять так, это проходит: Также PAS2JS не понимает встроенные функции языка Lo и Hi. В определении констант их можно заменить так: Символы и строки ANSIЯ надеюсь, вы уже перешли на Unicode-строки в своих Delphi-проектах? Если же вы оставили часть строк в формате ANSI в целях экономии памяти, они в JavaScript не сконвертируются: PAS2JS не знает типы AnsiChar, AnsiString, Utf8String и RawByteString. Рассмотрите возможность заменить их на Unicode-типы, либо на Byte и Array of Byte. Вот пример замены AnsiChar на Byte: Неуживчивая буква óКак курьёз: в польском языке есть буква ó — O kreskowane, Unicode #$00F3. По каким-то причинам PAS2JS её невзлюбил, и в некоторых случаях не может воспринять строку, если в неё входит эта буква: Оператор CaseВнезапная неожиданность подстерегла в операторе case, в котором PAS2JS отказался принимать русские буквы в качестве вариантов выбора: Помогло определение констант для нужных русских букв: ВыводыМне удалось скомпилировать для Web небольшой проект Delphi, внеся сравнительно небольшие изменения в исходный текст программы, а на сэкономленное время я написал эту статью. Тестирование показало, что обе версии программы: для Windows и для Web, работают абсолютно одинаково. Это несомненно успех: теперь я могу развивать этот проект, дорабатывая программу на Delphi, и транспилируя её в JavaScript с помощью PAS2JS. Что касается выявленных небольших недочётов, я уверен они будут быстро устранены. Поскольку проект PAS2JS — открытый и свободный, активно развиваемый силами сообщества Free Pascal. Pascal: Занятие №2. Часть 1: Условный оператор в Паскале (If)Условный оператор в ПаскалеДо рассмотрения данной темы в основном использовались линейные алгоритмы в Паскале, характерные для весьма простых задач, когда действия (операторы) выполняются последовательно, одно за другим. Более сложные алгоритмы предусматривают использование конструкция ветвления. Блок-схема условного оператора: if условие then оператор; Полный вариант: if условие then оператор else оператор; Условный оператор в Паскале — if — служит для организации хода задачи таким образом, при котором изменяется последовательность выполнения операторов в зависимости от какого-либо логического условия. Логическое условие может принимать одно из двух значений: либо true (истина), либо false (ложь), соответственно, оно может быть либо истинным, либо ложным. Составной оператор
if логическое выражение then begin оператор1; оператор2; end else begin оператор1; оператор2; end; Перевод с английского оператора условия облегчит понимание его использования:
Подробно разобраться в работе условного оператора в Паскале можно, просмотрев видеоурок: begin var x:=readReal(‘введите х’); var y: real; if x>0 then y:=ln(x) else y:=exp(x); writeln (‘y=’, y:6:2) end. Таким образом, использование такой записи в pascal практически позволяет выполнить округление до сотых, тысячных и т.п. [Название файла: L2task0.pas ] [Название файла: L2task1.pas ] [Название файла: L2task2.pas ] Логические операции в Паскале (в логическом выражении)Когда необходимо использовать двойное условие в Pascal, то понадобятся логические операции. Таблица истинности, содержащая все возможные комбинации операндов:
var n:integer; begin n:=6; if (n>5) and (n 7) or (n 7) xor (n 7) then writeln(‘истина’); end. var a,b: integer; begin write(‘Введите A: ‘); read(a); b := a mod 2; if b>0 then writeln(‘true’) else writeln (‘false’) end. var a,b: integer; begin write(‘Введите A: ‘); read(a); b := a mod 2; writeln(b>0); end. [Название файла: L2task3.pas ] [Название файла: L2task4.pas ] Построение блок-схем по коду ПаскальСуществуют управляющие структуры трех типов: Две из трех представленных структур блок-схемы мы уже можем перевести в код Pascal. Результат: Coding styleContentsFPC compiler and RTLIntroductionSome people might think that the coding style used in the FPC compiler and base RTL (run-time library) source code is a little bit strange. But it has been in use for a lot of years and is not subject to discussion. So take the following as a standard to be used. KeywordsWrite all keywords in all lower snake_case. There is no need to make them unreadble by writing them in upper case. Modern IDEs support syntax highlighting, so keywords will be easily recognizable. SpacesDon’t use spaces around operators, colons, parentheses etc. TAB charactersDo not use TAB characters (ASCII HT, 0x09). There is no standard default TAB setting, so the look of source files using TAB characters will depend on client settings. This may result in a chaotic view of source files. Align by space characters (also see Indentation). IndentationIndentation size is always 2 space characters per level. Never place a begin on the same line as while..do/if..then/. but always on its own line (and indent it compared to the while/if/. ). NewlinesNewlines are set as it is done by most Object Pascal programs (what does this mean? advice: avoid passive voice). Separate subroutines by three newlines, that is, put two blank lines between them. CommentsComments should use curly brackets, be lower case and contain a single space between the <>. RoutinesAll sections (var, const, begin etc. ) after routine header are indented one level. No spaces after name and parenthesis for parameters. Nested functions are indented one level (the same level as other sections like var, const etc. ) Use result instead of function name for return values. Classes/RecordsClass sections should appear on the same indention level as the class name. Please note that the else in consecutive ifs is not indented: Split all composite if-conditions over multiple lines, so no «if (x) and (y) then» but (except possibly if x and y are simply boolean variables) ExamplesHow it looks like can be easily checked by having a look at the FPC sources. The FCL follows the same rules as above, with 1 exception: routines are not indented, and there are empty lines between the «var« section and surrounding code. So do not write Other packages distributed with FPCThere are no formal standards. To do: write me. LazarusSince Lazarus and LCL follow Delphi compatibility, a code style similar to the one used in Delphi is used. If you’re writing a patch or an extension for LCL you should follow its code style. If you’re developing your own component, you’re free to use any style you like, but it’s suggested to use the LCL style, too. See the Lazarus coding guidelines: DesignGuidelines For reference, you can find the description of Delphi coding style here Pascal abc net как сделать exeУ всех кто писал программы на Pascal, когда-нибудь возникал вопрос: Конечно, можно объяснить получателю, как и каким образом нужно скомпилировать ваш проект, но не все на это пойдут. Поэтому, все разработчики, пускающие свою программу в свет, создают исполняемый файл «.exe», а не кидаются исходным кодом. Откройте ваш код в «PascalABC.NET» 20 Комментарии “ Pascal abc net как сделать exe ”Блин капец я когда компилирую в структуре программы все в поряде а когда создаю отдельный exe шник после завершения программы она сразу вырубается не успеваешь результат посмотреть. Что делать Попробуйте поставить в конце программы задержку «sleep(5000);» или Отлично спасибо AndHacker помогла команда sleep() спосибо begin Pascal: Занятие №2. Часть 2: Оператор выбора в паскалеОператор выбора в ПаскалеРассмотрим использование оператора выбора в языке Паскаль на конкретном примере. Особенность: Выбор не из двух, а из нескольких вариантов в зависимости от отметки. Результат выполнения с использованием условного оператора if: var otmetka:integer; begin writeln(‘Отметка?’); readln(otmetka); if (otmetka=1) or (otmetka=2) then writeln (‘кошмар!’) else if otmetka=3 then writeln(‘плохо’) else if otmetka=4 then writeln(‘неплохо’) else if otmetka=5 then writeln(‘отлично!’) else writeln(‘таких отметок не бывает’); end. Данный пример демонстрирует нерациональную работу программиста и слишком запутанный код. Гораздо лаконичнее выглядит код при использовании оператора выбора. Результат выполнения с использованием оператора выбора case: var otmetka:integer; begin writeln(‘отметка?’); readln(otmetka); case otmetka of 1,2 : writeln (‘кошмар!’); 3: writeln(‘плохо’); 4: writeln(‘неплохо’); 5: writeln(‘отлично!’); else writeln(‘таких отметок не бывает’); end end. Блок-схема, соответствующая оператору выбора: [Название файла: L2task9.pas ] Перечисление или диапазон [Название файла: L2task10.pas ] Детально разобраться в том, как работает оператор выбора Case в Паскале, можно просмотрев видеоурок: Символьный тип char в Паскале
Pascal: Занятие №3. Часть 3: Паскаль цикл forЦикл со счетчиком в Паскаль (цикл for)Цикл со счетчиком или, как он еще называется — цикл с параметром в Паскале служит для организации повторений (итераций) с заранее известным их количеством, т.е. когда точно известно, сколько раз должны выполниться операторы тела цикла. Блок-схема, соответствующая циклу For: Ну или если на простом примере: Паскаль цикл For: синтаксис:
Обратное направление (от большего к меньшему): Решение на Паскале: Оператор в теле конструкции может быть одиночным или составным оператором. Счетчик цикла или параметр цикла — это обычная переменная, которая может быть только порядкового (целочисленного, символьного, логического) или перечислимого типа. При прямом направлении цикла счетчик в каждой итерации увеличивается на единицу, при обратном направлении — уменьшается на единицу. Рассмотрим на решенном примере, как используется в Паскаль цикл for: var i,n:integer; begin write (‘количество раз’); readln(n); for i:=1 to n do write(0); end. begin var n:=readInteger(‘количество раз’); for var i:=1 to n do write(0); end. Более детально цикл со счетчиком в Паскале рассмотрен в видеоуроке: Решение в виде блок-схемы: Решение на Паскале: Задача 8. Найти среднее арифметическое чисел в Паскале, числа вводятся с клавиатуры, их количество произвольно. Использовать цикл for [Название файла: L3task8.pas ] Задача 9. Составить блок-схему по программе нахождения среднего арифметического в pascal. [Название файла: L3task9.pas ] Решение:
Задать данные таблицы в виде записи. Объявить массив дней рождения и вывести дату первого дня рождения. type zap1= record day:1..31; month: 1..12; year: 1900..2100; end; var birthdays:array[1..100] of zap1; begin birthdays[1].day:=2; birthdays[2].day:=14; birthdays[3].day:=14; birthdays[1].month:=1; birthdays[2].month:=2; birthdays[3].month:=12; birthdays[1].year:=1985; birthdays[2].year:=1987; birthdays[3].year:=1989; writeln(birthdays[1].day); end. Использование конструкции with при работе с записямиПри работе с записями есть возможность избавиться от постоянного префикса в виде обращения к названию переменной. Сравним два примера: Во втором примере значительно проще обращаться к полям записи, избавившись от префикса, благодаря with Внимание: Ключевое слово with при работе с массивами: Записи при работе с файламиtype t_subscriber = record surname: string[20]; tel: LongInt; end; var subscriber: t_subscriber; f: file of t_subscriber; i: Integer; begin Assign(f,’notebook.dat’); Rewrite(f); for i:=1 to 5 do begin with subscriber do begin Write(‘Surname: ‘); ReadLn(surname); Write(‘Phone: ‘); ReadLn(tel); end; Write(f, subscriber); end; Close(f); end. // Запись в файл: write(f, toys[1]); // Считывание из файла: read(f,toys_1[1]); Рассмотрим пример последовательного доступа к типизированному файлу с использованием записей: type t_subscriber = record surname: string[20]; tel: integer; end; var subscriber: t_subscriber; f: file of t_subscriber; s: string; begin Assign(f,’z:\pascal.dat’); rewrite(f); subscriber.surname:=’ivanov’; subscriber.tel:=36233357; write(f,subscriber); subscriber.surname:=’petrov’; subscriber.tel:=236244475; write(f,subscriber); close(f); Reset(f); while not Eof(f) do begin Read(f, subscriber); with subscriber do begin Str(tel,s); if Copy(s,1,3) = ‘362’ then tel := tel+2000000; end; Seek(f,FilePos(f)-1); // возврат указателя назад Write(f,subscriber); Writeln(subscriber.surname, ‘ ‘,subscriber.tel); end; Close(f); end. Множества в ПаскалеМножества в Паскале — это некоторое собрание элементов, одно и того же базового типа. В качестве базового типа может выступать любой простой порядковый тип. Базовым типом не могут быть вещественные числа (real не порядковый тип) и строки (не простой и не порядковый тип). Размер множества в Turbo Pascal всегда ограничен некоторым предельно допустимым количеством элементов. Во множествах допускаются только такие элементы, порядковые значения которых не выходят за границы 0..255. В Turbo Pascal в целочисленных множествах могут присутствовать только числа от 0 до 255. type week_days = (Mon, Tue, Wed, Thu, Fri, Sat, Sun); var work_days: set of week_days; begin work_days:=[Mon, Wed, Thu]; end.
Синтаксис: Возникает логичный вопрос: как же тогда работать с множествами в Паскале? Чтобы ответить на данный вопрос, сначала рассмотрим операции, выполняемые над множествами. Действия над множествами
Пример: Пример: var ch1, ch2, ch3: set of char; begin ch1:=[‘a’, ‘b’, ‘d’]; ch2:=[‘m’, ‘d’, ‘e’]; ch3:=ch1 * ch2; <Результат: ch3 = ['d'] >end. Пример: var ch1, ch2, ch3: set of char; begin ch1 := [‘a’, ‘e’, ‘t’]; ch2 := ch1 – [‘e’]; < ['a', 't'] >ch3 := [‘m’, ‘n’, ‘t’] – ch2; < ['m', 'n'] >end. Множества и операция IN в Паскалеvar voron, vorona, voroni: set of byte; number:integer; begin voron:=[5,6,7,8,9,10]; vorona:=[1]; voroni:=[2,3,4]; writeln (‘введите количество ворон’); readln(number); if number in voron then writeln (‘на ветке ‘, number,’ ворон’); if number in vorona then writeln (‘на ветке ‘, number,’ ворона’); if number in voroni then writeln (‘на ветке ‘, number,’ вороны’) end. Требуется написать программу, которая в зависимости от числа добавляет правильное окончание. var m : set of char; s : string; i : byte; begin write(‘строка: ‘); readln(s); m :=[]; i := 1; while i ‘_sdfs234’ вернет значение true, тогда как строка равная ‘_sdfs`234’ вернет false) type t_chs = set of Char; const lett: t_chs = [‘a’..’z’,’A’..’Z’,’_’]; num: t_chs = [‘0’..’9′]; var str: string; i: byte; flag: boolean; Описание переменных: Прокомментировать кодПрокомментировать код Прокомментировать код Прокомментировать код Прокомментировать код Прокомментировать код Прокомментировать код Прокомментировать код Прокомментировать код Игра «змейка»заканчиваю писать игру «змейку». Помогите сделать так, чтобы после отпускания клавиши змейка двигалась в том же направлении или менял это направление. вот код: Исходный код игры «Змейка» Заменить в строке «.» на «;», «.» на «.», убрать лишние пробелы. Не могу доделать один кусочек Написать игру «Змейка» Cyber_Monster_, Спасибо. Но я уже и сам переделал: Программа-игра «жизнь» не реагирует на функцию, не понимаю почему Игра «Угадай число». Найти ошибку в коде Полезные коды для PascalABC.NETВ этой теме размещаются полезные исходники программ, различные процедуры и функции, а так же готовые решения на часто задаваемые вопросы, написанные на PascalABC.NET. Поддержать тему и добавить свои примеры, исходники и пр. может каждый, после того, как ознакомиться с правилами темы: Модуль для PascalABC.NET Функция OrdПодпишись на новости, чтобы ничего не пропуститьФункция Ord в Паскале возвращает порядковый номер значения порядкового типа (далее на примерах это будет разъяснено более внятно). Синтаксис: function Ord(X : TOrdinal) : LongInt; Изначально Паскаль не имел функций преобразования типов и функция Ord была необходима для того, чтобы выполнять некоторые операции с не целочисленными порядковыми типами (такими, как тип Char). С введением универсального подхода к преобразованию типов стало возможным отказаться от использования функции Ord. Однако она не считается устаревшей и до сих пор широко используется. Как узнать код символаКак известно, любой символ имеет свой код. Потому что компьютеры не понимают ни слов, ни символов. Они понимают только числа. Поэтому каждому символу присвоен определённый код. В разной справочной литературе и в книгах по программированию вы можете найти таблицы ASCII-кодов. Но в Паскале можно узнать ASCII-код любого символа и без этих таблиц (к тому же в разных операционных системах эти таблицы могут отличаться для русского языка), просто воспользовавшись функцией Ord. Например, так: Здесь в переменную Cod мы получаем ASCII-код английской буквы Z. В этой программе с помощью функции Ord мы сначала получаем код (номер) числа 200. Разумеется, это и будет число 200. А затем мы получаем порядковый номер элемента Summer в перечислении TSeasons. Элемент Summer у нас находится на третьей позиции. Однако в перечислениях отсчёт начинается с 0, поэтому функция Ord вернёт число 2. Очередная 2D игра-платформерДоброго времени суток, товарищи. В общем: Я не программист, но захотелось самому склепать 2д игру, художник есть. Полистал некоторые туториалы и мало что нашёл, так что принимал решения исходя из своих знаний. В основном пишу тут, т.к. столкнулся с проблемами, решения которых сам найти не смог. пока на вскидку, все вопросы, какие хотел узнать. Если что то забыл, обязательно ещё обращусь. пока выложу код, как я думаю решить проблему анимации и звука. Перевод символов в кодыкоды символов следущие за введенными Дан массив S(50).Вывести те символы (и их коды), коды которых кратны 5 и определить их количество. vertli/Pascal-CodeUse Git or checkout with SVN using the web URL. Work fast with our official CLI. Learn more. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching XcodeIf nothing happens, download Xcode and try again. Launching Visual Studio CodeYour codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commitGit statsFilesFailed to load latest commit information. AboutProgram which is written with Pascal language. StarsWatchersForksReleasesPackages 0LanguagesFooter© 2022 GitHub, Inc. You can’t perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. QR код ВК: что нужно знать о новинке соцсети!А вы уже используете QR код ВК или все еще не разобрались, что это такое? Если второе, значит наша статья вам точно будет полезна. В ней мы подробно разберем особенности использования этой крутой фишки, расскажем, для чего она нужна, и как ею пользоваться. Начнем с расшифровки определения! QR код – это команда для быстрого реагирования, с английского аббревиатура переводится, как «Quick esponse code». Представляет собой правильный прямоугольник, с хаотично разбросанными черно-белыми квадратиками внутри. Именно их хаотичность, которая может складываться в мириадах вариаций, и позволяет шифровать внутри знака самую разную информацию. Для чего используется в ВК?Чуть позже мы рассмотрим, как сканировать QR код в ВК телефоном, и как его создавать для своего контента, а сейчас выясним, в каких сферах функция в данной соцсети вообще применяется. Итак, как вы поняли, фишка позволяет мгновенно распознавать зашифрованную информацию с помощью камеры смартфона. Что именно можно заключить в штрих-код для быстрого отклика? Такая шифровка очень удобна. Она давно используется в бизнесе в маркетинге и продвижении. Например, многие предприниматели заключают в штрих-код информацию о ссылках или акциях, добавляют логотип и расклеивают такую рекламу на стендах с объявлениями, столбах и в лифтах. Человек видит перед собой значок, логотип любимого магазина, сканирует код и мгновенно получает информацию об акции. Все, что нужно будет сделать – отсканировать QR код в ВК и уже через секунду вы окажетесь в нужном окне, папке или разделе. Как найти QR код в ВКДавайте выясним, где находится QR код страницы в ВК и с каких устройств им можно пользоваться. Совсем недавно для создания черно-белого значка нужно было скачивать специальные приложения. Но с апреля 2019 года, после обновления мобильного приложения ВК, опция стала встроенной, что значительно облегчило ее использование. Сегодня найти QR код в ВК можно в мобильных утилитах для Андроид и IOS. Прочитать штрих-код у вас получится с помощью мобильной камеры телефона. А вот в компьютерной версии сайта опция не работает. Однако, для пользователей ПК существует лазейка – множество разных программ, которые позволяют, как создать qr код, так и распознать его, путем загрузки картинки с его изображением. Единственный минус этого способа – необходимость устанавливать сторонний софт с непроверенных источников, что всегда рискованно. Ниже мы приведем перечень программ и веб-сервисов для ПК. Итак, где найти QR код в ВК в мобильном приложении? Как сделать qr код в ВКИтак, вы знаете, где найти опцию, теперь разберемся, как сделать qr код ВКонтакте и как им пользоваться. Ну что же, как открыть QR код в ВК вы знаете, теперь нам осталось только научиться его сканировать. Как сканировать код с телефона?Повторимся, еще вчера для этой цели нужно было устанавливать специальное приложение, коих десятки в Play Market и App Store. Сегодня опция «вшита» в мобильное приложение ВК, поэтому от вас требуется минимум действий: Также мы расскажем, где еще можно сканировать код для ВК — через сам раздел: щелкните по значку с штрих-кодом на главной странице и найдите вверху блок «QR сканер». Этими способами вы легко сможете просканировать qr код группы в ВК, а также любой другой зашифрованный отклик. После того, как сканер распознает информацию, вы увидите ознакомительное сообщение о том, что скрывается за переходом. Если вам интересны данные, просто щелкните по окошку. Получить зашифрованную черно-белую картинку вы можете только для своей странички или группы. QR код друга ВК вы можете распространять только после получения – если он лично перешлет вам изображение, либо добавит его в чат общей беседы. А вот сканировать доступные штрих-коды на его странице сможет любой пользователь с камерой на смартфоне и установленным приложением. Программы и сервисы для компьютераКак и обещали, расскажем, какими программами можно пользоваться для работы с QR кодами на ПК: Ввиду того, что мобильное приложение сделало данную опцию встроенной, а смартфон сегодня есть практически у каждого человека, актуальность данных приложений сильно снизилась. Однако, все же сохраните себе эти ссылки в заметках, вдруг пригодится! Ну вот и все, наш обзор опции QR код ВК подошел к завершению. Мы осветили все возможные сферы взаимодействия с данной фишкой, надеемся, у вас не осталось больше вопросов. Не бойтесь начать использовать штрих-код – уже после первых применений вы непременно оцените его преимущества. Комментариикак после скачивания использовать qr для редакции в paint? Fr0sT-Brutal/awesome-pascalUse Git or checkout with SVN using the web URL. Work fast with our official CLI. Learn more. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching GitHub DesktopIf nothing happens, download GitHub Desktop and try again. Launching XcodeIf nothing happens, download Xcode and try again. Launching Visual Studio CodeYour codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commitGit statsFilesFailed to load latest commit information. README.mdAwesome Pascal A curated list of awesome Delphi, FreePascal and other *Pascal frameworks, libraries, resources, and shiny things. Inspired by awesome-xxx stuff. Note that only open-source projects are considered. Dead projects (not updated for 3 years or more) must be really awesome or unique to be included. Feel free to suggest other missing nice projects either by comments or pull requests. This awesome collection is also available on Delphi.ZEEF.com ❗ Note on compiler compatibility. There are compiler/language dialect compatibility badges for all projects based on a project’s description. No real compatibility with compilers not officially supported is checked. Often a code could be used with non-supported compiler/language dialect with minor modifications but there could be exceptions. Big general-purpose libraries JCL. [Delphi] [FPC] Set of thoroughly tested and fully documented utility functions and non-visual classes which can be instantly reused in your Delphi and C++ Builder projects. The library is grouped into several categories such as Strings, Files and I/O, Security, Math and many, many more. JVCL. [Delphi] Library of over 600 Delphi components developed by «Project JEDI» members. // GUI, algorithms, classes, API headers etc. Alcinoe (mirror at GH). [Delphi] Library of visual and non-visual components for Delphi. // Network: FTP/Http/NNTP/POP3/SMTP, ISAPI, WinInet Http/FTP clients; DB: Firebird/MySQL/SQLite3/Memcached/MongoDb/SphinxQL; XML/JSON Parser; ZLIB; Cryptography: AES, Blowfish, MD5, SHA, secure keyed MD5/SHA; opengl video player; FireMonkey controls; Other: Self-Balancing Binary Trees, expression evaluator Spring4D. [Delphi] Open-source code library for Embarcadero Delphi 2010 and higher. It consists of a number of different modules that contain a base class library (common types, interface based collection types, reflection extensions) and a dependency injection framework. Includes Encryption Library. // Collections and other containers using Generics and based on IEnumerable, probably more accurate and featured than RTL analogs; crypto: CRC, DES, MD5, SHA; file utils etc TheUnknownOnes. [Delphi] Huge heap of classes, components, utilities for almost every purpose. Nearly undocumented and seems not very up-to-date though. CNVCL. [Delphi] CnPack Component Package. Large collection of visual components, classes and utilities. // Lots of useful stuff; documentation and comments mainly in Chinese mORMot. [Delphi] [FPC] Client-Server ORM/ODM SOA MVC framework for Delphi 6 and higher, or FPC 2.7. Direct SQL/NoSQL database access, ORM/ODM over objects, RESTful ORM and SOA services via interfaces over high performance HTTP server, MVC/MVVM web sites, testing including mocks and stubs, logging, cryptography, compression, huge documentation. Redux Delphi. [Delphi] Predictable state container for Delphi apps utilizing a unidirectional data flow. Inspired by ReduxJS. Comes with Immutable Generic List. GrijjyFoundation. [Delphi] Foundation classes and utilities that are used throughout the other Grijjy Repositories. // BSON/JSON, IOCP/EPOLL sockets, socket pools, HTTP, HTTP/2, OpenSSL, ProtocolBuffers. unRxLib. [Delphi] Effort to keep RxLibrary (library of 60+ components) actual. QuickLib. [Delphi] [FPC] Quick development library (AutoMapper, LinQ, IOC Dependency Injection, MemoryCache, Scheduled tasks, Config, Serializers, Json Serialize, Chronometer, Threads, Lists, Config, Console services etc) with crossplatform support for Delphi/Firemonkey (Windows,Linux,macOS/IOS/Android) and freepascal (Windows/Linux). cwRuntime. [Delphi] [FPC] Compiler agnostic and cross platform collection of utility libraries for Delphi and FreePascal. It is heavily interface based, offering ARC based memory management features and flexible implementation abstraction, with the goal of forming a source bridge for developers familiar with the two supported compilers. Unit testing, collections/containers, multiplatform interface for loading dynamic libraries, Unicode utils, interfaces for working with streams and buffers, logging, threading, high-precision timers, sockets. minilib. [Delphi] [FPC] cross platform library, Socket wrapper (include SSL and TLS), and Database connection (SQLite, PostgeeSQL, FirebirdSQL, MariaDB), XML reader and writer, ComPort (COM1, COM2 etc). Audio Tools Library. [Delphi] For manipulating many audio formats file information. // Abandoned since 2005. Delphi ASIO & VST Project. [Delphi] Framework for writing applications using the ASIO interface and VST plugins. It comes with countless DSP algorithms all demonstrated in dozens of examples. // Not very active lately, but the trunk is in a usable state Audorra. [Delphi] [FPC] Digital audio library for Delphi and Freepascal. Using a flexible plugin architecture, it allows you to exchange the audio backend (e.g. WaveOut, OpenAL), add protocol classes (e.g. file, http) and decoders. Delphi-BASS. [Delphi] Delphi’s FMX and VCL header/wrapper units for BASS audio library plus add-ons. DSPack (abandoned, active fork is here). [Delphi] Set of components and classes to write Multimedia Applications using MS Direct Show and DirectX technologies. Delphi-OpenCV. [Delphi] Translation of OpenCV library header files in Delphi // Includes FFMPEG headers FFmpeg Delphi/Pascal Headers. [Delphi] [FPC] Open source translation of FFMPEG headers. PasLibVlc. [Delphi] [FPC] Interface to VideoLAN libvlc.dll and VCL player component for Delphi / FreePascal based on VideoLAN fevh264. [FPC] Baseline h.264 encoder. Windows and Linux are supported Image files, free drawing, barcodes etc. There are also some drawing engines in Game dev section Graphics32. [Delphi] [FPC] Designed for fast 32-bit graphics handling on Delphi, Kylix and Lazarus. Optimized for 32-bit pixel formats, it provides fast operations with pixels and graphic primitives, and in most cases Graphics32 outperforms the standard TCanvas classes. It is almost a hundred times faster in per-pixel access and about 2-5 times faster in drawing lines. GraphicEx. [Delphi] Addendum to Delphi’s Graphics.pas to enable your application to load many common image formats. This library is primarily designed to load images as background (buttons, forms, toolbars) and textures (DirectX, OpenGL) or for image browsing and editing purposes as long as you don’t need to save images. Vampyre Imaging Library. [Delphi] [FPC] Cross-platform native Object Pascal (Delphi and Free Pascal) image loading, saving, and manipulation library. CCR-EXIF (seems abandoned, list of forks on GH here). [Delphi] Library to read and write Exif, IPTC and XMP metadata from JPEG, TIFF and PSD images. KIcon. [Delphi] [FPC] This component makes sense if a more complex manipulation with icons (or better icon files *.ico) than just viewing is needed. Full PNG icon image support, correct rendering, icons with alpha channel. Delphi Twain. [Delphi] [FPC] The library allows you to easily access scanning functions from Delphi and Lazarus. Synopse PDF. [Delphi] [FPC] Fully featured Open Source PDF document creation library for Delphi, embedded in one unit. Pure Delphi code, Delphi 5 up to Delphi 10.3 Rio (and latest version of FPC), for Win32 and Win64 platforms. PowerPDF. [Delphi] VCL component to create PDF document visually. Like Forms, you can design PDF document easily on Delphi or C++Builder IDE. IGDI+. [Delphi] The free open source library allows quick and easy implementations of complex GDI+ applications, in a natural Delphi-friendly code. GLScene. [Delphi] [FPC] OpenGL based 3D library for Delphi, C++Builder and Lazarus. It provides visual components and objects allowing description and rendering of 3D scenes in an easy, no-hassle, yet powerful manner. GLScene is not just an OpenGL wrapper or utility library, it has grown to become a set of founding classes for a generic 3D engine with Rapid Application Development in mind. GLScene allows you to quickly design and render 3D scenes without having to learn the intricacies of OpenGL, if you know how to design a TForm, you’ll easily master the basic operations of GLScene. The library comes with a large collections of demos showcasing the ease of use, and demonstrating RAD wasn’t done at the expense of CPU/GPU horsepower. Andorra 2D. [Delphi] [FPC] New generation 2D Engine for Delphi and Lazarus. Andorra 2D is capable to use DirectX or OpenGL through graphic plugins. Andorra 2D is built in a very modular way and is yet easy to use. Transparent-canvas. [Delphi] Delphi VCL / Windows project for drawing semi-transparent alphablended graphics. It provides a class similar to TCanvas. Fully-justified-text. [Delphi] Delphi VCL / Windows project for text output, allowing printing of fully justified text with a variety of options. AsciiImage. [Delphi] AsciiImage-Implementation for Delphi by Alexander Benikowski based on AsciiImage by Charles Parnot. Read more on his article. // Creates scalable monochrome image from ASCII pixel map PngComponents. [Delphi] PngComponents is a set of components that allows you to include in your application real PNG files. PNG files on their own do not generate an enourmous advantage, but their support for an alpha-channel does indeed have quite a charm to it. AggPasMod. [Delphi] Modernized Pascal Anti-Grain Geometry. Based on AggPas, which is itself based on the Anti-Grain Geometry, this project offers support for the latest Delphi Versions (XE and above) and contains some helper classes (VCL components and FireMonkey interface). 2D vector graphics library. Basically, you can think of AggPas as of a rendering engine that produces pixel images in memory from some vectorial data. But of course, AGG can do much more than that. // Vector graphic library, renders SVG and much more delphi-shader. [Delphi] Hundreds of graphical effects, and a library that provides GLSL functionality in pure Delphi code. This project produces an executable with more than a hundred real-time graphical effects. All that is a 100% pascal implementation, without the use of external libraries or hardware acceleration. dglOpenGL. [Delphi] [FPC] Delphi / Pascal OpenGL header translation. DelphiZXingQRCodeEx. [Delphi] [FPC] Delphi/Lazarus port of the QR Code generating functionality from ZXing, an open source barcode image processing library. ZXing.Delphi. [Delphi] Native Object Pascal library for Delphi XE to 10.2 Tokyo that is based on the well known open source Barcode Scanning Library ZXing (Zebra Crossing). It is aimed at all of the FireMonkey mobile platforms and, starting from v3.1, it fully supports also Windows VCL applications (no dependencies on FMX.Graphics unit). Zint-Barcode-Generator-for-Delphi. [Delphi] Native Delphi port of Zint-Barcode-Generator. QuickImageFX. [Delphi] Delphi library for simplifying image load/save, conversion and transformation. Load/save png, jpg, gif and bmp. get image from different resources: file, stream, http, imagelist, associated windows icon, executable file icon, etc. Rotate, flip, grayscale and many other transformations. NativeJpg. [Delphi] Fully object-oriented Pascal implementation that allows to read and write Jpeg files. You can use this software to read and write Jpeg images from files or streams. It supports baseline and progressive Jpeg, support for metadata, as well as all conceivable lossless operations. OpenGL Pascal Toolkit. [FPC] Easy to use native pascal toolkit that allows to create and manage OpenGL contexts in a platform independent way. BGRAbitmap. [Delphi] [FPC] Drawing routines with transparency and antialiasing with Lazarus. Offers also various transforms. These routines allow to manipulate 32bit images in BGRA format or RGBA format (depending on the platform). dexif. [Delphi] [FPC] Lazarus port of Delphi EXIF Library to extract Exif Information from Images FontIconEditor. [Delphi] Simple component editor that allow you to add icons to a TImageList from a font. You can use any font you want. IconFontsImageList. [Delphi] Extended ImageList for Delphi (VCL & FMX) to simple use and manage Icon Fonts (with GDI+ support) Mundus. [Delphi] Software renderer written in Delphi. Currently supports only Win32 as it makes use of some inline assembler. Image32. [Delphi] [FPC] (Website) 2D graphics library written in Delphi Pascal. It provides an extensive range of image manipulation functions and includes a line and polygon renderer supporting a wide range of brush filling options. SVGIconImageList. [Delphi] Four engines to render SVG (Delphi TSVG, Delphi Image32, Direct2D or Cairo) and four components to simplify use of SVG images (resize, fixedcolor, grayscale, etc). Skia4Delphi. [Delphi] Cross-platform 2D graphics API for Delphi platforms based on Google’s Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images. PdfiumLib. [Delphi] Example of a PDF VCL Control using PDFium llPDFLib. [Delphi] Pure Object Pascal library to create PDF documents. This library doesn’t use any DLL or external third-party software to generate PDF files. Library includes TPDFDocument component with properties and methods like Delphi’s TPrinter but is designed to generate a PDF file. There are also some drawing engines suitable for game dev in Graphic section RecastNavigation. [Delphi] Navigation mesh construction toolset for games. Recast is accompanied with Detour, path-finding and spatial reasoning toolkit. You can use any navigation mesh with Detour, but of course the data generated with Recast fits perfectly. This is a port of the original RecastNavigation written in C++. Kraft Physics Engine. [Delphi] [FPC] Open source Object Pascal physics engine library that can be used in 3D games. Compatible with: Delphi 7-XE7 (but not with the Android and iOS targets), FreePascal >= 2.6.2 (with almost all FPC-supported targets including Android and iOS) ZenGL. [Delphi] [FPC] OpenGL Cross-platform game development library written in Pascal, designed to provide necessary functionality for rendering 2D-graphics, handling input, sound output, etc. // Not updated lately, but is working ok Asphyre aka Platform eXtended Library (PXL). [Delphi] [FPC] Cross-platform framework for developing 2D/3D video games, interactive and scientific applications. It aids the developer with mathematics, hardware control, resource management, displaying real-time graphics and text, handle user input and network communication capabilities. CrystalPathFinding. [Delphi] [FPC] Simple and effective library with an open source intended for the searching of the shortest paths by algorithms A*/WA* for maps based on tiles with 4 (simple), 8 (diagonal/diagonalex) or 6 (hexagonal) neighbors. Allegro-Pas (GitHub). [Delphi] [FPC] Wrapper to use the Allegro game library with Pascal/Delphi. Castle Game Engine. [Delphi] [FPC] Complete Pascal Game Engine. Cross-platform 3D and 2D game engine with a lot of graphic effects and a scene graph based on X3D. TileEngine. (GitHub) [Delphi] [FPC] OOP Pascal Wrapper and bindings for Tilengine 2D retro graphics engine. Tilengine is a cross-platform 2D graphics engine for creating classic/retro games with tilemaps, sprites and palettes. Its scanline-based rendering algorithm makes raster effects a core feature, a technique used by many games running on real 2D graphics chips. SDL2 (GitHub). [Delphi] [FPC] Pascal SDL 2 Headers. Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. SFML. [Delphi] [FPC] Pascal SFML Headers. SFML provides a simple interface to the various components of your PC, to ease the development of games and multimedia applications. It is composed of five modules: system, window, graphics, audio and network. Currently Delphi and FPC/Lazarus are supported. However, due to a compiler incompatibility with the Delphi compiler (solved with workarounds), FPC is recommended at the moment. pasvulkan. [Delphi] [FPC] Vulkan header generator, OOP-style API wrapper, framework and prospective Vulkan-based game engine for Object Pascal. DarkGlass. [Delphi] DarkGlass is a general purpose game engine written using Delphi. JEDI-SDL. [Delphi] [FPC] Pascal headers for SDL from JEDI. Works with Delphi, Kylix, Free Pascal, Gnu Pascal and TMT Pascal. Apus Game Engine. [Delphi] [FPC] Cross-platform library for making mostly 2D games, GUI applications and web services. Supports UI, text rendering, on-fly localization, particles, basic scripting and many lower level subsystems. Uses OpenGL/GLES and DirectX. Delphi3D Engine. [Delphi] A 3D-graphic and game engine for Delphi and Windows Ray4Laz. [FPC] A complete header translation (binding) of raylib 4.0 to Pascal. Socket communication, network protocols, encodings, etc Internet Component Suite. [Delphi] Asynchronous-based library composed of various Internet components and applications. Clients/servers for TCP, UDP, raw sockets, FTP, SMTP, POP3, NNTP, HTTP, Telnet and more. Supports SSL and TLS with the help of OpenSSL. Also includes Mime Decoder, SHA1/MD4/MD5 hashes, DES encryption. Indy. [Delphi] [FPC] Network components for Delphi, C++Builder, Delphi.NET, and FreePascal // All-in-one network library based on blocking sockets and threads. Included in default RAD studio installation since 2006. Ararat Synapse. [Delphi] [FPC] Pascal TCP/IP Library for Delphi, C++Builder, Kylix and FreePascal. Deals with network communication by means of blocking (synchronous) sockets or with limited non-blocking mode. This project not using asynchronous sockets! The Project contains simple low level non-visual objects for easiest programming without problems (no required multithread synchronisation, no need for windows message processing, etc) Great for command line utilities, visual projects, NT services, etc // TCP, UDP, ICMP, RAW; ICMP, DNS, SMTP, HTTP, SNMP, NTP, FTP, LDAP, NNTP, Telnet; IPv6; SOCKS proxy; SSL/TLS (via OpenSSL or Windows CryptoApi); PING; character code transcoding; MIME coding and decoding; CRC16, CRC32, MD5 and HMAC-MD5. SynCrtSock. [Delphi] [FPC] Features several sockets and HTTP client-server classes, including a high-performance http.sys based server under Windows, and a new thread-pool powered socket server. // Also implements http.sys binding under Windows and cURL binding under nix TML Messaging Suite. [Delphi] [FPC] Network messaging library for rapid development of extensible and scalable interfaces. Based on the peer to peer standard protocol BEEP (Blocks Extensible Exchange Protocol), defined in RFC3080 and RFC3081. libTML is suitable for many use cases and communication patterns. Equipped with a type safe data API, TML can transport hierarchical data structures fast and reliable. // The libTML Object Pascal Components are not only a language binding to the core library but a complete set of non visual components to simplify the usage of libTML with Embarcadero RAD Studio and Lazarus. DMVCFramework. [Delphi] Popular and powerful framework for web solution in Delphi. Delphi IOCP. [Delphi] Implements several network classes based on Windows IOCP technology. Socket, HTTP, Ntrip servers and clients. // Quite well documented and good styled code but Chinese only. delphi-aws-ses. [Delphi] Amazon Simple Email Service (AWS SES) library for Delphi applications. delphi-slackbot. [Delphi] Delphi library to send messages on Slack using slackbot. Kitto. [Delphi] Allows to create Rich Internet Applications based on a data model that can be mapped onto any database. The client-side part uses ExtJS (through the ExtPascal library) to create a fully AJAX application, allowing you to build standard and advanced data-manipulating forms in a fraction of the time. Kitto is aimed at Delphi developers that need to create web application without delving into the intricacies of HTML, CSS, JavaScript or learning to use a particular library such as ExtJS, yet it allows access to the bare metal if required. Daraja Framework. [Delphi] [FPC] Lightweight HTTP server framework for Object Pascal (Delphi 2009+ / Free Pascal 3.0). Implementing RESTful services is supported via the daraja-restful extension. Alcinoe. FTP/Http/NNTP/POP3/SMTP, ISAPI, WinInet Http/FTP clients. Fundamentals Code Library. Blocking TCP client/server, HTTP(S) via SSL3/TLS1.0/TLS1.1/TLS1.2 (fully native). mORMot. RESTful ORM and SOA services via interfaces over high performance HTTP server, MVC/MVVM web sites SDriver. [Delphi] Delphi wrapper for Slack API. Hprose for Delphi/Lazarus. [Delphi] [FPC] High Performance Remote Object Service Engine. It is a modern, lightweight, cross-language, cross-platform, object-oriented, high performance, remote dynamic communication middleware. It is not only easy to use, but powerful. This project is the implementation of Hprose for Delphi/Lazarus. TelegAPI. [Delphi] Library for working with Telegram messenger Bot API in Delphi. fp-telegram. [FPC] Library for working with Telegram bots API in FreePascal/Lazarus. DelphiZeroMQ. [Delphi] Delphi implementation of ZeroMQ Majordomo protocol and CZMQ high level binding. GrijjyFoundation. IOCP/EPOLL sockets, socket pools, HTTP, HTTP/2, OpenSSL, ProtocolBuffers. STOMP Client. [Delphi] [FPC] STOMP client for Embarcadero Delphi and FreePascal. The project can use INDY (Delphi) or Synapse (Delphi or FreePascal). delphiXero. [Delphi] XERO cloud accounting API for Delphi. BesaSoap. [Delphi] The BesaSoap library is designed to help programmers develop faster and more native web service client applications. Represents C# or Java like native class support, nullable data types and custom attributes. IndySoap. [Delphi] Open Source Library for implementing Web services using Delphi/CBuilder Compilers. IndySoap isn’t tied to Indy for transport services, though Indy based transport services are included. Fano Framework. [FPC] Web application framework for modern Pascal programming language. It is written in Free Pascal. Internet Tools. XPath/XQuery/JSONiq/CSS/HTML; functions to perform HTTP/S requests on Windows/Linux/macOS/Android, an XSLT-inspired webscraping language, and an auto update class. Delphi Cross Socket. [Delphi] Delphi cross platform socket library (Chinese). Uses different IO models for different platforms: IOCP (Windows), KQUEUE (FreeBSD(macOS, iOS, etc)), EPOLL (Linux(Linux, Android)). ToroKernel. [FPC] This is a library-kernel that allows freepascal applications which are specially ported to run alone in the system. Toro is compiled within the user’s application thus resulting in a single binary that can boot on baremetal or as a guest in a modern hypervisor,e.g., hyperv, kvm, qemu, firecraker. ToroKernel addresses the development of microservices by providing a dedicated API. Horse. [Delphi] [FPC] Fast and minimalist web framework. Horse allows to create powerful RESTful servers without effort. Focused on microservices. Bauglir WebSocket. [Delphi] [FPC] WebSocket server/client implementation based on Ararat Synapse. Delphi-RabbitMQ. [Delphi] RabbitMQ driver for Delphi DelphiGrpc. [Delphi] Implementation of the realtime and streaming gRPC protocol Google API for Delphi. [Delphi] Google API for Delphi Delphi JOSE and JWT Library. [Delphi] Delphi implementation of JOSE (JSON Object Signing and Encryption) and JWT (JSON Web Token) WiRL. [Delphi] Project was created to simplify RESTful service implementation in Delphi but, more importantly, to enable maximum interoperability with REST clients written in other languages and tools OpenSSL. [Delphi] Delphi wrapper for OpenSSL Thrift Delphi Software Library. [Delphi] Lightweight, language-independent software stack for point-to-point RPC implementation. Thrift provides clean abstractions and implementations for data transport, data serialization, and application level processing. The code generation system takes a simple definition language as input and generates code across programming languages that uses the abstracted stack to build interoperable RPC clients and servers. Thrift makes it easy for programs written in different programming languages to share data and call remote procedures. With support for 28 programming languages, chances are Thrift supports the languages that you currently use. Delphi Modbus. [Delphi] [FPC] Implementation of a ModbusTCP protocol master and slave over TCP/IP. RESTRequest4Delphi. [Delphi] RESTRequest4Delphi is a API to consume REST services written in any programming language. Designed to facilitate development, in a simple and minimalist way. LazWebsockets. [FPC] This provides a small Websocket server and client implementation written for the FPC and Lazarus. It is fully based upon the fcl ssockets unit and therefore independent from any additional dependencies except from the FCL. NetCom7. [Delphi] This set of components is the fastest possible implementation of socket communications, in any language; this is an extremely optimised code on TCP/IP sockets. VK API. [Delphi] Library for working with Vkontakte (Russian social network) API in Delphi. Full API (with Bot samples). AWS SDK for Dephi. [Delphi] Unofficial AWS (Amazon Web Services) SDK for Delphi. WARNING! Requires paid libs from TMS Voice Communication. [Delphi] Voice Communicator Components. // Implement RTP, RTSP, SHOUT, SNTP, STUN protocols and multiple audio format endocing/deconding libPasCURL. [Delphi] [FPC] Bindings and wrapper around cURL library. libcurl is the library is using for transferring data specified with URL syntax, supporting HTTP, HTTPS, FTP, FTPS, GOPHER, TFTP, SCP, SFTP, SMB, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP. Delphi_SChannelTLS. [Delphi] Helper functions and socket classes to perform TLS communication by means of WinAPI (SChannel). Includes Overbyte ICS TWSocket descendant class. Delphi-Kafka. [Delphi] High performance Delphi client based on Librdkafka with full protocol support. DelphiKafkaClient. [Delphi] Cross platform Delphi client/wrapper for Apache Kafka. Windows (i386/x64) and Linux (x64) are supported. Tested on Delphi 10.4, but should work with all modern Delphi releases. While it appears to work as expected, the project is a proof of concept and has never been tested in production. KafkaGate. [FPC] Apache Kafka Free Pascal bindings using librdkafka and ZeroMQ. delphi-mqtt. [Delphi] MQTT server and client components for Delphi based on ICS network components. mqtt. [FPC] Message Queue Telemetry Transport (MQTT) client and server component pack for Lazarus/FPC with demo applications. For the client and server demo applications the LNet components are used. LNet. [FPC] Lightweight Networking library written in Free Pascal. Asynchronous, TCP/UDP communications classes. LTCP, LUDP, LTELNET, LFTP and LSMTP are example programs. NamedPipeExchange. [Delphi] Server and client classes for communication via named pipes. Based on FWIOCompletionPipes unit. delphizmq. [Delphi] [FPC] This is a binding for ZeroMQ. Should work with Delphi7+ versions and with FPC 2.6.0. The package contains a wrapper (zmq.pas), and a higher level api (zmqapi.pas). It should work with ZMQ 2.2.x, and with 3.2.x. For version 2.2.x undefine zmq3, in zmq.inc. The dll’s are not part of this repo, you can download the appropriate from the official distro, and rename it to libzmq.dll. Synaser. [Delphi] [FPC] Library for blocking communication on serial ports. It is non-visual class as in Synapse, and programmer interface is very similar to Synapse. Async Professional (Newest and maintained version for recent compiler version only). [Delphi] Comprehensive communications toolkit for Embarcadero Delphi, C++Builder, & ActiveX environments. It provides direct access to serial ports, TAPI and the Microsoft Speech API (TTS/Speech recognition). It supports faxing, terminal emulation, VOIP, RAS dial & more. // Seems outdated (last update in 2011) but adapted to XE and should be easy to use in newer versions. The project is also very thoroughly documented. Second link points to an adapted version for newest compiler versions. TComPort. [Delphi] Delphi/C++ Builder serial communications components. It is generally easy to use for basic Serial Communications purposes. // Seems abandoned since 2011 Large sets of GUI controls Cindy components. [Delphi] Packages with 71 components: VCL controls (labels, buttons, panels, Edits, TabControls, StaticText) with features like background gradient, colored bevels, wallpaper, shadowText, caption orientation etc. Orpheus (Newest and maintained version for recent compiler version only). [Delphi] Award-winning UI toolkit for Borland Delphi & C++Builder. It contains over 120 components covering everything from data entry to calendars and clocks. Other noteworthy components include an Object Inspector, LookOut bar & report views. // Advanced edits, comboboxes, grids + component (de)serializers. GUI components look rather old-style, theme support might be limited. Package contains many demos but no docs seem available. Second link points to an adapted version for newest compiler versions. KControls. [Delphi] [FPC] Control components. All controls have been written with the aim to become both cross-IDE compatible (Delphi/C++Builder VCL and Lazarus LCL) and cross-platform compatible in Lazarus. // Most useful are TKGrid with its DB-aware heritage TKDBGrid — a very full-featured grid implementation incl. inplace editors. There’s also hex editor, print preview, editors, labels, buttons etc. D.P.F Delphi Android / D.P.F Delphi iOS native components. [Delphi] D.P.F Delphi Native Components, 100% iOS Performance and styles. Develop iPhone & iPad & iPod Touch applications with fast native performance and native styles. Use native Android controls and services. Fast native performance. Mixed with FM VCL controls. Can be quick updated with latest Android controls & features. Essentials. [Delphi] Contains 13 native VCL controls for Embarcadero Delphi and C++Builder. The controls include drop-down calendars and calculators, roll-up dialogs, 3-D labels, tiled backgrounds, scrolling messages, menu buttons, and more. FreeEsVCLComponents. [Delphi] Free library of VCL components for Delphi and C++Builder. This new controls and components to improve the appearance applications and to better user experience. Components support visual styles and has modern style. All components has best support transparency, not flicker, and has support interesting possibility for double buffering for TGraphicControl heirs. SpTBXLib. [Delphi] Add on package for Toolbar2000 components, it adds the following features: Skins, Unicode support, Custom painting events and many more. Kastri. [Delphi] Cross-platform library which builds upon the existing RTL and FMX libraries in Delphi. Supports a number of newer APIs that you won’t find in FMX/RTL, and «backfills» for missing APIs DelphiUCL. [Delphi] UWP controls for Delphi VCL. DDuce. [Delphi] Components, modules, extensions and primitives using Delphi new language features like operator overloading, attributes, generics, anonymous methods and extended RTTI providing some new powerful tools to extend the developer’s creativity. // Property editors, grids, XML Tree, etc EasyListView (seems abandoned, active fork on GH here). [Delphi] Part of VirtualShellTools for the Listview but can be used for a TListview Replacement that is faster and more customizable. // Feature-rich Listview implementing virtual (callback-based) MVC paradigm. VirtualTreeView. [Delphi] (VirtualTreeView-Lazarus port to FPC [FPC] ). Treeview control built from ground up. Many years of development made it one of the most flexible and advanced tree controls available today. // Extremely flexible visual component implementing virtual (callback-based) MVC paradigm. Could be also used as a listview or grid. Used in RAD Studio GUI. Delphi Chromium Embedded. [Delphi] Embedding Chromium in Delphi, tested on Delphi 2010, XE, XE2, Delphi 7. // Several Chromium DLLs required TFrameStand. [Delphi] Easily use TFrame(s) in your FireMonkey (FMX) applications to gain visual consistency though the whole user experience and easily add modern looking elements like effects and transitions. TPrintPreview. [Delphi] Print Preview Component for Delphi Vcl Win32/Win64 VolgaDB. [Delphi] Pretty customizable DBgrid for Delphi. TCustomGrid descendant. CheckBox, ComboBox column styles. Also includes TVolgaDBEdit that replaces TDBEdit, TDBComboBox, TDBLookupCombo, TDBLookupTree andTDBDatePicker in one component. TVolgaDBEdit may be DB-aware and non DB-aware. // Seems abandoned since 2013 TTreeListView. [Delphi] [FPC] This component is a mix between TTreeView and TListView and can paint a tree whose nodes have additional information sorted in columns. neTabControl. [Delphi] FireMonkey control for Delphi. It builds on the native TabControl and adds a number of features. ATTabs. [Delphi] [FPC] Delphi/Lazarus component for lite tabs. OS independent, fully custom drawn. RiverSoftAVG Charting Component Suite. [Delphi] Free (for non-commercial use) with source charting Suite for adding charts and graphs to your programs. For Delphi 2010-Tokyo (Win32/Win64/macOS/iOS/Android) and Appmethod (Object Pascal). DzHTMLText. [Delphi] [FPC] Visual component that allows you to specify a formatted text in a label, using almost the same syntax used in HTML code. SMDBGrid component. [Delphi] The successor of TDBGrid with the extended features. Is able to display multiline wordwrap column titles, checkboxs for boolean fields, a convenient select of records from the keyboard and mouse via checkboxs, extanded Indicator column, fixing of columns, an opportunity to exclude insert and delete of records in the DBGrid, own standard PopupMenu, save/restore of a column states, processing of additional events etc. Multilanguage resources. decTreeView. [Delphi] The decTreeView library is an alternative implementation of the TreeView (SysTreeView32) control TeeGrid. [Delphi] [FPC] Lightweight full-featured Grid / Tabular control. For Embarcadero RAD Studio 2009 and up to Sydney 10.4, Delphi and C++, VCL and Firemonkey frameworks (all platforms: Windows 32 and 64 bit, Mac OSX, Android and iOS), and Lazarus FreePascal (Windows, Linux, etc) AXW Ribbon. [Delphi] Ribbon component with the Office 2016 style. Works with Delphi 7 and up to the current Delphi version. Will probably compile with Delphi 6 and possibly Delphi 5. SynEdit (mirror at GitHub). [Delphi] Syntax highlighting edit control, not based on the Windows common controls. SynEdit is compatible with both Delphi and Kylix LazEdit. [FPC] General text editor with syntax highlighting and tools to help edit HTML. ATSynEdit. [FPC] Multi-line editor control for Lazarus including syntax highlighting. QDSEquations. [Delphi] Equation editor for Delphi and Lazarus that allows you to enter and display math formulas of any complexity, from simple Greek symbols to matrixes and complex integral expressions. TBCEditor. [Delphi] A syntax highlighting edit control for RAD Studio (Delphi/C++ Builder) with code folding, completion proposal, matching pair, minimap, sync edit, word wrap, etc. External highlighter and color scheme files are in JSON format which can be also loaded from a stream. ATViewer (mirror at GitHub). [Delphi] Delphi components to view various file types: text, binary, images, multimedia, webpages, etc. // Used in Universal Viewer software. Could be used to display hex dumps, features fast display of unlimited size files/streams. Supports Total Commander Lister plugins. ATImageMap (mirror at GitHub). [Delphi] Component designed to show many images (parts of the whole image) as a single map. For example, you may have array of images, 200 by X, and 100 by Y and control will show them as a single map. Component also allows to draw paths: each path consists of many lines, points, and icons. HtmlViewer. [Delphi] [FPC] Delphi/Lazarus HtmlViewer/FrameViewer. // Html visualiser supporting majority of tags, inline styles and CSS. SciDe. [Delphi] [FPC] Sciter (Embeddable HTML/CSS/script engine) wrapper for Delphi. CEF4Delphi. [Delphi] [FPC] Project to embed Chromium-based browsers in applications made with Delphi or Lazarus/FPC WebView4Delphi. [Delphi] [FPC] Project to embed Chromium-based browsers in applications made with Delphi or Lazarus/FPC for Windows. GMLib (Google Maps Library) (seems abandoned, active fork on GH here and here). [Delphi] Components for Delphi/C++ Builder that encapsulate the GoogleMaps API to administrate a map, markers, polygons, rectangles, polylines, etc. All objects that you can put into a map. VCL Styles Utils. [Delphi] Collection of classes and style hooks, which extend, fix QC reports and add new features to the VCL Styles. // Collection of patches/enhancements that promote stock VCL style engine to a new level. Styling for Inno Setup and NSIS also available. TaskbarListComponents. [Delphi] Set of components designed as Delphi wrappers for the Windows 7 Taskbarlist Interfaces (e.g. ITaskbarlist3) // Requires JVCL TFireMonkeyContainer. [Delphi] Delphi VCL component to host a FMX HD or 3D form. It means you can embed a FireMonkey (FMX) form as a control in a VCL form, so you can design a FMX form and use it in your VCL app. PascalSCADA. [Delphi] [FPC] Set of components (framework) for Delphi/Lazarus to make easy the development of industrial applications (HMI=Human Machine Interface/SCADA=System Control And Data Acquisition). It runs on Windows, Linux and FreeBSD. Windows Ribbon Framework for Delphi. [Delphi] This Delphi library allows Delphi developers to use of the Windows Ribbon Framework in their Delphi applications. This library uses the native Windows library to implement the Ribbon functionality. It does not emulate the Ribbon user interface like other Delphi component sets do (or Delphi’s built-in Ribbon emulation components). DKLang. [Delphi] DKLang Localization Package is a set of classes intended to simplify the localization of applications written in Delphi. GNU Gettext for Delphi, C++ and Kylix. [Delphi] GNU GetText translation tools for Borland Delphi and Borland C++ Builder. OpenWire. [Delphi] The library allows writing advanced VCL and FireMonkey components for rapid codeless application development. The components developed with the library allow creation of complex applications with zero lines of program code. SynTaskDialog. [Delphi] [FPC] Implement TaskDialog window (native on Vista/Seven, emulated on XP) AnyiQuack. [Delphi] jQuery-like control animation framework. TLanguages. [Delphi] Localization tool for VCL and FMX. BearLibTerminal. [Delphi] Provides a pseudoterminal window with a grid of character cells and a simple yet powerful API for flexible textual output and uncomplicated input processing. // Multiplatform dynamic library that has Delphi bindings Dam. [Delphi] [FPC] Delphi and Lazarus Message Dialogs with Formatted Text. Windows 7 Taskbar Components. [Delphi] One of the most notable feature in Windows 7 is a new Windows taskbar. It offers a new way of controlling your desktop, managing your windows, and launching applications. ZeosLib. [Delphi] [FPC] Set of database components for MySQL, PostgreSQL, Interbase, Firebird, MS SQL, Sybase, Oracle and SQLite. Unified Interbase. [Delphi] Set of components to use Interbase, FireBird and YAFFIL. These components were born from the need to use Interbase, FireBird or Yaffil indifferently as fast as possible in a Multithreading environment, a Server for example. ASQLite. [Delphi] Delphi SQLite set of DAC components from aducom software, based on their latest release for Delphi 2009, and updated to support newer editions of Delphi as included in RemObjects Data Abstract for Delphi. TxQuery. [Delphi] TDataSet descendant component that can be used to query one or more TDataSet descendant components using SQL statements. It is implemented in Delphi 100% source code, no DLL required, because it implements its own SQL syntax parser and SQL engine. Delphi-ORM. [Delphi] Object-Relational Mapping for Delphi XE2-7 (Win32). Supports for FirebirdSQL, SQLServer and SQLite3. delphimemcache. [Delphi] Implements a thread safe client for memcached. // Requires Indy 10 SynDB (docs). [Delphi] [FPC] High performance direct access to SQLite3, Oracle, MSSQL, PostgreSQL, Firebird, MySQL, ODBC, OleDB, including remote HTTP connection and direct JSON support. SynMongoDB (docs). [Delphi] [FPC] Offers direct low-level access to any MongoDB server, its custom data types, JSON or via TDocVariant custom variant document storage. DSharp. [Delphi] Small library for providing data binding in Delphi. It does not require special components to data bind to properties. It also provides dependency injection, MVVM and more interesting utilities. ghORM. [FPC] Object Relational Mapping unit to ease database access from Free Pascal, by abstracting the backend and simple data retrieval (with filtering), insertion and update. tDBF. [Delphi] [FPC] Native dBASE III+, dBase IV and dBase 2k data access component for Delphi, BCB, Kylix, FreePascal. It allows you to create very compact database programs which don’t need any special installer programs. The DB engine code is compiled right into your executable. Redis client [Delphi] Delphi Redis Client version 2 is compatible with Delphi 10.1 Berlin and better. WARNING! If you use an older Delphi version you have to use Delphi Redis Client Version 1 wich works for Delphi 10 Seattle, XE8, XE7, XE6 and XE5 (should works also with older versions). This client is able to send all Redis commands and read the response using an internal parser. QDAC3 (SVN: svn://www.qdac.cc/QDAC3). [Delphi] Stands for quick data access components. Useful units such as QJson (easy to use json unit), QWorker (job delivery) etc. // Description and comments in Chinese, author is not good at English. Haven’t tested this library by myself. InstantObjects. [Delphi] Integrated framework for developing object-oriented business solutions in Delphi. The framework provides the foundation for the development process as well as the engine that powers the final application. InstantObjects offers: Model realization in the Delphi IDE via integrated two-way tools; Object persistence in the most common relational databases or flat XML-based files; Object presentation via standard data-aware controls. SynBigTable. [Delphi] [FPC] Class used to store huge amount of data with fast retrieval. tiOPF. [Delphi] [FPC] Object Persistent Framework written in Object Pascal, for use with Delphi and Free Pascal (FPC) compilers. tiOPF simplifies the mapping of an object oriented business model into a relational database. Persistence layers are available for Firebird, Oracle, MS SQL Server, MySQL, PostgreSQL, SQLite, NexusDB, XML, CSV, TAB, Remote (via HTTP) and many more. It also allows you to use your choice of database connection components, like IBX, dbExpress, DOA, SqlDB, FBLib etc. hcOPF. [Delphi] Object Persistent Framework written in Embarcadero’s Delphi (Object Pascal). This Value Type Framework provides a base class (ThcObject) composed of attribute objects that can be automatically persisted to an object store (normally an RDBMS). DelphiCassandra. [Delphi] Delphi driver classes to communicate with Cassandra database. DelphiCouchbase. [Delphi] Delphi driver classes to communicate with Couchbase database. DelphiMongoDB. [Delphi] Delphi driver classes to communicate with MongoDB database. QuickORM. [Delphi] [FPC] QuickORM is a simple RestServer and Restclient based on mORMot framework. Provides a fast implementation of client-server applications in few minutes. iORM. [Delphi] Delphi ORM interface based useful to develop desktop and mobile application. d-ORModel. [Delphi] ORM for Delphi, based on models and object fields. LINQ support, fully typed and compile time checks. Using script engine in your applications Pascal Script. [Delphi] [FPC] Free scripting engine that allows you to use most of the Object Pascal language within your Delphi or Free Pascal projects at runtime. Written completely in Delphi, it is composed of a set of units that can be compiled into your executable, eliminating the need to distribute any external files. Pascal Script started out as a need for a good working script, when there were none available at the time. DWScript. [Delphi] Object-oriented scripting engine for Delphi based on the Delphi language, with extensions borrowed from other Pascal languages (FreePascal, Prism, etc.). It introduces a few Pascal language extensions of its own as well. Delphi-JavaScript. [Delphi] JavaScript engine for delphi based on Mozilla’s Spidermonkey. // Spidermonkey DLL required Blaise. [Delphi] Open-source object-oriented scripting language. Language features: Object-oriented; Unicode support; Optional typing, ie dynamic or static typing; Richly typed; Higher-level mathematics support, for example Complex numbers, Rational numbers and Matrices; Virtual Machine architecture; Co-routines; Familiar language syntax, influenced by Object Pascal, Python and Ada. SpiderMonkey. [Delphi] [FPC] Binding for Mozilla JavaScript engine, including JIT and multi-threading, with easy objects access via Delphi variants. // Spidermonkey DLL required BESEN. [Delphi] [FPC] Complete ECMAScript Fifth Edition Implementation in Object Pascal, which is compilable with Delphi >=7 and Free Pascal >= 2.5.1 (maybe also 2.4.1). Python for Delphi (P4D). [Delphi] [FPC] Set of free components that wrap up the Python dll into Delphi and Lazarus (FPC). They let you easily execute Python scripts, create new Python modules and new Python types. You can create Python extensions as dlls and much more CrystalLUA. [Delphi] Lua binding (Delphi6-2007). // LUA DLL required lua4delphi. [Delphi] Delphi binding for Lua 5.1 language. // LUA DLL required chakracore-delphi. [Delphi] [FPC] Delphi and Free Pascal bindings and classes for Microsoft’s ChakraCore JavaScript engine library. VerySimple.Lua. [Delphi] Lua Wrapper for Delphi XE5-D10.1 which automatically creates OOP callback functions for Delphi Lua. // LUA DLL required QuickJS-Engine. [Delphi] [FPC] Delphi and Free Pascal bindings for Bellard’s QuickJS JavaScript Engine. Machine learning and neural networks FWZip. [Delphi] Classes to work with Zip archives using Store and Deflate methods, supports ZIP64, DataDescryptors, PKWARE encryption, NTFS attributes, Utf8 in filenames. // Uses stock ZLIB.obj that gets compiled into binary. Comments and description in Russian. SynLZ SynLZO SynZip PasZip. [Delphi] [FPC] Several high speed compression units, featuring ZIP/LZ77 Deflate/Inflate, LZO and SynLZ algorithm, in pascal and optimized assembler. Delphi zlib. [Delphi] Wrapper for zlib.obj originally used by Borland. Delphi up to XE3 supported. DIUcl. [Delphi] DIUcl is a lossless compression library with extremely fast and small (200 bytes only!) ASM decompressor. Compression times and ratios are similar to those of deflate/zip and bzip2. Delphi port of the popular UCL Compression Library, which is also used by the popular and well known UPX Ultimate Packer for eXecutables. Delphi Encryption Compendium (DEC). [Delphi] [FPC] Cryptographic library for Delphi & C++ Builder. Symmetric cryptographic functions: Blowfish, Twofish, IDEA, Cast128, Cast256, Mars, RC2, RC4, RC5, RC6, Rijndael / AES, Square, SCOP, Sapphire, 1DES, 2DES, 3DES, 2DDES, 3DDES, 3TDES, 3Way, Gost, Misty, NewDES, Q128, SAFER, Shark, Skipjack, TEA, TEAN; Block cipher modes of operation: CTSx, CBCx, CFB8, CFBx, OFB8, OFBx, CFSx, ECBx, GCM; Hashes: MD2, MD4, MD5, RipeMD128, RipeMD160, RipeMD256, RipeMD320, SHA, SHA1, SHA224, SHA256, SHA384, SHA512, SHA3-224, SHA3-256, SHA3-384, SHA3-512, Shake128, Shake256, Haval128, Haval160, Haval192, Haval224, Haval256, Tiger, Panama, Whirlpool, Whirlpool1, WhirlpoolT, Square, Snefru128, Snefru256, Sapphire. LockBox (Newest and maintained version for recent compiler version only). [Delphi] Delphi library for cryptography. Currently supported Delphi XE6. It provides support for AES, DES, 3DES, Blowfish, Twofish, SHA2 (including the new SHA-512/224 & SHA-512/256), MD5; ECB, CBC, CFB8, CFB, CTR, ECB, OFB, PCBC chaining modes, RSA digital signature and verification. Has interface to OpenSSL library. // Check out this page as well for alternative version. SynCrypto. [Delphi] [FPC] Fast cryptographic routines (hashing and cypher), implementing AES, XOR, RC4, ADLER32, MD5, SHA1, SHA256 algorithms, optimized for speed (tuned assembler and VIA PADLOCK optional support). TForge. [Delphi] [FPC] Open-source crypto library written in Delphi, compatible with Free Pascal Compiler. MD5, SHA1, SHA256, CRC32, Jenkins-One-At-Time, HMAC, PBKDF1, PBKDF2, AES, DES, RC4, RC5, Salsa20. Fundamentals Code Library. Hashes: XOR, CRC, Adler, MD5, SHA, secure keyed MD5/SHA, etc; Cipher: AES, DES, FUNE, RC2/4, RSA. Alcinoe. AES, Blowfish, MD5, SHA, secure keyed MD5/SHA. DCPcrypt (fork #1), DCPcrypt (fork #2). [Delphi] Suite of cryptographic components for Delphi. bcrypt. [Delphi] A library to help you hash passwords. MurMur-Delphi. [Delphi] MurMur1/2/3 fast seeded hashing algorithms port in pure-pascal. HashLib4Pascal. [Delphi] [FPC] Object Pascal hashing library released under the permissive MIT License which provides an easy to use interface for computing hashes and checksums of data. It also supports state based (incremental) hashing. CRC, Adler, Murmur, Jenkins, MD5, SHA, Blake, many more. SimpleBaseLib4Pascal. [Delphi] [FPC] Simple to use Base Encoding Package for Delphi/FreePascal Compilers that provides at the moment support for encoding and decoding various bases such as Base16, Base32 (various variants), Base58 (various variants) and Base64 (various variants) and Base85 (various variants). CryptoLib4Pascal. [Delphi] [FPC] Object Pascal cryptographic library released under the permissive MIT License. Ciphers: AES (128, 192, and 256), Rijndael, Blowfish, Speck, ChaCha, (X)Salsa20, DSA, (DET)ECDSA (supported curves: NIST, X9.62, SEC2, Brainpool), ECNR, ECSchnorr, EdDSA (Ed25519, Ed25519Blake2B) dataset-serialize. [Delphi] [FPC] This component is a JSON serializer for the DataSet component. Allows you to convert JSON to DataSet, DataSet to JSON, and export and load the structure of DataSet fields in JSON format. Compatible with VCL projects, FMX and uniGUI (framework). OmniXML. [Delphi] XML parser written in Delphi. Full support for Document Object Model (DOM) Level 1 specification; Supports Extensible Markup Language (XML) 1.0 (Second Edition) specification; Has built-in support for different code pages (main 8-bit code pages, UTF-8, UTF-16); Is compatible with MS XML parser; Fast parsing even large and highly structured documents; Includes helper functions to ease processing XML documents; Simplified XPath support. SAX for Pascal. [Delphi] [FPC] Designed to implement the Simple API for XML Parsing in Pascal/Delphi. // Callback-based XML parser, useful for processing huge XML streams. Abandoned since 2004 but is almost the only SAX implementation available. KDS XML. [Delphi] Class library for streamed parsing, validating and generating XML. It is written in Object Pascal/Delphi and works on Win32 (Delphi) and Linux (Kylix). Parts of it depend on the SAX for Pascal interface specifications. // Seems dead. XML Partner. [Delphi] Helps add the power of XML to Borland Delphi, C++ Builder, and Kylix projects through native, easy to use VCL and CLX components. These powerful components simplify the process of creating, modifying, and parsing XML data documents. // Seems dead, check out this page for probably newer version. SuperObject. [Delphi] [FPC] Parser/writer for JSON data format. This toolkit is designed to work with Delphi and FreePascal (win32, win64, linux32, linux64, macOS Intel). Supports reading/writing XML as well. Libxml2 for pascal. [Delphi] [FPC] Pascal units accessing the popular XML API from Daniel Veillard. This should be usable at least from Kylix and Delphi, but hopefully also from other Pascal compilers (like freepascal). NativeXml. [Delphi] This component contains a small-footprint Object Pascal (Delphi) XML implementation that allows to read and write XML documents. You basically only need one unit and you can simply add it to the «uses» clause. You can use this software to read XML documents from files, streams or strings. The load routine generates events that can be used to display load progress on the fly. You can also use it to create and save XML documents. Chimera. [Delphi] Open Source (MIT License) library for Delphi XE2 which provides a fast and cross platform JSON generator/parser (serializer/deserializer) under a license that doesn’t suck. SynCommons. [Delphi] [FPC] High speed JSON library, using TDocVariant custom variant type for storage and access. SynCrossPlatformJSON. [Delphi] [FPC] High speed cross-platform JSON library, using TJSONVariant custom variant type for storage and access. Json Data Objects. [Delphi] This Delphi unit contains a JSON parser that supports Delphi 2009-10Seattle and the platforms Win32, Win64 and ARM Android (MacOS and iOS may work). TinyJSON (mirror at GH). [Delphi] This is a small and clean library for associative arrays with Boolean / Integer / Float / WideString values. Allows import (export) from (to) JSON text. Extensive error-checking. Uses FunHash (by Sokolov Yura), HatTrie (by Daniel C. Jones), FastInt64 and FastMove (by FastCode project). JSON delphi library. [Delphi] This is a delphi library implementing JSON data format and objects structure. Lightweight and fast. dwsJSON. [Delphi] [FPC] dwsJSON is a unit that supports JSON parsing/creating, it’s part of DWScript but relatively «standalone», in that if you add it in your Delphi (or FPC) projects, it won’t pull the whole of DWScript library, and thus can be used anywhere you need. delphi-yaml. [Delphi] Delphi 7 compatible bindings for libyaml, YAML parser and emitter library implemented in C. Four layers of bindings are proposed. XSuperObject. [Delphi] Delphi Cross Platform Rapid JSON Delphi-JsonToDelphiClass (Newer fork. [Delphi] Generates Delphi Classes based on JSON string (Json To Delphi Class Generator / JSON Data Binding Tool). Also includes unit for interaction with GitHub. XML Parser. [Delphi] [FPC] Lightweight ObjectPascal XML parser for Delphi and FreePascal. By leaving out syntax checking, well-formedness checks and/or validation, and by choosing a progressive scanning technique, this parser is very fast. HTML parser. [Delphi] HTML parser. Supports Windows, macOS, iOS, Android platform. Comments in Chinese Neslib. [Delphi] Ultra light-weight and cross-platform XML library for Delphi. DJSON. [Delphi] Delphi JSON object mapper fast-html-parser. [Delphi] [FPC] Fast HTML Parser THTMLWriter. [Delphi] Class library that enables the developer to create HTML and HTML documents. It uses the fluent interface to make creating HTML text easy and natural. Tools for Pascal and other languages Next Delphi Yacc & Lex. [Delphi] Parser generator toolset for Delphi. Abstract Syntax Tree Builder. [Delphi] With DelphiAST you can take real Delphi code and get an abstract syntax tree. One unit at time and without a symbol table though. Castalia-Delphi-Parser. [Delphi] These files make up a hand-written high speed parser for the Object Pascal dialect known as «Delphi». The original work was done by Martin Waldenburg in the late 1990s, and the project was abandoned sometime before 2003, when I found the code and began working on it. I have kept it updated as necessary to work with my project, called «Castalia». CrossPascal. [Delphi] Aims to be a Delphi 7 compatible cross-platform source-to-source compiler (together with the new unicode string types from XE3 but where ansistring is still the default string type for to be still Delphi 7 compatible) which generates intermediate C code. // Quite interesting project though seems abandoned pas2js, docs. [Delphi] [FPC] An open source Pascal to JavaScript transpiler. It parses Object Pascal and emits JavaScript. The JavaScript is currently of level ECMAScript 5 and should run in any browser or in Node.js (target «nodejs»). Basically, Delphi 7 syntax is supported. Used in tools like TMS WebCore and Elevate Web Builder. Libraries that implement dynamic memory allocation ScaleMM. [Delphi] Fast scaling memory manager for Delphi BrainMM. [Delphi] Extremely fast memory manager for Delphi. // Advanced memory allocation functions for faster aligned operations. FastMM4-AVX. [Delphi] [FPC] FastMM4 fork with AVX support and multi-threaded enhancements (faster locking) Low-level helper stuff: memory, threading etc OmniThreadLibrary. [Delphi] Simple to use threading library for Delphi. // Easy integration of async processes in your app Delphi Detours Library. [Delphi] [FPC] Library allowing you to hook Delphi functions and object methods and Windows API functions. It provides an easy way to insert and remove hook. // Supports x64, calling original functions, multi hooks, COM/Interfaces/win32api, object methods hooking, fully thread-safe, Delphi 7/2005-2010/XE-XE7 & Lazarus/FPC, 64 bit address is supported. MemoryModule. [Delphi] [FPC] With the MemoryModule engine you can store all required DLLs inside your binary to keep it standalone. Additional hook units allow transparent using of MM engine thus allowing switching MM/WinAPI loading as well as enabling 3rd party dynamic-load DLL interfaces that are unaware of MM (tested with Interbase Express components and Firebird client library). MemoryModule is a Pascal port of Joachim Bauch’s C MemoryModule. DirectoryWatcher. [Delphi] Watch changes in directories on different platforms (Windows/Linux/Mac OS). ezthreads. [FPC] simple to use threading library AsyncCalls. [Delphi] Asynchronous function call framework Engines to generate text output based on templates SynMustache. [Delphi] [FPC] Delphi implementation of the Mustache template language, supporting Delphi 6 up to Delphi 10 Seattle (and FPC/Lazarus compilation). Delphi Template Engine. [Delphi] Template engine designed to be used as a library in Delphi (mainly Delphi 7) applications, allowing developers to use templating on their software with no worry about implementing it. MustaPAS. [Delphi] [FPC] Mustache implementation in simple procedural Pascal. Sempare Template Engine. [Delphi] The template engine allows for flexible text manipulation. It can be used for generating email, html, source code, xml, configuration, etc. It is very easy to use, flexible and extensible, where templates are readable and maintainable. It supports: conditions, looping, custom functions and referencing data via RTTI. XE4, XE8+ DVD Chief Template Engine. [Delphi] [FPC] Fork of abandoned implementation of PHP Smarty template engine for Delphi by DVD Chief. liquid-delphi. [Delphi] Delphi port of the popular Ruby Liquid templating language and dotLiquid implementation. It is a separate project that aims to retain the same template syntax as the original, while using delphi coding conventions where possible. Log4d. [Delphi] [FPC] Implementation of logging system for Delphi, based on Log4j. TraceTool. [Delphi] C#, C++, Delphi, ActiveX and Java trace framework and a trace viewer. LoggerPro. [Delphi] A modern and pluggable logging framework for Delphi. SynLog. [Delphi] [FPC] Logging functions used by Synopse projects. slf4p. [Delphi] [FPC] A simple logging facade with support for LazLogger, Log4D, and other logging frameworks. GrijjyCloudLogger. [Delphi] Remote logging tool that allows you to send log messages over the Intranet or Internet from Windows, Linux, iOS, Android and macOS devices to a viewer running on Windows. Besides sending messages along with any data, it has numerous features including custom live watches, remote live views of objects, tracking live memory usage, object allocations, growth leaks and more. QuickLogger. [Delphi] [FPC] Delphi/freepascal/.NET (Windows/Linux) library for logging on files, console, memory, email, rest, telegram, slack, eventlog, redis, ide debug messages and throw events.. jachLog. [Delphi] pure pascal, flexible, extensible and lightweight library to add logging capabilities to your Delphi applications. Multiple log destinations supported. The library supports multithreaded applications and is itself multithreaded to minimize the impact writing the log may have on the performance on mission critical applications. TIntX. [Delphi] [FPC] Pascal port of IntX arbitrary precision Integer library with fast, about O(N * log N) multiplication/division algorithms implementation. It provides all the basic arithmetic operations on Integers, comparing, bitwise shifting etc. It also allows parsing numbers in different bases and converting them to string, also in any base. The advantage of this library is its fast multiplication, division and from base/to base conversion algorithms. all the fast versions of the algorithms are based on fast multiplication of big Integers using Fast Hartley Transform which runs for O(N * log N * log log N) time instead of classic O(N^2). DelphiBigNumberXLib. [Delphi] Arbitrary Precision Library for Delphi with Support for Integer and Floating Point Computations. FastMath. [Delphi] Delphi math library that is optimized for fast performance (sometimes at the cost of not performing error checking or losing a little accuracy). It uses hand-optimized assembly code to achieve much better performance then the equivalent functions provided by the Delphi RTL. // Floating-point, vector, matrix operations. MPArith. [Delphi] Multi precision integer, rational, real, and complex arithmetic. AMath and DAMath. [Delphi] Accurate mathematical methods without using multi precision arithmetic and double precision accurate mathematical methods without using multi precision arithmetic or assembler respectively. ALGLIB. [Delphi] [FPC] Cross-platform numerical analysis and data processing library. It supports several operating systems (Windows and POSIX, including Linux). ALGLIB features include: Data analysis (classification/regression, statistics); Optimization and nonlinear solvers; Interpolation and linear/nonlinear least-squares fitting; Linear algebra (direct algorithms, EVD/SVD), direct and iterative linear solvers; Fast Fourier Transform and many other algorithms. // Free edition is Delphi wrapper around generic C core licensed for Personal and Academic Use. CAI NEURAL API. [FPC] [Delphi] Cross-platform Neural Network API optimized for AVX, AVX2 and AVX512 instruction sets plus OpenCL capable devices including AMD, Intel and NVIDIA. DFF Library. [Delphi] [FPC] Big Floating Point, Big Integers, Astronomical calcualtions Libraries for parsing command-line arguments GpCommandLineParser. [Delphi] Attribute based command line parser. JPL.CmdLineParser. [Delphi] [FPC] Command-line parser for Delphi and Free Pascal Nullpobug.ArgumentParser. [Delphi] [FPC] Command-line parser for Delphi and Free Pascal TRegExpr. [Delphi] [FPC] Regular expressions engine in pure Object Pascal. FLRE. [Delphi] [FPC] FLRE ( F ast L ight R egular E xpressions) is a fast, safe and efficient regular expression library, which is implemented in Object Pascal (Delphi and Free Pascal) but which is even usable from other languages like C/C++ and so on. OnGuard (Alternate and maintained version for recent compiler version only). [Delphi] Library to create demo versions of your Borland Delphi & C++Builder applications. Create demo versions that are time-limited, feature-limited, limited to a certain number of uses, or limited to a certain # of concurrent network users. // Second link points to an adapted version for newest compiler versions. StringSimilarity. [Delphi] Package designed for some fuzzy and phonetic string comparison algorithms. So far implemented are the following algorithms: DamerauLevenshtein, Koelner Phonetik, SoundEx, Metaphone, DoubleMetaphone, NGram, Dice, JaroWinkler, NeedlemanWunch, SmithWatermanGotoh, MongeElkan. PubSub Chimera. [Delphi] Open Source (MIT License) library for Delphi which provides a fast and cross platform PubSub and Message Queue implementation under a license that doesn’t suck. DuckDuckDelphi. [Delphi] Adds simple duck typing to Delphi Objects and provides an RTTI helper class to simplify many common RTTI tasks. byterage. [Delphi] Object pascal class library designed to remove some of the limitations of streams. The framework is very simple to use, with only one common ancestor class (TBRBuffer) which defines a set of storage agnostic mechanisms for allocating, scaling, inserting, deleting and otherwise manipulating a segment of raw binary data. stateless. [Delphi] Simple library for creating state machines in Delphi code. GenericTree. [Delphi] Delphi implementation of a generic Tree structure. Delphi Event Bus (for short DEB). [Delphi] Event Bus framework for Delphi. DelphiEventBus. [Delphi] Yet another Event Bus framework for Delphi, with annotations and rich event filtering. DHibernate. [Delphi] Object Persistent Framework based on Hibernate and NHibernate for Delphi. // Abandoned since 2012 UniConv. [Delphi] [FPC] Universal text conversion library is a universal quick and compact library intended for conversion, comparison and change of the register of text in concordance with the latest standards of the Unicode Consortium. The librarys function greatly resembles ICU, libiconv and Windows.kernel which are de facto standard for popular operating systems. CachedBuffers. [Delphi] [FPC] The library is irreplaceable for the tasks of sequential data reading or writing, especially if the requirements for the performance are increased and there are much data. CachedTexts. [Delphi] [FPC] Powerful and compact cross-platform library aimed at parsing and generating of text data with the maximum possible performance. Depends on the two other libraries: CachedBuffers and UniConv. ZEXMLSS. [Delphi] [FPC] Lazarus/Delphi component for read/write ods, excel xml, xlsx. PasMP. [Delphi] [FPC] Parallel-processing/multi-processing library for Object Pascal. ICU4PAS. [Delphi] [FPC] Object Pascal, cross platform, Direct Class Wrapper over the mature and widely used set of C/C++ ICU libraries providing Unicode support, software internationalization (i18n) and globalization (g11n), giving applications the same results on all platforms. You can use it on Windows with Delphi and FreePascal and on Linux with Kylix and FreePascal. // Hadn’t been updated since 2007 but ICU interface probably remains the same GpDelphiUnits. [Delphi] Collection of useful Delphi units. Various TList descendants, TList-compatible, and TList-similar classes. Dynamically allocated, O(1) enqueue and dequeue, threadsafe, microlocking queue. Interface to 64-bit file functions with some added functionality. String hash, table and dictionary. Collection of Win32/Win64 wrappers and helper functions. Time Zone Routines. Embedded file system. BaseNcodingPascal. [Delphi] [FPC] Library for encoding of binary data into strings using base32, base85, base128 and other algorithms for FPC and Delphi. ByteSizeLibPascal. [Delphi] [FPC] TByteSize is a utility «record» that makes byte size representation in code easier by removing ambiguity of the value being represented. EmailValidationPascal. [Delphi] [FPC] Simple Class for Validating Email Address Syntax in Pascal/Delphi. PRNG. [Delphi] Seven fast pseudo random number generators with period lengths much greater than Pascal’s random function. All are implemented with context records, therefore several independent generators can be used simultaneously, they are not cryptographically secure. In addition there are three cryptographic generators. CSV File and String Reader. [Delphi] TnvvCSVFileReader and TnvvCSVStringReader are light weighted and fast classes that resemble unidirectional data set. HTMLBuilder. [Delphi] Build simplified html with pascal code. Marvin.IA. [Delphi] Machine learning collection of object-oriented Pascal primitives (only interfaces and classes). FreePascal Generics.Collections. [FPC] FreePascal Generics.Collections library (TList, TDictionary, THashMap and more) FuzzyWuzzy.pas. [FPC] Port of the well-known Python fuzzy string matching package that uses the Levenshtein distance to compute differences between string sequences. GS.Core. [Delphi] [FPC] Core functions shared by several projects. // Thread Pool, file operations, Key<>Value database, JSON lib, etc PascalTZ. [FPC] Pascal Time Zone allows you to convert between local times in various time zones and GMT/UTC, taking into account historical changes to time zone rules. Charset Enigma. [Delphi] Delphi charset detector Community Edition DelphiPatterns. [Delphi] Complete set of design patterns implemented in Delphi language Markdown Processor for Pascal. [Delphi] [FPC] This is a Pascal (Delphi) library that processes to markdown to HTML Coroutine-based multithreading library. [Delphi] AIO implement procedural oriented programming (POP) style in Delphi. It means developer can combine advantages of OOP and POP, splitting logic to multiple state machines, schedule them to threads, connect them by communication channels like in GoLang Rapid.Generics. [Delphi] Rapid generics/defaults equivalent classes for Delphi (XE8+) Keras4Delphi. [Delphi] High-level neural networks API, written in Pascal with Python Binding TZDB. [Delphi] [FPC] IANA Time Zone Database for Delphi/FreePascal PascalUtils. [Delphi] [FPC] Delphi and object pascal library of utils data structures libPasC-Algorithms. [Delphi] [FPC] Delphi and object pascal library of common data structures and algorithms. Library rewritten from c-algorithms repository and other sources. VSoft.Messaging. [Delphi] Libary that provides an internal synchronous/asynchronous publish/subscribe messaging system for Delphi applications. Delphi-Hunspell. [Delphi] Simple Hunspell spell checking engine wrapper for Delphi. CocinAsync. [Delphi] High performance library for Delphi to simplify coding and improve performance of asynchronous and multithreaded applications. Delphi LightSaber. [Delphi] Lightweight alternative to Jedi library. Simple, crystal clear, non-obfuscated, fully commented code. No external dependencies. Hundreds of super useful functions for file/folder/disk manipulation, fast (buffered) binary file access, string conversions, OS version detection, etc. LAMW. [FPC] Lazarus Android Module Wizard to create JNI Android loadable module (.so) and Android Apk using Lazarus/Free Pascal. Tools that help dealing with OS-specific internals GLibWMI. [Delphi] Component Library for Delphi that encapsulate the classes for access to WMI of Windows in a set of VCL. BiosInfo, PrinterInfo, DiskInfo, etc. Allow access WMI Classes: WIN32_Bios, WIN32_Printers, WIN32_DiskDrive. MemoryMap. [Delphi] Set of classes to get all the info about a memory of a running process. The Drag and Drop Component Suite. [Delphi] VCL component library that enables your Delphi and C++Builder applications to support COM based drag and drop and integrate with the Windows clipboard. TSMBIOS. [Delphi] [FPC] Allows access the System Management BIOS (SMBIOS) using the Object Pascal language (Delphi or Free Pascal). The SMBIOS (System Management BIOS) is a standard developed by the DMTF. The information stored in the SMBIOS includes devices manufacturer, model name, serial number, BIOS version, asset tag, processors, ports and device memory installed. VersionInfo for Delphi. [Delphi] The library makes it very easy to read values from the Version Info resource of Windows executables and DLLs. Optionally extends the TApplication class with a version info property via class helper. Magenta Systems WMI and SMART Component. [Delphi] Contains WMI, SMART and SCSI PassThrough functions, of particular use for getting hard disk information and configuring network adaptors, but also for many other general uses. MagWMI provides general view access to any WMI information using SQL like commands, and also a number of dedicated function relating to TCP/IP configuration, such as setting the adaptor IP addresses, the computer name, domain/workgroup, BIOS and disk drive information. madKernel. [Delphi] The package is about Kernel Objects for the biggest part. The most important object types are wrapped up in interfaces, utilizing all the specific kernel32 APIs. Has interface wrappers for: Events, Mutexes, Threads, Processes, Windows, Modules, Tray Icons, shared memory buffers. // Free with source for non-commercial usage (only) with some conditions. Available to download as part of madCollection installer. Pretty well documented. Requires madBasic package. madSecurity. [Delphi] The package makes it easily possible to handle Shares and other Security Objects like file security or registry security. To be able to do so, this package also features functionality around Accounts and ACEs and ACLs. // Free with source for non-commercial usage (only) with some conditions. Available to download as part of madCollection installer. Pretty well documented. Requires madBasic package. madShell. [Delphi] The package implements often needed shell functionality, beginning with Special Folders like the «Windows» folder or the «Program Files» folder, continuing with Shell ID Lists, Shell Objects and Shell Events. Then you’ll find functionality around ShortCuts/ShellLinks and finally everything about Display Modes. // Free with source for non-commercial usage (only) with some conditions. Available to download as part of madCollection installer. Pretty well documented. Requires madBasic package. WindowsAutorun. [Delphi] Helps you manage autoload in Windows OS. ActiveDirectory4Delphi. [Delphi] Delphi basic library for validation and authentication of LDAP users in Active Directory. FortesReport. [Delphi] The FortesReport is a powerful report generator available as a package of components for Delphi. mORMotReport (docs). [Delphi] Fast and efficient code-based reporting component, with preview form and PDF export. DUnitX. [Delphi] New test framework, taking ideas from DUnit, NUnit and other test frameworks. It is designed to work with Delphi 2010 or later, it makes use of language/RTL features that are not available in older versions of Delphi. DUnit. [Delphi] Unit Testing Framework, that has been the standard testing framework for years, the Delphi IDE now ships with this library. // Included since XE, deprecated since XE8 in favor of DUnitX; seems abandoned. DUnit2. [Delphi] Fork of the DUnit Project that adds several new features. // Seems abandoned, lacks some features from last DUnit version. DelphiSpec. [Delphi] Library for running automated tests written in plain language. Because they’re written in plain language, they can be read by anyone on your team. Because they can be read by anyone, you can use them to help improve communication, collaboration and trust on your team. Delphi-Mocks. [Delphi] Simple mocking framework for Delphi XE2 or later. Allow you to mock both classes and interfaces for testing. DUnit-XML. [Delphi] Test runner that allows DUnit Tests to output NUnit compatible XML. Smoketest. [Delphi] Framework for writing tests and performance benchmarks using the Delphi language for Microsoft Windows. It has been tested on all versions of Delphi from 7 thru to 2010. SynTests. [Delphi] [FPC] Unit test functions including mocks and stubs. OpenCTF. [Delphi] Test framework add-on for Embarcadero Delphi which performs automatic checks of all components in Forms (or DataModules). It provides an easy way to build automatic quality checks for large projects where many components have to pass repeated tests. OpenCTF is based on the DUnit open source test framework and extends it by specialized test classes and helper functions. DelphiUIAutomation. [Delphi] Delphi classes that wrap the MS UIAutomation library. DelphiUIAutomation is a framework for automating rich client applications based on Win32 (and specifically tested with Delphi XE5). It is written in Delphi XE5 and it requires no use of scripting languages. It provides a consistent object-oriented API, hiding the complexity of Microsoft’s UIAutomation library and windows messages. Debugging / error handling Delphi LeakCheck. [Delphi] Free code library to check the memory leaks in the DUnit and DUnit2 tests. Supports Delphi XE-XE7. FastMM. Provides powerful memory leak/corruption detection instruments. JclDebug (part of Project JEDI). [Delphi] [FPC] Tracing, MAP file parser, exception report generation, exception stack traces. DebugEngine. [Delphi] Collection of utilities related to debug stuff (stack trace, CPU registers snapshot, debug info, etc). Accessing Delphi debug info, Getting address of symbol from its name, Delphi map parsing and map converter to binary format, Smart stack trace, Delphi exception stack trace hook, etc. ObjectDebugger. [Delphi] Run-time Object Inspector for Delphi VCL applications. Free non-opensource products allowed here. RAD Studio IDE plugins/wizards Delphi IDE theme editor / Delphi IDE Colorizer. Tool to change the IDE color highlighting of several Object Pascal IDE’s like Delphi (RAD Studio), Appmethod, Lazarus and Smart Mobile Studio. DITE supports Delphi 5-7, 2005-2010, XE-XE8, Appmethod 1.13-1.14, Lazarus v1.0.1.3 and Smart Mobile Studio IDE v1.1.2.17. The Delphi IDE Colorizer (DIC) is a plugin which allows to customize the look and feel of the workspace of the RAD Studio IDE and Appmethod. DDevExtensions. Extends the Delphi/C++Builder IDE by adding some new productivity features. // Many useful IDE tweaks, must have. VCL Fix Pack. Delphi unit that fixes VCL and RTL bugs at runtime by patching the original functions. If you want all IDE Fix Pack fixes in your application this unit is what you are looking for. Adding the unit to your project (Delphi and C++Builder) automatically installs the patches that are available for your Delphi/C++Builder version. // Actual for Delphi/C++ 6..2009 IDE Fix Pack. Collection of unofficial bug fixes and performance optimizations for the RAD Studio IDE, Win32/Win64 compiler and Win32 debugger. IDE Fix Pack is an IDE plugin for RAD Studio 2009-XE6 that fixes IDE bugs at runtime. All changes are done in memory. No files on disk are modified. None of your projects are modified or benefit from the IDE Fix Pack other than being compiled faster. Only the IDE gets the fixes and optimizations. // Supports all RAD Studio versions since 2007. Removes lots of annoying bugs that EMBT haven’t fixed for years. Yay! GExperts. Free set of tools built to increase the productivity of Delphi and C++Builder programmers by adding several features to the IDE. GExperts is developed as Open Source software and we encourage user contributions to the project. Grep search and replace supporting unicode files, DFMs, etc; Automatically rename components, insert text macros, open recent files; Easily backup your projects, with custom additional file lists; Keep nested lists of favorite files for quick access; Track dependencies between units in your project; Quickly jump to any procedure in the current unit; And much, much more. CnWizards. Free Plug-in Tool Set for Delphi/C++ Builder/CodeGear RAD Studio to Improve Development Efficiency. Delphi Package Installer (DelphiPI). Tool which aids you installing components to your Delphi IDE. DelphiPI automatically resolves dependencies between packages, compiles, installs and adds source paths to your IDE. Parnassus Bookmarks. IDE plugin that extends bookmark functionality. DelphiSettingManager. Multiple IDE profiles for Delphi (up to XE6). Allows to install multiple versions of the same component or different component sets for different projects. Delphinus. New Packagemanager which runs on Delphi XE and newer and uses GitHub as a Backend to Provide the packages. TestInsight. Unit testing IDE Plugin for Delphi. It supports all versions from XE to 10 Seattle. Supports DUnit, DUnit2, DUnitX frameworks. Delphi IDE Explorer. Wizard / expert / plugin that allows you to browser the internal fields, methods, properties and events of the IDE. // Mainly useful for developers of IDE experts Multi-RAD Studio IDE Expert Manager. Application is for editing the installed experts in all versions of RAD Studio (and older Delphi and C++ Builder) on a machine. OTA Interface Search. Application helps to find Open Tools API (OTA) interfaces, methods and properties and understand how to get to those interfaces or methods / properties of the interfaces. AutoSave. Expert that periodically auto saves all the open modified IDE files. Browse and Doc It. Plug-in allows you to document and browse your code from within the IDE. Integrated Testing Helper. Plugin for Delphi and RAD Studio that allows you to run command-line application before and after the compilation of you projects. It also provides the ability to zip you projects files into an archive on each compile/build and manage the application’s version information. Project Magician. Wizard for advanced project options manipulation. Selective Debugging. Wizard that allows to tune for which units their debug version will be used. MMX Code Explorer. Feature-rich productivity enhancing plugin. Includes refactoring, class browser, advanced editing, metrict and many more. FormResource. Wizard that helps storing various data as form resources. Delphi Library Helper Tool to assist Delphi developers configuring library folders. Mobile Image Creator Creating Icons and Launcher Images for Delphi Mobile Applications (Firemonkey). This is a fork of Mobile Gfx created by Thomas Grubb of RiverSoftAVG. Delphi-Adb-WiFi. Plugin for RAD Studio, which allows launching and debugging on an Android device without connecting to a computer via USB. Works over WiFi. RADSplit. Dockable Split-Screen Editors for RAD Studio (Delphi and C++ Builder). DzNoteEditor. Delphi Property Editor for TStrings supporting formatted languages with syntax highlight. Plugins for other IDE’s Delphi IDE theme editor / Delphi IDE Colorizer. Supports Appmethod, Lazarus and Smart Mobile Studio. Pascal and Pascal Formatter. Open source extensions created for Visual Studio Code that add Pascal support. SynProject (docs). Tool for code source versioning and automated documentation of Delphi projects. PasDoc. [Delphi] [FPC] Documentation tool for ObjectPascal (FreePascal and Delphi) source code. Documentation is generated from comments found in source code. Available output formats are HTML, HtmlHelp, LaTeX, latex2rtf, simplexml. More output formats may be added in the future. Code check/review, debug GpProfiler2017. [Delphi] Source code instrumenting profiler for Delphi XE and higher. Other forks support older versions. SamplingProfiler. [Delphi] Performance profiling tool for Delphi 5 to 32bits Delphi XE4. Its purpose is to help locate bottlenecks, even in final, optimized code running at full-speed. Delphi Code Coverage. [Delphi] Simple Code Coverage tool for Delphi that creates code coverage reports based on detailed MAP files. Pascal Analyzer (free Lite version available). [Delphi] Pascal Analyzer, or PAL for short, parses Delphi or Borland Pascal source code. It builds large internal tables of identifiers, and collects other information such as calls between subprograms. When the parsing is completed, extensive reports are produced. These reports contain a great deal of important information about the source code. This information will help you understand your source code better, and assist you in producing code of higher quality and reliability. madExcept. [Delphi] madExcept was built to help you locate bugs in your software. Whenever there’s a crash/exception in your program, madExcept will automatically catch it, analyze it, collect lots of useful information, and give the end user the possibility to send you a full bug report. madExcept is also able to find memory leaks, resource leaks and buffer overruns for you. // Free without source for non-commercial usage (only) with some conditions. Available to download as part of madCollection installer (you’ll need to install madExcept item). Pretty well documented. delphiunitsizes. [Delphi] Tool to display the sizes of each unit in a Delphi executable. Shows the size of each unit that is included in a Delphi exe-file. It also shows an approximate size of each symbol (classes, methods, procedures etc) in a unit. Spider. [Delphi] Real time profiler for Delphi applications AsmProfiler. [Delphi] Full tracing 32bit profiler (instrumenting and sampling), written in Delphi and some assembly map2pdb. [Delphi] Tool used to convert the MAP files produced by the Delphi and C++ Builder compilers to Microsoft PDB files for use in tools that support that format. Lazy Delphi Builder. Build tool for Delphi. Recompile projects/packages from sources with all dependencies, without need to mess around with configs. Quickly (re-)install components from sources into IDE, with no need to change your Library Path. // Powerful automating tool. Freeware but not open source Inno Setup. Free installer for Windows programs. First introduced in 1997, Inno Setup today rivals and even surpasses many commercial installers in feature set and stability. WinSparkle and its Delphi wrapper. WinSparkle is an easy-to-use software update library for Windows developers. WinSparkle is a heavily (to the point of being its almost-port) inspired by the Sparkle framework originally by Andy Matuschak that became the de facto standard for software updates on macOS. Silverpoint MultiInstaller. Multi component package installer for Embarcadero Delphi and C++Builder, it was created to ease the components installation on the IDE. Grijjy Deployment Manager. Tool to simplify the deployment of files and folders for iOS and Android apps written in Delphi. It is especially useful if you need to deploy a lot of files, such as 3rd party SDKs. WMI Delphi Code Creator. Allows you to generate Object Pascal, Oxygene, C++ and C# code to access the WMI (Windows Management Instrumentation) classes, events and methods. Also includes a set of tools to explorer and Query the content of the WMI. Delphi Preview Handler. Preview handler for Windows Vista, 7 and 8 which allow you read your object pascal, C++ and Assembly code with Syntax highlighting without open in a editor Delphi Dev. Shell Tools. Windows shell extension with useful tasks for Object Pascal Developers (Delphi, Free Pascal). OmniPascal. Project that enables Delphi and Free Pascal developers to write and maintain code using the modern editor Visual Studio Code. Delphi Unit Tests. Set of unit tests for Delphi’s libraries. Delphi community members are encouraged to fork the repository, add tests, and create a pull request. Embarcadero employees are particularly encouraged to add tests from the internal tests that are run with official Delphi builds. madDisAsm. The package features a full x86 disassembler including MMX, 3dNow enhanced, SSE and SSE2 support. The disassembler can examine a single x86 instruction (see ParseCode) or a full function (see ParseFunction) and either return a short analysis or a full text disassembly. Register contents are watched/followed if possible, this improves the analyses for jump/call targets. Case/switch jump tables are automatically detected and handled correctly. // Free without source for non-commercial usage (only) with some conditions. Available to download as part of madCollection installer (you’ll need to install madExcept item). Pretty well documented. Boss. Dependency Manager for Delphi projects. C-To-Delphi. [Delphi] This tool will convert most of your standard C code. dzBdsLauncher. [Delphi] Launcher for the Delphi IDE that decides which of multiple IDEs to launch based on the suffix of the dproj file passed to it. AboutA curated list of awesome Delphi/FreePascal/(any)Pascal frameworks, libraries, resources, and shiny things. Inspired by awesome-. stuff. Open source and freeware only! Источники:
|