Delphi 2010

Блог Александра Божко

Архивы

Рубрики

Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

hnyВ этот раз я не планировал писать традиционный пост об итогах уходящего года. Тем не менее, в последний момент передумал.

Сказать, что год был тяжёлым – не сказать ничего. Конечно, очередные версии Rad Studio выходили в положенное время. Продукт по прежнему интенсивно развивается и здесь вроде бы всё отлично. С другой стороны, по вполне понятным причинам, объём продаж на территории стран бывшего Союза по вполне понятным причинам упал, а  это не может не возыметь определённых последствий. Но об этом чуть позже.

Главным из событий в мире Delphi, в уходящем году, стала покупка embt компанией Idera. Как всегда бывает в таких случаях, это вызвало обеспокоенность сообщества и массу вопросов относительно дальнейшей судьбы продукта. Впрочем, страсти довольно быстро улеглись, после нескольких публичных заявлений, общий смысл которых сводится к следующему. Idera чётко понимает, какие продукты она приобрела, она заинтересована в их развитии и осознаёт ответственность перед многими разработчиками ПО во всём мире. Вместе с тем, вполне вероятно, будет изменена маркетинговая политика, в том числе и механизмы ценообразования. Слова нашли подтверждение уже в этом году. Было выпущено обновление последней версии Rad Studio, а от развития Appmethod компания отказалась. Так или иначе, 2016-й, вероятно принесёт нам много изменений, и хочется верить, что они будут в лучшую сторону.

Теперь о грустном. В московский офисе embt было проведено сокращение. Офис покинули Денис Васильев (менеджер по продуктам RAD Studio), Сергей Терлецкий (менеджер по образованию), Алексей Голопяткин (менеджер по СНГ), Екатерина Макарова (маркетинг). Мы плодотворно сотрудничали на протяжении нескольких лет и я готов отрекомендовать каждого из них, как прекрасного специалиста. Насколько мне известно, они открыты для предложений.

К сожалению, я разделяю тревогу Романа Янковского относительно русскоязычных материалов, посвященных Delphi.

Так или иначе, я хочу поздравить все коллег с наступающим Новым годом, пожелать здоровья, успехов и благополучия. А а кризис желаю воспринимать исключительно как альтернативную возможность!

365


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Минитест на знание VCL

Я решил отнести данный пост к рубрике Редизайн Интерфейса, как наглядный пример того, что заменяя один компонент на другой, пусть и очень похожий функционально, не всегда получается “машинально” обновлять код, используя различные варианты автозамены и прочие ухищрения. Иногда приходится осуществлять полноценный рефакторинг.

Вчера попался мне примерно такой код (я его немного упростил):

procedure TfTest.Button2Click(Sender: TObject);
var
  i: integer;
begin
  i := 0;
  while PageControl1.PageCount > 1 do
  begin
    if PageControl1.ActivePageIndex = i then
    begin
      Inc(i);
      Continue;
    end;

    PageControl1.Pages[i].Free;
  end;
end;

Задача вполне тривиальная. Необходимо удалить все страницы PageControl’а кроме активной. Понятно, что реализация не самая элегантная, но на первый взгляд код вполне рабочий. Найдёте ошибку не заглядывая под кат?

Читать далее


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

EntityDACLogoТехнология объектно-реляционного отображения (ORM) заинтересовала меня более десяти лет назад. Именно тогда мы с группой единомышленников создали Интернет-проект «Mda по-русски» (mda-delphi.ru), посвященный вошедшему в состав Delphi 7 Architect продукту Bold for Delphi. В то время этот продукт вызвал довольно оживленный интерес у Delphi разработчиков, нам удалось организовать довольно большое и продуктивное сообщество, собрать множество материалов и полезных наработок.  К сожалению, проект исчерпал себя, отчасти ввиду кризиса Delphi, отчасти из-за субъективных обстоятельств, но в основном из-за того, что Bold перестал официально поддерживаться.

Так или иначе, интерес к подобным решениям существует, и довольно странно, что в то время как для других сред разработки есть огромное количество различных ORM библиотек, для Delphi их не так и много. Если верить Wikipedia за всю историю существования Delphi, было лишь три проприетарные реализации. Это, Bold for Delphi, абсолютно провальный проект ECO, реализованный компанией Borland для Delphi for .Net, и, возможно вы удивитесь, вполне современный, поддерживаемый и активно развивающийся проект от компании DevArtEntityDAC.
Именно о последнем продукте сегодня и пойдет речь.

