Блог Александра Божко
Архивы
Рубрики

Купить devExpress

Если вы не любите читать сообщения, которые время от времени выдает вам IDE, то, возможно, данный пост сэкономит вам некоторое количество времени. Речь пойдет о скинах DevExpress. В меню Delphi выберите пункт Project | Modify Skin Options. на экране появится следующий диалог.

skinoptions

По умолчанию, включена поддержка всех скинов. Теперь, предположим, что вы, по каким-то причинам, не хотите использовать все скины. Все же бинарник разрастается, при их использовании. Здесь вы их можете отключить. Но, прежде чем это сделать внимательно прочтите Note.

В секции Uses модуля каждой формы объявления модулей с уже ненужными скинами останутся, и их нужно вычистить руками. Выглядят описания модулей так:

dxSkinOffice2010Blue, dxSkinOffice2010Green….

Что же произойдет, если этого не сделать? Во-первых, размер бинарника не уменьшится. Далее… Вполне вероятно, что в IDE ваш проект будет вести себя вполне пристойно. Чудеса начнутся как только вы попытаетесь запустить приложение вне среды разработки. Так у меня проект, упакованный с помощью ASPack, вообще не стартовал. Я долго не мог разобраться в чем причина, и только запустив редактор ресурсов и обнаружив в нем все скины из набора DevExpress Skin Library, догадался в чем дело.

Так что, будьте внимательны с объявлениями скинов.

Другие статьи серии:

DevExpress. TIPS & TRICKS #0
DevExpress. TIPS & TRICKS #1
DevExpress. TIPS & TRICKS #3
DevExpress. TIPS & TRICKS #4
DevExpress. TIPS & TRICKS #5
DevExpress. TIPS & TRICKS #5.5
DevExpress. TIPS & TRICKS #6
DevExpress. TIPS & TRICKS #7

В предыдущих постах серии я упоминал о том, что разработка новой версии приложения велась в Delphi 2007. Теперь настала очередь перевода проекта на Delphi с поддержкой юникод. В принципе об этой процедуре написано довольно много. Поэтому я остановлюсь только на тех моментах, которые вызвали у меня затруднения. Как обычно в формате “заметок на полях”.

Прежде всего, ASProtect. Я уже писал о том, как правильно осуществлять вызов функций ASProtect API. Это не сложно:

CheckKeyAndDecrypt( PChar(ansistring(eCode.Text)), 
PChar(ansistring(eName.Text)), True )

Однако, описание функции CheckKeyAndDecrypt выглядит следующим образом:

function  CheckKeyAndDecrypt      ( Key, Name : PChar; SaveKey: Boolean ): Boolean; external aspr_ide name ‘CheckKeyAndDecrypt';

Проблема же может возникнуть при вызове функций подобных этой:

function  GetRegistrationInformation   ( ModeID : Byte; var Key : PChar; var Name : PChar ): Boolean; external aspr_ide name ‘GetRegistrationInformation';

Параметры Key и Name – модифицируемые и передать выражение в качестве параметра уже нельзя.

Что делать в этом случае? Да просто изменить заголовки в файле aspr_api.pas.

function  GetRegistrationInformation   ( ModeID : Byte; var Key : PANSIChar; var Name : PANSIChar ): Boolean; external aspr_ide name ‘GetRegistrationInformation';

Вызов остается предельно простым:

var
pchKey, pchName: PANSIChar;

GetRegistrationInformation(0, pchKey, pchName);

Собственно, данный пример наглядно показывает, как работать с функциями, реализованными в dll.

Я покупал ASProtect SKE в 2006-м году и на последние версии продукта моя лицензия не распространяется. Однако, как выяснилось, самый простой вариант – скачать последнюю версию протектора и взять оттуда aspr_api.pas. Все исправления в заголовки там внесены, и с предыдущими версиями продукта работает прекрасно.Там же можно посмотреть и обновленные примеры использования.

Кроме этого, я обнаружил пару проблем с cxGrid (сохранение и восстановление заголовков полей). Но, об этом я напишу по факту решения данной проблемы.

Другие статьи серии:

Редизайн интерфейса приложения. #0
Редизайн интерфейса приложения. #1
Редизайн интерфейса приложения. #2
Редизайн интерфейса приложения. #4
Редизайн интерфейса приложения. #5
Редизайн интерфейса приложения. #6
Редизайн интерфейса приложения. #7
Редизайн интерфейса приложения. #8

