DesignPatterns. Strategy

Пример с отпуском

Мы можем поехать в отпуск на самолете, поезде или машине. Это будут разные стратегии. Посмотрим, как это реализовать, с помощью соответствующего паттерна.

Main

Интерфейсы и классы стратегий Continue reading

Posted in Delphi | Leave a comment

DesignPatterns. Command

Когда использовать?

  • Когда необходимо ответить действием на действие, callback
  • Когда нужно вести очередь действий с возможностью Undo / Redo
  • Когда нужно последовательное логгирование

Про этот паттерн говорят следующее.

Client – посетитель кафе, Invoker – официантка, Command – листочек с заказом блюда, Receiver – повар

Реализуем данный пример

Continue reading

Posted in Delphi | Leave a comment

DesignPatterns. AbstractFactory

Абстрактная фабрика порождает абстрактные продукты. При применении, вызове клиентом, конкретная фабрика порождает конкретные продукты, опираясь на абстракцию.

Канонический пример

На примере супер героев


Delphi

Main

Фабрика и клиент


C#

Continue reading

Posted in C#, Delphi | Leave a comment

Delphi. TStream. Сохранение строки в TStream и чтение строки из TStream

Пример

 

Posted in Delphi | Leave a comment

Delphi. Hex метаморфозы с байтовой строкой или функции для перевода в Hex и Hex представление и обратно

Вспомогательные функции, из проектов

Пусть на входе есть строка

Строка – > массив байт

Получили массив байт

Байт -> StrHex (Шестнадцатеричное представление)

Шестнадцатеричное представление

Или, расставив пробелы, получим

Шестнадцатеричное представление -> байты

Получили массив байт

Либо есть ещё один вариант, через стандартные функции Delphi

Массив байт -> строка

Вернулась строка

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

Результат

 

 

 

Posted in Delphi | Leave a comment

Delphi. UniGUi. Синхронный и асинхронный режимы модальных окон

Все мы привыкли писать что-то такое для модальных окон

Но в UniGUI, для того, чтобы это срабатывало так как мы привыкли, надо подключать синхронный режим.

По умолчанию эта галчонка отключена. Я сначала думал, что это баг, оказалось фича )))

В ином случае, надо обрабатывать это в стиле веб. Более детально смотрите в документации UniGUI

Posted in Delphi, UniGui | Comments Off on Delphi. UniGUi. Синхронный и асинхронный режимы модальных окон

Delphi. UniGUI. Веб / Мобильное приложение в стиле Hybrid

Продолжаем исследовать космический UniGUi. Оказывается, есть режим Hybrid, когда мы можем в одном проекте одновременно разрабатывать веб-десктоп и веб-мобильное приложение. Для этого, в проект нужно добавить мобильную форму, то есть так…

Теперь, по одному адресу в сети, в зависимости от того, на чем мы будем выходить – ноутбуке или телефоне, будет загружаться та или иная версия нашего проекта.

По-моему,  это гениально !

Posted in Delphi | Comments Off on Delphi. UniGUI. Веб / Мобильное приложение в стиле Hybrid

Delphi.MD5

Через Indy

 

Posted in Delphi | Comments Off on Delphi.MD5

Представление положительных и отрицательных чисел в памяти компьютера. Прямой и дополнительный код числа

Прямой код

Прямой код – это представление числа в двоичной системе счисления, при котором первый (старший) разряд отводится под знак числа. Если число положительное, то в левый разряд записывается 0; если число отрицательное, то в левый разряд записывается 1.

Таким образом, в двоичной системе счисления, используя прямой код, в восьмиразрядной ячейке (байте) можно записать семиразрядное число. Например:

0 0001101 – положительное число
1 0001101 – отрицательное число

Количество значений, которые можно поместить в семиразрядной ячейке со знаком в дополнительном разряде равно 256. Это совпадает с количеством значений, которые можно поместить в восьмиразрядную ячейку без указания знака. Однако диапазон значений уже другой, ему принадлежат значения от -128 до 127 включительно (при переводе в десятичную систему счисления).

При этом в вычислительной технике прямой код используется почти исключительно для представления положительных чисел.

Для отрицательных чисел используется так называемый дополнительный код. Это связано с удобством выполнения операций над числами электронными устройствами компьютера. Continue reading

Posted in Delphi | Comments Off on Представление положительных и отрицательных чисел в памяти компьютера. Прямой и дополнительный код числа

Delphi.IdHTTPServer.Решение проблемы с русскими символами

Есть такая проблема, а точнее 2 проблемы,

  1. Параметры POST / Get запросов, если это русский текст, превращаются в кракозябры при парсинге запроса. То есть

    Видно, что это UTF, поэтому нам понадобится следующая функция UtfToAnsi, например такая

    Применение она имеет следующее
  2.  Есть ещё одна проблема. При попытке ответить русским текстом имеем ту же проблему, приходят кракозябры, ну здесь проще, правим ответ сервера вот так…

    Огромное спасибо форуму.
Posted in Delphi | Comments Off on Delphi.IdHTTPServer.Решение проблемы с русскими символами