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

Купить Delphi

Screenshot - 10_12_2011 , 12_35_03 AMПри работе с 3D приложениями FireMonkey бывает достаточно сложно выделить объект (компонент)  на форме. Если меньший по размеру объект расположен “за” большим, то “поймать” его мышью фактически невозможно. Для того, что бы решить эту проблему следует использовать окноStructure” (находится в левой верхней части IDE). Хотя в более ранних версиях Delphi разработчики не часто его использовали, при разработке 3D приложений без него, пожалуй, не обойтись. Позицию объекта и угол поворота лучше задавать в Object Inspector. С помощью мыши вы сможете лишь приблизительно установить их значения. Не доверяйте представлению из одной точки. Переключившись на другую камеру, вы можете обнаружить, что два объекта друг относительно друга расположены не совсем так, как вы ожидали. Поэтому всегда старайтесь проверять абсолютные значения координат.

Соответственно, давняя рекомендация о том, что компоненты, размещенные на форме, следует называть осмысленно, становится особенно актуальной. Если придерживаться этого правила нам не придется долго искать нужный компонент среди десятков других.

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

FireMonkey. Tips & Tricks #0
FireMonkey. Tips & Tricks #2 (Upd2)
FireMonkey. Tips & Tricks #3
FireMonkey. Tips & Tricks #4

Содержание:

В ожидании x64: WOW64
Старые приложения в новом мире… Александр Алексеев
Delphi и Unicode
Объясняем основы Петер Присман
Что будем праздновать?
Всегда забываю памятные даты Петер Бейлсма
Проект Xfont
Работаем со шрифтами Давид Дирксе
Учимся использовать FastReport 4 для VCL, часть 1
Не только для чайников Сергей Любезный
Введение в 64 бита на Windows
Всё, что вы только хотели знать Александр Алексеев
Создание web-приложений для iPhone/iPod/iPad
с Delphi и TMS controls

Просто изумительный пакет Бруно Ференс
Введение в базы данных, часть 3: TDataSet
Кто может обойтись без БД? Кэри Дженсен
64-битные Delphi программы уже в пути
Эта статья публикуется с любезного разрешения Embarcadero
Узнаем кое-что… Примож Габриельчич
Программирование на Паскале в ОС Android
Вы Чужой? Или Андроид? Фелипе Монтейру де Кавалью
Альтернативы FieldByName
Хотите научиться чему-нибудь новому? Хэнк Схрей
Компоненты FlexCel в действии Группа компонентов ‘musthave’ Зигфрид Цур

Очередная акция от Embarcadero.

До 31 мая 2011 сделать обновление до RAD Studio XE могут пользователи любых старых версий Delphi, C++Builder, RAD Studio или Borland Developer Studio.

RAD Studio XE

Стоимость RAD Studio до 31 мая:
$499 – RAD Studio Professional
$1299 – RAD Studio Enterprise
А также для разработчиков, использующих SQL Server, специальная цена $595* на DB PowerStudio for SQL Server для разработки, администрирования и настройки производительности баз данных

*данная цена действует только при покупке RAD Studio XE в редакциях Professional, Enterprise, Architect.

Купить RAD Studio XE on-line

Одной из самых неприятных проблем при переводе проекта на старшую версию Delphi стала локализация. Я использую “родной” инструментарий. Подробно он описан в блоге Александра Алексеева.

На первый взгляд, языковые проекты нормально конвертируются. Более того, несмотря на то, что в Delphi 2007 специфические символы в переводах не отображаются правильно, *.dfn файлы (те в которых хранятся переводы ресурсов формы) содержат юникод строки. Поэтому, если эти проекты пересобрать в Delphi 2009/2010/XE, то все ранее вбитые переводы будут выглядеть так, как они должны выглядеть без дополнительных телодвижений:

translate

Но при детальном рассмотрении, выявляются некоторые артефакты.

Вот так будет отрабатываться казалось бы обычный код MessageDlg(‘To continue please restart the application.’, mtWarning, [mbOK], 0); на том же чешском языке.

artefact

Читать далее

В предыдущих постах серии я упоминал о том, что разработка новой версии приложения велась в 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

К сожалению, последовательным, в отношении постов быть не получается. Да, и DevExpress, с которым я сейчас плотно работаю, и о котором я в последнее время много рассказываю, постоянно подбрасывает интересные задачи… Поэтому, еще одна подрубрика. Продолжение “Заметок на полях” будет. Но TIPS & TRICKS это, скорее, для того, что бы не забыть как сделать то-то и то-то… Если кто-то столкнется с аналогичными задачами и кому-то это сэкономит время – я буду рад.

