Дослідження захисту ArtMoney. Частина перша

Вітаю! Сам ArtMoney був закейгенен мною давним-давно. Я не перший раз вже пробую почати писати статтю про те, як відбувався кейгенинг цієї програми, але завжди десь стопорился. На цей раз, я вирішив доробити все до кінця! Плюс, цю статтю можна вважати продовженням циклу статей про крякинге для новачків.

Отже, в цій статті ви дізнаєтеся, як я писав кейген до ArtMoney (тут буде описана версія 7.45.1).

Читати далі →

Delphi зі смаком Cocoa

Delphi зі смаком Cocoa
У житті кожного чоловіка наступає момент, коли, окинувши поглядом свіжу світову статистику з використання операційних систем, він розуміє, що настав час великих змін. Будинок, роботу і дружину при цьому міняти зовсім не обов'язково, а от спробувати охопити аудиторію, яка помітно виросла за останній десяток років, все ж варто. Мова піде про розробку на Delphi для macOS (в дівоцтві OS X) і про те, як ми в компанії TamoSoft вибирали інструменти, освоювали нове, вчилися, підривалися на мінах і отримували задоволення від процесу.

Читати далі →

VCL, позбавляємося від мерехтіння, раз і назавжди

image
Delphi і C++Builder розробники, що використовують VCL не з чуток знають про всюдисущої проблеми мерехтіння контролів.
Мерехтіння відбувається при перемальовуванні, внаслідок того, що спочатку отрисовываеться фон компонента, і тільки потім сам компонент.
І якщо у випадку з спадкоємцями від TWinControl частковим вирішенням проблеми є установка властивості DoubleBuffered True, що змушує контрол отрисовываться в буфері(однак DoubleBuffered працює теж не ідеально, до прим.: контрол перестає бути прозорим), то у випадку з TGraphicControl рішення DoubleBuffered просто неможливо, через відсутність у TGraphicControl вікна, настанова DoubleBuffered True у батьків не допомагає, із-за того що відтворення вкладених TGraphicControl-ів відбувається вже після промальовування батька в буфері.
Зазвичай залишається тільки одне — змиритися з мерехтінням, і максимально спростити видачу для мінімізації ефекту, або використовувати можливості винятково TWinControl-и, що не завжди можливо і зручно.
Одного разу намучившись з мерехтінням, я не витримав і вирішив вирішити цю проблему раз і назавжди!
Як мені вдалося вирішити проблему?
Читати далі →

Аналог .Net Entity Framework в Delphi за допомогою RTTI. Частина перша, вступна

Після того, як в Embarcadero оживили Delhi, я повернувся з розробки на C# до більш звичного інструменту. Серйозно порадувало, що більшість синтаксичних можливостей, класів і різних витребеньок» чарівним чином переїхало з шарпа. На жаль, така приємна можливість, як відображення вибірки з бази даних колекції класів залишилася за дужками.

У своїх проектах ми часто стикаємося з необхідністю алгоритмічної обробки різних вибірок, реалізація яких неможлива засобами SQL. Для кожної вибірки створювався клас і кожен раз, коли потрібно створити нову вибірку, доводилося проводити абсолютно однакові рухи, з тією різницею, що заповнювати поля класів доводилося ручками.

Розкинувши мозком і оцінивши можливості RTTI, трудовитрати і готівковий запас бубнов, у нас вийшов список «хотілок» для роботи з БД, яких не вистачає в нашій нудного життя:

  1. Автоматична генерація класів за структурою таблиць розроблюваної БД.
  2. Заповнення списків класів даними з таблиць.
  3. Для реалізації створення класів буде не зайвим зчитувати структуру таблиць БД.
  4. Маючи на руках структуру БД можна автоматизувати:
  • Порівняння структури існуючої БД з еталонною для попередження помилок при оновленні розроблюваного ПЗ у кінцевого користувача;
  • Формування «контракту БД», що містить у собі константи назв таблиць, полів, збережених процедур і функцій;
  • Створення класів з пп. 1. з урахуванням зв'язків між таблицями.
  • Створення «обгорток» для виклику збережених процедур і функцій.
І при правильній реалізації і акуратній роботі далеко починає маячити можливість кроссплатформної роботи між різними типами SQL серверів.

Читати далі →

МСУИИ AmigaVirtual — універсальний ШІ для кожного

ЛоготипПривіт всім любителям і дослідникам штучного інтелекту! У даній статті я хотів би розповісти про цікавий проект: модульною системою універсального штучного інтелекту (МСУИИ) «Amiga Virtual» (AV, «Віртуальна Подружка»). Я розповім про основні принципи її роботи і опишу деякі деталі реалізації, а самі цікаві зможуть досліджувати всі початкові коди. Розробка ведеться на Delphi, але модулі теоретично можуть бути написані на будь-якому ЯП. Дана система буде цікава як кінцевим користувачам чат-ботів та пов'язаних з ними систем, так і розробникам ІІ — адже на її основі можна розробити практично будь-який тип ШІ.

Читати далі →

Історія мов програмування: Delphi — більше, ніж просто мова

image

З Delphi зазвичай асоціюється середовище розробки додатків на основі мови Object Pascal, розробленого фірмою Borland. Ця мова є спадкоємцем Turbo Pascal з об'єктно-орієнтованими розширеннями, який в свою чергу веде свою історію від «чистого» Pascal, створеного Никлаусом Віртом в 1970 році.

Згодом, у 2002 році, розробники з компанії Borland офіційно поставили знак рівності між мовами Delphi і Object Pascal.
Читати далі →