Но прежде всего, давайте разберемся с тем, что же такое ORM и какие преимущества эта технология предоставляет разработчикам. Согласно всё той же Wikipedia, ORM (англ. object-relational mapping, рус. объектно-реляционное отображение) это технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных».

Основная цель использования ORM подхода – увеличение продуктивности разработки. Достигается это за счет разделения бизнес-логики приложения и низкоуровневых операций по взаимодействию с БД, что, в свою очередь, позволяет разработчикам ускорить процесс создания проектов и облегчить их сопровождение.

Очевидно, что именно с этой точки зрения и следует рассматривать EntityDAC. Читать далее


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

БезымянныйНа фоне последних событий а мире Delphi незамеченной осталась книжная новинка. Обучение мобильной разработке на Delphi. Автор книги, наверняка, хорошо  вам знаком. Это Всеволод Леонов. Да, да. Тот самый Всеволод Леонов, который ещё пару лет назад работал в Enbarcadero, проводил вебинары и колесил по всему СНГ, представляя новые продукты компании. Иными словами, компетентность автора сомнений не вызывает. Но отличительной чертой книги, помимо её бесплатности, является то, что она рассчитана на начинающих. Именно то, чего долгое не хватало новичкам для “быстрого старта”. Изначально книга задумывалась, как книга для школьников. Однако, я не скажу, что она совсем уж детская. Студентам и просто начинающим программистам, вероятно, она будет вполне интересна. У меня даже возникла ассоциация с книгами Архангельского.

Впрочем, не буду много рассказывать о самой книге, вы ее можете бесплатно скачать. А я, не мог не воспользоваться своими дружескими отношениями с автором, и взял у него интервью, текст которого привожу ниже.

- Сев, привет. Книгу написал?
– Да, Саш, есть такое. Сам от себя не ожидал, но сложились обстоятельства.

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

– Не обязательно было писать книгу. Писал бы блог.
– Порывался. Но потом мы в Samsung совместно с Embarcadero сделали такой “кейс” для школьников. Ежегодно в Москве проводится конкурс “Школа реальных дел”, где команды получают “задание” от вендоров. Мы вместе в прошлом году курировали проекты команд на тему “разработка электронного учебника на Delphi”. Работал я, Сергей Терлецкий и Денис Васильев. Екатерина Макарова тоже помогала. Наш “кейс” стал “образцово-показательным” в масштабах Москвы. Но без книг было трудно.

– Почему? Можно было сделать вебинары…
– Да, мы их и делали. Я вёл “проектную” часть вместе с Сергеем, Денис – чисто “дельфовую”. Но нужна была именно книга в виде “методички”, т.е. сборка пошаговых инструкций с объяснениями по созданию приложения. Читать далее


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Обновилась бесплатная библиотека FireMonkey компонентов Ярослава Бровина FGX.

Новая версия 0.7.0.69 предназначена только для RAD Studio RX.

Полное описание и список изменений новой версии приведен здесь.

 

365


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Сегодня партнеры и клиенты компании Embarcadero получили письмо от Ренди Якобса, CEO компании IDERA, Inc. Я, посчитал, что русскоязычный вариант этого письмо следует выложить в блог, как это сделал из один из наших англоязычных коллег. А заодно выскажу свои соображения по данному поводу.

Я тоже читал, обсуждения в форумах (хотя и не встревал в дискуссии), общался с коллегами и, конечно, переживал за судьбу продукта, который кормит меня на протяжении практически всей моей профессиональной карьеры. Лично меня беспокоило два вопроса. Во-первых то, что  IDERA, образно говоря, DB-шная компания, и далеко не факт, что у них найдется желание и ресурсы для развития нового направления. Я имею введу средства разработки. Во-вторых, интересовало, как IDERA будет выстраивать отношение с Delphi сообществом, и будет ли компания вообще заниматься этим.

В принципе сейчас, мои ожидания можно охарактеризовать как умеренно оптимистичные. Мы получили определенные ответы на означенные выше вопросы. И, по крайней мере, стало понятно, что IDERA  планирует не просто развивать средства разработки Embarcadero (пока я называю эту группу продуктов так), но и имеет определенное виденье этого развития. И, очевидно, скоро мы увидим внятный Road Map.