Для тех, кого заинтересовала тема Scheduller’а, будут интересна серия постов в блоге Delphi в Internet.

А пока…

Читать далее

Перед тем, как продолжить рассказ о TcxScheduler, начатый в прошлом посте серии,  отвечу на многочисленные вопросы читателей блога, относительно русской документации по DevExpress. Ее нет, и как мне удалось узнать, ее создание не планируется. Но возможно создание шаблонов руководства пользователя на русском  языке.

Вне зависимости от того, какое представление активно, в режиме исполнения (Run Time Mode) мы можем вызвать контекстное меню и обнаружить два неактивных пункта: New Event (новое событие) и New All Day Event (новое ежедневное событие). Очевидно, предполагается, что ExpressScheduler позволяет добавлять события. Для того, что бы активировать данную возможность добавим компонент TcxSchedulerStorage и укажем его в качестве значения свойства Storage нашего компонента TcxScheduler.

Теперь, запустив приложение, мы можем убедиться, что пункты контекстного меню стали доступными. Вызвав пункт New Event, мы увидим диалоговое окно, позволяющее настроить параметры события. Соответственно, после создания события появляется и его отображение в ExpressScheduler’е.

Читать далее

Серия моих постов о DevExpress осталась не законченной. И еще несколько постов про гриды я планирую сделать. Но недавно свалилась очередная интересная задача. Потребовалось “прикрутить” к приложению диаграмму Гантта.

Для решения данной задачи придется использовать сторонние компоненты. Очевидно, что вариантов два ExpressScheduler и TMS Planner. Есть и другие компоненты, но проект – не однодневка. И, вполне вероятно в будущем будет мигрировать на старшие версии Delphi. Своими руками рыть яму проекту не хочу, поэтому использоваться будет то, что гарантированно доживет до следующей версии Delphi. Более того, с учетом того, что DevExpress уже используется в приложении, практически со 100% й вероятностью будет выбран ExpressScheduler. Что, однако, не является поводом не посмотреть на TMS Planner, и не рассказать о нем в блоге.

Но начну, по понятным причинам, с ExpressScheduler.

Итак, прежде всего, посмотрим, из каких элементов состоит ExpressScheduler?

Читать далее

Часть #0

Часть #1

Все изображения кликабельны

Поиск

В прошлой версии Delphi диалог поиска был радикально изменен. Я поработал с ним, скажу честно – мне не понравилось. Однако, так называемая “панель поиска” продолжает совершенствоваться. Так, появилась новая опция “Entire scope“, позволяющая осуществлять поиск не от текущей позиции курсора, а с начала всего диапазона поиска:

Хостинг для хранения картинок

Появились новые горячие клавиши для поиска.

  • ENTER для поиска вниз от курсора;
  • SHIFT+ENTER для поиска вверх от курсора;
  • CTRL+ENTER для поиска с начала диапазона. Читать далее

В комплектацию продукта(Delphi/C++Builder/RAD Studio) входит Контракт на поддержку и сопровождение в течение первого года использования.


Delphi 10.1 Berlin Professional (Обновление со старых версий:55 855,11 руб.)

Delphi 10.1 Berlin Enterprise (Обновление со старых версий:148 381,22 руб.)

Delphi 10.1 Berlin Architect (Обновление со старых версий:244 093,71 руб.)

buy-now


C++Builder 10.1 Berlin Professional (Обновление со старых версий:55 855,11 руб.)

C++Builder 10.1 Berlin Enterprise (Обновление со старых версий:148 381,22 руб.)

C++Builder 10.1 Berlin Architect (Обновление со старых версий:244 093,71 руб.)

buy-now


RAD Studio 10.1 Berlin Professional 154 956,51 руб.(Обновление со старых версий:107 371,44 руб.)

RAD Studio 10.1 Berlin Enterprise (Обновление со старых версий:191 289,54 руб.)

RAD Studio 10.1 Berlin Architect (Обновление со старых версий:287 001,41 руб.)

buy-now


RAD Solution Pack for VCL + 1 год обновлений 121 877,43 руб.

RAD Solution Pack for FMX + 1 год обновлений 121 877,43 руб.

RAD Solution Pack for VCL & FMX + 1 год обновлений 176 105,43 руб.

buy-now

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



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