Delphi. Основы языка программирования


Delphi – один из лучших современных языков программирования. Объектно-ориентированный. простой, понятный, логичный, с более чем 20 летней эволюцией.

Язык с трудной судьбой, но легким синтаксисом. Читая код Delphi как будто бы читаешь текст на английском. Язык переживал взлеты и падения, как и все в этой жизни. В последние годы очень активно развивается компаниями Embarcadero и IDERA. На Delphi можно писать десктопные приложения, веб-приложения, мобильные приложения. Можно написать приложение в нативном коде и запускать его локально, а можно запускать его удаленно и открывать через браузер – возможностей масса.

На Delphi написано множество известных программ, в частности Skype, GuitarPro, FruttyLoops, LightAlloy!!! На данной странице некоторые посты моего обучения Delphi.


Архитектура приложения

Передаем ссылку на Owner через (Self.Owner as TOwnerType) а не через UnitVar

Архитектура приложения. Видимость объектов

Типы данных

Работа с указателями.

DLL

Как создать и использовать DLL библиотеки?

Delphi и JavaScript

VCL+JavaScript

Delphi и WinAPI

CreateProcess или запускаем UniGUI сервер извне

Получение дескриптора безопасности файла

CheckFileAccess – проверка прав файла

JSON

Json объекты. Простой пример

Json. Сохранение в строку и чтение из строки

Базы данных и компоненты доступа

DBGrid

DBGrid. Как пробежаться и собрать значения определенного поля выделенных записей?

Ручное управление транзакциями

Битовые операции

Битовые операции и фильтр Блума. Вступление

Время

Простейший способ измерить время

Графика, изображения

Простой способ пропорционального уменьшения картинки

Уменьшение изображения. Обобщение и нюансы

Читаем ориентацию из Exif для Jpg файлов и ориентируем правильно

Деревья. Иерархические данные.

DBTreeView. Разработка компонента, Первая волна.

DbTreeView. Разработка компонента. Результат. Вторая волна

DBTreeView своими руками. Третья волна

DBTreeView. Четвертая волна

Отражение папок файловой директории в базе данных

Рекурсивное отражение файловой директории в базе данных


   VirtualStringView

Базовые операции

Документирование

Краткий обзор DocumentInsight

Документируем с PasDoc. Небольшая заметка

Интерфейсы

Интерфейсы в простых примерах

Классические алгоритмы

Все классические алгоритмы, реализованные в Delphi, смотрите на отдельной странице

Компоненты

      VCL компоненты

   TListView   

Как добавить элементы в виртуальном режиме (OwnerData:=true)?

Сортировка  в обычном и virtual режимах

Установка и использование написанных компонентов

Создание своих компонентов

Группировка свойств

Геттеры и Сеттеры при создании компонентов

MP3 на TMediaPlayer

MP3 плеер на bass.dll

Mp3 плеер на WindowsMediaPlayer

Делаем TVideoPanelWMP

       Создание компонентов, нюанс с прописыванием путей.

Обработка исключений

Как обработать исключение из потока?

Поиск

Инкрементальный поиск на примере TListView

Регистрозависимость поиска и поиск вхождений через MySQL

Реализуем поиск вхождений, регистрозависимый поиск, поиск точной фразы через MySQL.

Потоки (TThread)

  Управление потоками внутри одного приложения

 Самый простой пример на потоки

 Потоки (TThread). Создание и синхронизация. Метод WaitFor.

 Потоки через WinAPI

 Критические секции

        Критические секции. Некоторые простые наблюдения

 События (очень удобный инструмент регулирования потоков)

        Как обработать исключение из потока?

Как правильно остановить поток, работающий с idHTTP?

   Управление потоками между приложениями, процессами

Мьютексы

Семафоры

Регулярные выражения

Регулярные выражения.Теория

Регулярные выражения. Практика

Хранение параметров в имени файла

Реестр Windows

Простейший пример чтения / записи значений реестра

Риббон

Первые простые примеры

Пример программного добавления вкладки

Свойства объектов

Когда использовать read / write а когда get set ?

Делаем template на свойства

Списки

Как правильно удалять несколько элементов из TStringList, TObjectList и вообще из списков?

Сообщения Windows

Первые наивные пробы

События Delphi

Как сделать своё самое простое событие?

Добавляем пользовательские события на примере отправки файла чанками

Сортировка

TStringList.CustomSort – сортировка строк, integer, tdatetime в ascending и descending порядках

Строки

Split и Join методы для строки при переименовывания файла

Как сделать транслит в имени файла и заменить пробелы на тире?

Как узнать адрес в памяти строковой переменной?

Текстовый редактор на TRichView

Делаем текстовый редактор на TRichView

Тестирование приложений

Тестирование приложения через DUnitX. Простой пример

Автоматизированное тестирование приложений в DUnitX

Трэй

Убираем программу в трэй

Файлы и папки

Как открыть папку и узнать об ошибке в случае чего?

Существует и доступен ли файл и доступен ли он для чтения?

Хранение параметров в имени файла

Как создать уникальное имя файла, используя GUID и сохранив часть старого имени?

Рекурсивный обход каталога файлов Windows при помощи SYSTEM.IOUTILS

Фильтры

VCL и не только. Делаем фильтр. Почти быстро и просто

Функции / процедуры

Delphi class function / procedure – вызов без создания экземпляра класса

Передача параметров по ссылке и по значению

CallBack функции / процедуры

Циклы

Delphi. C#. PHP. JS Циклы на 4 языках на примере факториала

СМС

Отправляем смс через шлюз или как классно когда все сделано за Вас)

ZIP

System.ZIP Simple Examples