Ну, а сам факт письма является подтверждением намерений IDERA выстраивать отношения с коммюнити. Так, что надеюсь, для Delphi сообщества, в том числе и русскоязычного, всё сложится наилучшим образом. Поэтому книги по Java и C# отвожу обратно в гараж и привожу полный текст письма Ренди Якобса.

Читать далее


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Компания Idera объявила о договоренности по приобретению Embarcadero Technologies. Ожидается, что сделка будет завершена в середине октября. Официальный пресс-релиз вы можете прочесть здесь.

 

780_198_11


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

TListView является одним из ключевых компонентов для построения интерфейса мобильного приложения в FireMonkey. Компонент этот не самый простой в использовании, зачастую предполагает значительный объем кода, зато предоставляет разработчику значительную свободу действий. Конечно, в приложениях можно использовать и TListBox, где все намного проще. Но TListBox, возможно, хорош для отображения фиксированного количества записей,  для вывода данных из источников данных, однозначно нужно использовать  TListView.

Цитирую Ярослава Бровина:

Главные отличия TListView от TListBox в:

  1. TListBoxItem - контрол, TListViewItem - нет
  2. В TListBoxItem можно добавлять любые контролы, используя Parent. В TListVIewItem - нет.
  3. TListVIewItem хранит только данные для отображения
  4. TListVIewItem сам выполняет отрисовку хранимых данных через метод Render
  5. За счет собственно ручной отрисовки в TListVIewItem достигается прирост скорости и малое потребление памяти (хранение только актуальных данных)
  6. Чтобы создать свой вариант TListViewItem, нужно создать свой класс итема, в нем реализовать требуемые данные (например время) и создать in-place редактор для редактирования времени, зарегистрировать его и т. д.

 

Сам по себе факт повышения производительности и уменьшения потребления памяти – веский аргумент в пользу использования TListView. Но есть и еще кое что.

Во многих Android приложениях мне приходилось наблюдать следующую реализацию списков. При нажатии на элемент списка (Item, если придерживаться выбранной терминологии), производится определенное действие. Обычно вызывается новая форма для редактирования данных. Но при нажатии с удерживанием (Long Tap) производится совершенно другое действие. И эти события не пересекаются. Иными словами Android приложения умеют четко различать “длинное нажатие” от “обычного”. Более того, ни одно из этих событий не срабатывает при скроллинге списка. Наглядный пример – список писем в Яндекс Почта.

При попытке реализовать подобный функционал с помощью TListBox, я получил чехарду из накладывающихся друг на друга событий. Главной проблемой оказалось отделение скроллинга от обычного нажатия. В TListView, как оказалось, с этим проблем нет. Но правильно определить события – тоже задача довольно интересная. Дабы сэкономить время своим читателям, я поделюсь здесь результатами своих экспериментов. Читать далее


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

В последний день лета Embarcadero выпустила очередную версию Rad Studio. Событие ожидаемое, с недавнего времени релизы выпускаются дважды в год. Неожиданностью стало другое. А именно, смена системы нумерации версии, логотипов и прочей внешней атрибутики. За двадцатилетнюю историю Delphi подобное происходит в третий раз. Хотя, какой-то радикальной “смены имиджа” сейчас не произошло. В принципе, ничего особо странного здесь я не вижу. Тенденция. Девятки пропускаем. Windows 10 – Delphi 10 – Rad Studio 10. Итак, RAD Studio 10 Seattle.

Дальше сразу о приятном. iso-образ новой студии (7,2 Гб), наконец начал загружаться быстро (со скоростью моего домашнего канала :)). Установка тоже прошла довольно быстро и без эксцессов. При запуске новая Студия порадовала приятной обновленной заставкой.

Seattle

Читать далее


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Часть #0

Создание клиентского приложения

Поскольку в нашем случае речь идёт о мобильном приложении, клиентской приложение будет создано с помощью FireMonkey.

  • Создаем новое Multi-Device приложение (настройки не критичны);

DataSnapClient000

Я создаю клиентское приложение в группе, что дает возможность параллельно отлаживать и серверное приложение.

Читать далее


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Продукты DevArt

Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика