Index:Delphi programming language

* Язык программирования Дельфи
** Общие вопросы
*** Директивы вызова процедур
*** Как использовать переменную для имени процедуры?
*** Как использовать параметры коммандной строки?
*** Быстрый способ обмена значений в 2х переменных.
*** BEEP для дельфи, который работает, как в TP
*** Как передать массив как параметр?
*** Можно ли задать шаг в For?
*** Как сделать procedure/function с переменным количеством параметров?
*** Как получить часть GUID?
*** GUI. Перегрузка контролами (статья)
*** Функция, возвращающая тип
*** Взять один символ из потока памяти
*** Удобная функция ifthen
*** Использование PosEx взамен Pos
*** Вызвать функцию по имени
*** О файле проекта
*** О переносе проекта в другую папку
** Объектное ориентирование
*** Сущность ООП
**** Объектно-ориентированное программирование (статья)
**** Сущность ООП 
**** Переназначения объектов
**** Сабклассинг и суперклассинг в Delphi для начинающих
**** Игра отражений
*** Разработка компонентов и классов
**** Как написать собственный класс?
**** Как заставить код компонента работать только в дизайне?
**** Создание компонент в Delphi
**** Пособие по написанию своих компонентов
**** Простой пример разработки собственного компонента
*** Методы
**** Как преобразовать указатель на метод в указатель на функцию?
**** Как явно вызвать виртуальный метод дедушки?
**** Как вызвать метод предка?
**** Как редактировать таблицы виртуальных и динамических методов?
**** Перекрытие виртуальных методов
**** Динамические и виртуальные методы
**** Override/Vitual/Dynamic - методы
*** Свойства
**** Как скрыть свойства объекта?
**** Можно ли динамически изменять свойство owner компонента во время выполнения программы?
**** Демонстрация DefineProperties
**** Использование записей для хранения информации полей
*** События
**** Как присвоить событие в run-time?
**** Как получить список всех назначенных событий?
*** Self
**** Что из себя представляет Self?
**** В чем отличие между Create(Self) и Create(Application)?
*** Sender
**** Работа с Sender
*** Разные вопросы
**** Как можно работать с объектами не заботясь об их разрушении?
**** Как создать компонент во время выполнения приложения?
**** Шаблоны в Object Pascal
**** Как внести изменения в код VCL?
**** Как создать копию произвольного компонента?
**** Вызов процедуры, имя которой содержится в переменной
**** Выполнение процедуры по адресу
**** Информация о TClass
**** Работа метода Assign
**** Как забыть о необходимости разрушать объекты?
**** Список handle всех окон моего приложения
**** Сгруппировать свойства наподобие Font
**** Клонирование объектов
**** Сохранение и загрузка данных в объекты на примере коллекций.
** Работа со строками
*** Справочные материалы, общие вопросы
**** Справочник по функциям работы со строками
**** Справочник по функциям работы с PChar
**** Как хранятся строки?
**** Unix-строки (чтение и запись Unix-файлов)
**** Быстрые операции с очень большими строками
**** Небольшой модуль для работы со строками 
**** Расширенные строковые функции 
**** Добавление функций проверки орфографии 
*** Преобразования строк из и в другие типы
**** String → PChar
**** PChar → Integer
**** Hex → String
**** Hex → Char
**** Hex → Integer
**** Hex → BIN
**** BIN → Integer
**** Integer → BIN
**** BIN → Byte
**** Byte → BIN
**** WideString → String
**** String → WideString
**** Функции преобразования UNICODE и ANSI строк
**** String → BCD
**** BCD → String
**** String → HKEY
**** HKey → String
**** String → PWideChar
**** PWideChar → String
**** Преобразование Unicode строк в DFM файлах Delphi 6 в Ansi строки
**** Как преобразовать String в Binary и наоборот?
**** Из строки в массив и наоборот
**** Отобразить строку на определённую структуру
**** String → Ascii
**** Ascii → String
**** Преобразование строки в число
**** String → StringList 
**** Как преобразовать значение любого типа в строку 
*** Слова
**** Как осуществить поиск слов по маске?
**** Как подсчитать количество слов в строке?
**** Разбивка строки на слова
**** Функция возвращающая N-ое слово в строке
**** Словарь уникальных слов.
**** Быстрая функция для разбивки строки на части (слова) в один цикл.
**** Заполнение списка словами из строки 
**** Определить корень слова (для поиска похожих слов) 
**** Сканирование строки начиная с указанной позиции с целью нахождения слова 
**** Получать слова нужной длины при перестановке букв в указанном слове 
**** Поиск слов по маске 
*** Форматирование строк
**** Функции форматирования строк
**** Как использовать format parameter больше одного раза?
**** Дополнение строки пробелами 
**** Выравнивание текста по ширине
**** Первая буква каждого слова в верхнем регистре
**** Как удалить переносы из строки 
**** Обрезание строки по длине 
**** Очистка строки (символьное значение числа) от пробелов, нулей и точки 
**** Очистка строки слева и справа от указанного символа 
**** Перевод символа в верхний регистр для русского алфавита 
**** Перевод символа в нижний регистр для русского алфавита 
**** Повтор строки заданное количество раз 
**** Форматирование строки с использованием подстановочных символов 
**** Функция для удаления из строки лишних символов 
**** Функция замены в строке всех вхождений одной подстроки на другую 
**** Функция наполнения строки 
**** Удаление ненужных подстрок из строки 
**** Удаление пробелов в начале строки 
**** Удаление лишних пробелов в строке
**** Примеры форматирования строк с использованием API-функции wvsprintf 
*** Разбор строки, выделение элементов, поиск
**** Как разделить строку на элементы, Аналог VB функции Split
**** Парсинг строк
**** Как найти строку в строке начиная с определённой позиции?
**** Регулярные выражения
**** Количество вхождений подстроки в строку
**** Модуль поиска по маске (более совершеный нежели дельфийский masks)
**** Деление строки не несколько строк
**** Замена подстрок 
**** Нахождение последнего вхождения подстроки в строку 
**** Выделение подстроки по контексту
**** Несколько расширенных функций по определению позиции 
**** Поиск N-ого вхождения подстроки в строку 
**** Расщепление строки с разделителями на массив строк 
**** Функции для парсинга строк 
**** Функция для разворачивания строк 
**** Функция приблизительного (нечеткого) сравнения строк 
**** Фильтрованный поиск в строке 
**** Произвести поиск байта или слова в строке 
**** Текст между двумя определёнными строками 
*** Разные вопросы
**** Генерация GUID как строки 
**** Explode / Implode a String?
**** Как получить количество активных ссылок на строку?
**** Инкрементация строкового поля
**** Получение параметра из строки по его индексу
**** Расстояние (разность) между двумя строками. Функция Левенштейна
**** Нестрогое сравнение строк
**** Сумма и количество прописью, работа с падежами
**** Сase для строки 
**** Быстрые функции сжатия пробелов и управляющих символов в строке 
**** О пользе типа ShortString при использовании WinAPI 
**** Проверка значения строки 
**** Удаление из файла элементов HTML 
**** Функция проверки корректности ввода
**** Получить количество ссылок AnsiString 
**** Как определить, что два слова имеют схожее произношение 
** Работа с датами и временем
*** Таймер и задержки выполнения (Delay)
**** Скорость работы процессора, точный таймер
**** Как реализовать сверхточный таймер?
**** Как отчитывать промежутки времени с точностью, большей чем 60 мсек?
**** Класс-оболочка для объекта синхронизации WaitableTimer
**** О таймере
**** Использование команды RDTSC процессора Pentium для работы с малыми временными интервалам 
**** Реализация функции Delay 
*** Календари, даты и летоисчисление
**** Как получить дату по Юлианскому календарю?
**** Преобразовать Персидскую дату в дату по Грегорианскому календарю 
**** Вычисление даты Пасхи
**** Определение восхода и захода солнца и луны 
**** Дни в месяце 
**** Проверка правильности даты
**** Конвертируем Unix дату
**** Получить даты с понедельника по пятницу текущей недели 
**** Получить номер дня в году 
**** Программа рисует на форме календарь на 2002 год 
**** Число текущей недели 
*** Формат даты, преобразования дат и времени
**** Как преобразовать строку в дату?
**** Как конвертировать RFC дату и обратно?
**** Конвертируем TDateTime to Unix Timestamp
**** Вывод даты в нужном формате 
**** Название месяца в номер месяца 
**** Частичный показ DateTime 
**** Корректировка поведения маски TDateTimeField 
**** Перевести секунды в формат времени 
**** Преобразование даты и времени в строковый вид YYYYMMDDHHNNSS и обратно 
**** Преобразование даты, месяц прописью 
**** Преобразование количества секунд в формат TTIME 
**** Универсальная функция возврата значения элемента даты 
*** Недели и дни недели
**** Как узнать номер недели данного дня в году?
**** Как определить день недели?
**** Дни недели 
*** Математика времени и временные интервалы
**** Работа со временем или как реализовать 1.20+1.50=3.10 ?
**** Как подсчитать возраст по дню рождения?
**** Как засечь время
**** Математика времени
**** Округление времени 
**** Получение целого числа часов от начала суток
**** Прибавить час 
**** Сложение времени 
**** Сравнить быстродействие алгоритмов 
**** допустимые периоды истечения времени 
*** Разные вопросы
**** Генерация еженедельных списков задач 
**** За какое время было создано изображение 
**** Использовать TTime для более 24 часов 
**** Как реализовать визуальный отсчет времени 
** Работа с числами
*** Функции преобразования чисел с плавающей точкой
*** Как округлять до сотых в большую сторону?
*** Регионарные стандарты
*** Проблемы с дробными числами
*** Hex → Integer
*** Число английской строкой
*** Число русской строкой
*** Число украинской строкой
*** Работа с типом Comp
*** Как получить доступ к битам переменной и управлять их значением?
*** Dec → Hex
*** Bin → Dec 
*** Integer как SmallInt
*** "Некорректные" вещественные значения
*** Римские в Арабские
*** Арабские в Римские
** Работа с битами
*** Проверка значения бита
*** Установка бита в единицу
*** Установка бита в ноль
*** Переключение состояния бита с единицы на ноль и наоборот
*** Пример чтения данных по битовой маске из значения
*** Двоичная математика
*** Битовые множества 
*** Как в байте информации выделить биты 
*** Как работать с битами 
*** Получение значения бита в двойном слове 
** Работа с массивами
*** Примеры работы с динамическими массивами
*** Массив в Delphi
*** Использование ассоциативных массивов 
*** Пример массива констант (Array of Const)
*** Работа с большими массивами.
*** Использование многомерного массива
*** Массив без ограничения типа и размера
*** Удаление и добавление значений динамического массива
*** Сохранение и загрузка двумерного динамического массива
*** Сохранение массива c изображениями 
*** Запись массива на диск
*** Операции над числовыми массивами
*** Использование PHP-like операций с массивами
*** TMemoryStream → Array of Byte
*** Array of Byte → TMemoryStream
*** String → Array
*** Array → String
*** Как поместить двумерный массив в Image 
*** Массив компонентов 
*** Использование DynArrayFromVariant 
*** Поиск минимального (максимального) элемента массива , статистика элементов массива
*** Проверка наличия числа в массиве 
** Работа с указателями, память
*** Арифметика указателей
*** Использование указателей на целое
*** Как избежать использования неактуальных указателей
*** Пример работы с указателями
*** Получение ссылки на экземпляр класса
*** Method pointers в function pointers
*** Быстрое сравнение памяти 
*** Динамическое распределение памяти 
*** StrAlloc и GetMem 
*** Освобождение памяти
*** Очистить переменную в оперативной памяти 
*** Получение размера памяти выделенный под Pointer
*** Потеря памяти
*** Принципы работы с памятью в системе Windows32
*** Linked List Memory Table
*** Увеличение значения указателя
*** Указатель на вариантный тип
*** Указатель на функцию
*** Функции для выделения, перераспределения и освобождения памяти
** Множества, записи и перечисляемые типы
*** Что такое множества?
*** Получить текст элемента перечисляемого типа
*** Сохранение типа данных множество (TFontStyles)
*** Функции и процедуры для работы с данными перечислимого типа
*** Проблема передачи записи
*** Передача массива записей символов в Memo
*** Пример переменной записи
** RTTI и другие трюки с информацией о классах, модулях и т.п.
*** Теория и практика использования RTTI
*** Как прочитать значение свойства компонента по имени?
*** Как изменить значение свойства компонента по имени?
*** Как получить контекст свойства по его целочисленному значению?
*** Как получить значение свойства в виде варианта по тексту имени свойства?
*** Как прочитать весь список Published методов?
*** Как выяснить имеет ли объект определённое свойство?
*** Как сохранить значение свойства в поток?
*** Как определить, является ли метод потомком TNotifyEvent?
*** Как определить, унаследовано ли свойство от определённого класса?
*** Как прочитать свойство напрямую из его ресурса?
*** Как присвоить все значения полей одного класса, другому такому же классу?
*** Как сделать текстовый список всех доступных свойств перечисляемого типа?
*** Как изменить цвет всех компонентов на форме в Run-time?
*** Как выполнить метод по его имени?
*** Как получить строковое значение перечисляемого типа?
*** Как узнать имя файла моей программы?
*** Имя класса компонента и модуля
*** Как динамически прочитать информацию о классе
*** Копирование свойств одного компонента другому
*** Инспектор объектов и метаданные
** Взаимодействие с другими языками
*** Изучаем ассемблер в Delphi
*** Использование ассемблера в Дельфи (статья)
*** Вызов C-шной функции с переменным числом параметров
*** Вызов Delphi DLL из MS Visual C++ 
*** Аналог функции С memcmp
*** Соответствие типов С++ и Delphi
*** Using Visual Basic arrays in Delphi
*** Does Delphi have an equivalent to the Visual Basic SendKeys function?
*** Does Delphi have an equivalent for the VB function DoEvents?
*** Основное отличие EXE-файлов созданных Delphi и Visual Basic 
*** Присвоить значение полям записи с помощью Assemblera 
*** BASM - Уроки для начинающих
*** Программирование АССЕМБЛЕРОМ в Delphi 
*** Что Delphi знает об ассемблере 
** Threads
*** Потоки и DLL
*** Как создавать потоки без класса TThread?
*** Как реализовать обработку информации одновременно несколькими потоками
*** Как передать при создании нити (Tthread) ей некоторое значение?
*** Помещение формы в поток
*** Поток с доступом к глобальной переменной основной программы
** Работа с коллекциями
*** Работа с коллекциями - сохранение и загрузка 
*** Коллекции и работа с ними
*** Пример использования в приложении списка объектов на основе класса TList
*** Перетасовка строк в списке
** RTL Delphi (краткий справочник)
*** Math - математика, статистика, финансы 
*** Арифметика
*** Тригонометрические функции и процедуры
*** Функции и процедуры для финансовых вычислений
** Базовые классы
*** TList
*** TStrings и TStringList
**** Пример использования в приложении списка строк на основекласса TStringList
**** TStringList. Сортировка и системная locale 
**** Как самому определить метод сортировки TStringList
*** TStream
**** Несколько функций для TStream
*** TObject
*** TPersistent
*** TComponent
*** TControl
*** TWinControl
*** TCustomControl
*** TGraphicControl
*** Глобальный объект Screen
*** Глобальный объект Clipboard
** Скрипты, компиляторы и связанные с ними вопросы
*** Расчет введенной формулы
*** Использование Microsoft ScriptControl (статья)
*** Лекции по построению компилятора на Pascal
**** Введение
**** Синтаксический анализ выражений
**** Снова выражения
**** Интерпретаторы
**** Управляющие конструкции
**** Булевы выражения
**** Лексический анализ
**** Немного философии
**** Вид сверху
**** Представление "TINY"
**** Пересмотр лексического анализа
**** Разное
**** Процедуры
**** Типы
**** Назад в будущее
**** Конструирование модулей
*** Могу ли я использовать в программе скрипт с Дельфи синтаксисом
*** Использование компилятора Delphi (dcc32.exe) в прикладных программах
** Вокруг и около Паскаля или другие компиляторы Дельфи/Паскаль
*** Пишем игры на MIDletPascal
*** Lazarus: Delphi, кросс-платформенная, Open Source?! 
*** Турбо Дельфи