Вышел Update 1 для Delphi XE и C++Builder XE. Три способа обновления:

  • с помощью автоматического механизма обновления;
  • ручная проверка обновления;
  • скачивание обновления со страницы загрузок для зарегистрированных пользователей.

Подробнее в блоге Andreano Lanusse.

Дополнительная информация:

Читать далее

Пока я заканчиваю опыты с DataSnap (а там не совсем все просто) , развлеку вас постом о том, какой софт я использую в работе.

Понятное дело, что речь пойдет не обо всем, “что шевелится”, а о лицензионных продуктах. Поскольку в наших условиях можно взять отлом практически на любой софт, то и смысла в таком посте будет мало. Этическую сторону вопроса “покупать или воровать?” я оставлю в стороне.

IDE

Delphi 2007 Architect

На сегодня это мой основной рабочий инструмент, предоставленный работодателем. До этого я использовал Delphi 7 Architect. В настоящий момент эти продукты уже сняты с продажи. Читать далее

Рассказ о TcxGridDBTableView будет не полным, если не упомянуть о полях, а точнее, о столбцах, привязанных к полям набора данных. При подключении View к источнику данных такие столбцы создаются автоматически. В данном случае я имею ввиду объекты TcxGridDBColumn. Проще всего набором столбцов управлять в редакторе View. Но это несложно сделать и с помощью кода.

Читать далее

2-го июня 2010-го года компания Embarcadero Technologies выпустила новую версию Delphi для .NetDelphi Prism 2011. Новая версия Delphi Prism является расширением Visual Studio 2010. По утверждению разработчиков, в данном продукте реализованы возможности аспектно-ориентированного программирования и параллельного программирования, которые не реализованы ни в одном другом языке программирования для .Net.

Основные нововведения (по версии Марко Кэнту): Читать далее

Фильтрация

Фильтрация TcxDBGridDBTableView позволяет отображать некоторую выборку из общего набора данных, отображаемого в гриде, заданную по некоторому условию. По умолчанию данная возможность, так же как и возможность сортировки,  включена. Отключить фильтрацию можно с помощью свойства OptionsCustomize.ColumnFiltering:

cxGrid1DBTableView1.OptionsCustomize.ColumnFiltering:= False;

Собственно, конечный пользователь приложения имеет возможность задать фильтр несколькими способами: Читать далее

Думаю, что перед тем, как продолжить рассмотрение функциональных возможностей Table View будет уместным немного отвлечься и чуть подробнее рассмотреть структуру View.  Как видно из диаграммы, приведенной в предыдущем посте, все Grid View наследуются от класса TcxCustomGridView. И именно в этом классе описано ключевое  свойство View – DataController:

property DataController: TcxCustomDataController;

Это свойство отвечает за подключение View к источнику данных. Кроме этого, DataController реализует функции управления данными, их сортировки, фильтрации и подсчета сумм. Естественно, в каждом наследнике TcxCustomGridView свойство DataController может описываться по-разному, но это всегда будет класс-наследник TcxCustomDataController. Например, для TcxGridDBTableView свойство DataController будет иметь тип TcxGridDBDataController, который наследуется от класса TcxDBDataController, являющегося, в свою очередь, наследником TcxCustomDataController.
Читать далее

В рамках масштабной акции от компании Embarcadero с 26 апреля по 28 июня 2010 года пользователям предоставляется возможность приобрести RAD Studio по цене стандартных средств разработки!

В рамках акции, покупая Delphi 2010 или C++Builder 2010, каждый пользователь бесплатно получит программное решение RAD Studio 2010, включающее в себя Delphi, C++Builder и Delphi Prism и позволяющее значительно быстрее и качественнее создавать приложения для Windows и баз данных. Читать далее

ExpressQuantumGrid

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

Сразу попытаюсь оговорить отдельные моменты. Коммерческое название продукта ExpressQuantumGrid, хотя класс в Delphi называется TcxGrid. Кроме этого грида в состав  ExpressQuantumGrid  Suite входят еще несколько гридов и сопутствующих им компонентов. Но пока здесь речь пойдет только о cxGrid.  Я буду использовать слово “грид”, хотя его фактически не в русском языке. Но изобретать переводы как-то сетка, табличный элемент управления и т.д. я не буду. Грид, он и в Африке грид. Читать далее

Продукты DevArt
Купить онлайн:



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