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


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

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

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


Типы данных

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

DLL

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

Delphi и JavaScript

VCL+JavaScript

Delphi и WinAPI

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

JSON

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

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

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

DBGrid

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

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

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

Время

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

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

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

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

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 ?

Списки

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

Сообщения Windows

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

События Delphi

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

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

Сортировка

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

Строки

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

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

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

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

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

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

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

Трэй

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

Файлы и папки

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

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

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

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

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

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

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

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

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

СМС

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