Motto

В тихом саду здравомыслия
Пусть на вас постоянно падают
кокосовые орехи пробужденности.
Чогьям Трунгпа РИНПОЧЕ


Версия для мобильного


Показаны сообщения с ярлыком JVCL. Показать все сообщения
Показаны сообщения с ярлыком JVCL. Показать все сообщения

пятница, 19 февраля 2010 г.

Выложил программку, использовавшуюся для сравнения Rx и JVCL компонентов

Выложил программку, использовавшуюся для сравнения свойств и методов Rx и JVCL компонентов. Если кто-то захочет продолжить эксперимент, или просто посмотреть, что и как можно сделать с помощью RTTI в Delphi 2010.

Примечание: скомпилируется только в Delphi 2010 и только, если у вас установлены RxLib и JVCL.

Программка состоит из 3-х юнитов:

  • uRxJvComponents.pas - содержит список классов Rx и JVCL компонентов. Составление этого списка было самой неприятной частью работы и заняло больше всего времени.
  • uCompareClasses.pas - класс отвечающий за сравнение Rx и JVCL компонентов.
  • RxJvCompareMainFormU.pas - главная форма. Умеет запускать сравнение, и отображать результат выполнения в текстовом формате и в html.

Скачать: Rx and Jvcl Compare util.zip с сайта LazyProject.info


Читать дальше..

четверг, 18 февраля 2010 г.

Переход с RxLib на JVCL в деталях. Список пропавших свойств и методов Rx-компонентов.

Вчера в комментарии прозвучала мысль, что предыдущий пост об отличиях компонентов RxLib от JVCL даёт только поверхностный взгляд на изменения в компонентах. Ну что же, вот полный список всех public и published свойств и методов, которые пропали в JVCL-контролах. Для каждого компонента.

Ante Scriptum: Мне положительно нравится новое RTTI в Delphi 2010. =)

Примечание: некоторые свойства и методы, на самом деле остались и в JVCL-версии, но были переименованы, либо у них изменились названия типов в параметра (я сравнивал методы по полным названиям). Однако, программка делающая сравнение с помощью RTTI, вывела в список и их.


Читать дальше..

вторник, 16 февраля 2010 г.

Переход с RxLib на Jvcl. Какие изменения?

Это материал для тех, кто ещё использует библиотеку RxLib и рассматривает возможность перехода на юникод. В 2002-году библиотека RxLib была официально включена в состав JVCL. В JVCL есть утилита для быстрой замены всех Rx компонентов, функций и юнитов на JVCL-версии. См. пост Jvcl Dev Tools: JvclConvert.

Почему стоит перейти на JVCL:

  1. В отличие от RxLib, JVCL развивается. Ошибки исправляются. Регулярно выходят версии с поддержкой новых версий Delphi.
  2. JVCL контролы поддерживают новые версии Windows и Windows-стили.

В этом посте перечислены все Rx компоненты. Для каждого указан соответствующий Jvcl компонент, package, и краткий список отличий.


Читать дальше..

среда, 10 февраля 2010 г.

JVCL dev tools

JVCL содержит несколько приятных утилит, способных упростить разработку библиотек компонентов. Эти утилиты находятся в папке JVCL\devtools. Большая часть из них работает из командной строки. Большинство утилит описаны в файле devtools.txt. Этот пост является частичным переводом того файла с комментариями.

Наиболее интересным является JVCLConvert, позволяющий легко перейти с использования RxLib на JVCL. Также, разработчику библиотек может быть интересен PackagesGenerator позволяющий создавать по шаблону файлы проектов и групп проектов для разных версий Delphi (PackagesGenerator не описан в devtools.txt и я с ним тоже не разбирался).

Чтобы скомпилировать утилиты нужно запустить CompileDevTools.bat. Однако, если у вас на компьютере установлено несколько версий Delphi, то лучше скомпилировать их вручную в IDE, открыв группу проектов devtools.bpg. При использовании DFMCleaner я столкнулся с ситуацией, когда преобразованная форма отказалась читаться в Delphi6. Я не исследовал причину, но подозреваю что это случилось из-за того, что DFMCleaner был скомпилирован компилятором от Delphi 2010. После перекомпиляции вручную в Delphi 6, всё заработало должным образом.


Читать дальше..

воскресенье, 7 февраля 2010 г.

RxLib для Delphi 6-2010 доступна для скачивания

Доступна для скачивания библиотека RxLib (2.7.7.4) с поддержкой Delphi 2009 и 2010.

Эта версия основана на последней ревизии в репозитории проекта на sf.net. Плюс к ней были применены изменения, которые сделал psa_1974 для поддержки юникода. Те, кто уже использует версию от psa_1974, могут не обновляться - там то же самое.

В данный момент все компоненты библиотеки RxLib включены в JVCL. А развитие RxLib фактически заморожено. В JVCL даже есть удобный инструмент для замены Rx-компонентов, функций и юнитов на JVCL-аналоги. И даже лучше переходить на JVCL-версию, так как она имеет поддержку тем Windows, плюс некоторые компоненты были существенно дополнены.

Скачать можно на официальной странице RxLib в SourceForge:

http://sourceforge.net/projects/rxlib/files/

п.с. В скором времени я буду переводить несколько проектов с RxLib на JVCL и напишу пост о переходе. А также о разнице между Rx и JVCL версиями.


Читать дальше..

понедельник, 1 февраля 2010 г.

Описание JVCL-контролов: закладка Jv Edits

image   JVCL – бесплатная библиотека с открытым исходным кодом, которую можно использовать в ПО с закрытым исходным кодом по лицензии MPL1.1, так и в свободном ПО.

Стоит помнить, что если вы найдёте ошибку (а поработав с этими компонентами вплотную, вы наверняка найдёте не одну недоработку), то не стоит о ней умалчивать. Вы действительно поможете Delphi-сообществу, записав отчёт об ошибке и приложив к нему небольшую программу, иллюстрирующую ошибку в баг-трекере Jedi.

Также, помните о том, что для большинства компонент доступны программы-примеры. Они находятся в папке JVCL\Examples.

Из всех контролов это закладки, мне были интересны только TjvFilenaneEdit, TjvDirectoryEdit, TjvRichEdit и TjvHLEditor (подсветка синтаксиса в Delphi). Тем, кто использует неюникодную версию Delphi может быть интересен TjvHLWideEditor (редактор с подсветкой синтаксиса, поддерживающий юникод).


Читать дальше..

четверг, 31 декабря 2009 г.

Большое подведение итогов по 2009 году и небольшой подарок в конце

Мир Delphi

Borland Inprise Borland Codegear Embarcadero в этом году анонсировали свои планы по развитию Delphi. В числе планов была упомянута взбудоражившая блогосферу кроссплатформенность.

В этом году вышла первая версия Delphi разработанная в Embarcadero – Delphi 2010. Эта версия Delphi характеризовалась большим количеством исправлений ошибок, некоторые из которых тянулись ещё со времён Delphi 7. Но стабильность – не единственный плюс этой версии, посмотрите также и на внушительный список нововведений в Delphi 2010.

В этом году Embarcadero продемонстрировали, что в отличие от Borland-a, они готовы к диалогу с Delphi-сообществом. В этом году Embarcadero провело несколько опросов дающих пользователям возможность оценить нововведения в последних версиях IDE, ожидаемые новинки, так и поддержку, и схемы лицензирования.


Читать дальше..

суббота, 1 августа 2009 г.

Валидаторы в JVCL. Jv Validators.

Среди множества нужных и не очень компонентов бесплатной библиотеки JVCL, есть несколько компонентов предоставляющих лёгкий способ проверить на правильность введённые пользователем данные, и показать соответствующую иконку. Всё это реализовано в компонентах, которые расположены на закладке Jv Validators.

JVCL валидаторы в действии

image_thumb

Валидаторы из JVCL позволяют проверять введённые данные по следующим критериям:

  1. Обязательное для заполнения поле.
  2. Попадание введённого значения в интервал.
  3. Соответствие введённого текста регулярному выражению.
  4. Сравнивать введённое значение с произвольным значением либо со значением, введённым в другой контрол.
  5. Произвольная проверка.
Работа с валидаторами в Delphi

image4_thumb

Подробное описание компонентов для валидации данных из библиотеки JVCL, читайте в блоге Вячеслава Комкова:

Валидаторы в JVCL. Часть 1
Валидаторы в JVCL. Часть 2

 

Описание других возможностей JVCL:


Читать дальше..

понедельник, 2 февраля 2009 г.

JvAppFrm package: Компоненты JvApplication, Forms.

Закладка компонентов Jv Application, Forms

Эта закладка в Jedi Visual Control Library(JVCL), содержит компоненты, позволяющие разработчику без усилий продемонстрировать отстутствие чувства вкуса и в течение пары минут создать приложение с раздражающим дизайном. =) Я говорю о компонентах для создания “анимации” в заголовках форм и наложения фоновой картинки на саму форму. Впрочем, пара полезных компонентов там тоже есть.

JvAppEvents: TJvAppEvents

Компонент предназначен для создания обработчиков событий TApplication и задания значения некоторых свойств TApplication в режиме дизайна. Фактически представляет собой обёртку над классом TApplication. Компонент пришёл в JVCL из библиотеки RxLib.

JvFormMagnet: TJvFormMagnet

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


Читать дальше..

среда, 31 декабря 2008 г.

Создание wizarda в Delphi с помощью JVCL. Описание закладки JvWizard.

Компоненты Jv WIzard в Дельфи 2009В бесплатной библиотеке компонентов JVCL есть  контролы, позволяющие быстро соорудить свой интерфейс a la Wizard.

Это 4 компонента: TjvWizard – собственно сам wizard и TjvWizardRouteMapSteps, TJvWizardRouteMapNodes, TjvWizardRouteMapList предназначенные для отображения “карты” wizarda.

Компонент TjvWizard является базой для построения “волшебника”. По структуре TjvWizard очень похож на TPageControl. Он содержит список страниц wizarda(наследников от TJvWizardCustomPage) и общие настройки wizard-a: размеры панели с кнопками, размеры кнопок, заголовки(Caption) кнопок(Next, Back), картинки(glyph), ModalResult кнопок(актуально для кнопок Cancel и Finish), обработчики событий. TJvWizard содержит 7 предопределённых кнопки: Back, Next, To first page, To last page, Cancel, Finish и Help. Можно добавлять и свои.


Читать дальше..

воскресенье, 28 декабря 2008 г.

Введение в JCL(JEDI Code Library) и JVCL(JEDI Visual Component Library)

Введение

JCL – это сокращение от JEDI Code Library. JCL - это библиотека для Delphi с открытым исходным кодом. JEDI Code Library неспроста называется именно библиотекой кода, она содержит только процедуры, функции, классы, интерфейсы и ни одного компонента. JCL составлена из кода, пожертвованного разными разработчиками. Из пожертвованных компонент была составлена библиотека JVCL – JEDI Visual Component Library. Для установки JVCL понадобится уже было установленная JCL. О некоторых компонентах JVCL можно почитать в моём блоге в категории JVCL.

JCL доступна по двум лицензиям: Mozilla Public License(MPL) 1.1 и LGPL. Лицензия MPL позволяет использовать библиотеку в коммерческих проектах с закрытым кодом, а LGPL не знаю зачем нужна(возможно, чтобы дать возможность использовать код сторонникам GNU GPL). Поправьте, если я неправ. А если кто-нибудь может объяснить лучше, сделайте это.

Почему я об этом пишу

Потому что на русском языке практически нет информации об этих библиотеках. Некоторые разработчики предпочитают использовать взломанные версии коммерческих библиотек, нарушая закон, хотя вполне может быть, что для достижения целей им хватило бы и бесплатных JCL и/или JVCL. Многие разработчики изобретают велосипеды, решая классические задачи(что хорошо) и допуская классические ошибки(что плохо, но даёт опыт) и выкладывая решения с ошибками в интернет(что не очень хорошо), а то и публикуя ошибки в книгах(что ужасно). Я надеюсь, что популяризация этих библиотек поможет привлечь новых пользователей, а может даже и разработчиков. =)

Отмазка: К слову, я сам использую эти библиотеки недолго, поэтому при описании вещей с которыми не работал, буду кратко отделываться общими фразами и перечислением свойств, методов, классов.


Читать дальше..

пятница, 26 декабря 2008 г.

Невизуальные компоненты JVCL. Описание закладки JvSystem.

image

Визуальные контролы

JvClipboardViewer: TJvClipboardViewer

Единственный визуальный контрол на вкладке JvSystem. Является наследником TScrollBox. Отображает содержимое буфера обмена. Следит за буфером обмена и автоматически обновляется при изменении. Поддерживает показ следующих данных: Empty, Unknown, Text, Bitmap, Metafile, Palette, OemText, Picture, Component, Icon.

Невизуальные компоненты

JvClipboardMonitor: TJvClipboardMonitor

TJvClipboardMonitor следит за буфером обмена(Clipboard) генерирует событие OnChange каждый раз, когда содержимое изменяется. Имеет 2 свойства: Enable и OnChange.

Помимо компонента JvClipboardMonitor.pas содержит две функции по работе с буфером обмена. Одна сохраняет содержимое буфера обмена в поток(TStream), а другая помещает содержимое потока(TStream) в буфер обмена.

procedure SaveClipboardToStream(Format: Word; Stream: TStream);
function LoadClipboardFromStream(Stream: TStream): Word;

JvAppCommand: TJvAppCommand

Компонент вешает хук на оконную процедуру формы и перехватывает сообщения WM_APPCOMMAND. Для каждого сообщения вызывается событие OnAppCommand.

JvHidDeviceController: TJvHidDeviceController

Обеспечивает поддержку устройств с HID (Human Interface Device), таких как мышки, джойстики, клавиатуры и прочие. Имеет события: OnArrival, OnDeviceChange, OnDeviceData, OnDeviceDataError, OnDeviceUnplug, OnEnumerate, OnRemoval. Помимо компонента, модуль содержит классы TJvHidDevice, TJvHidDeviceReadThread, TJvHidPnpInfo.

Читать дальше..

четверг, 25 декабря 2008 г.

Описание диалогов в JVCL. JvDialogs. Часть 2.

В отличие от диалогов описанных в предыдущем посте, диалоги описанные здесь, выполняют более полезные функции. =)

Палитра компонентов JVCL JvDialogs

Диалоги, построенные на Delphi


TJvDesktopAlert и TJvDesktopAlertStack

Компоненты для показа всплывающих окошек.(Popup hint window).

Всплывающие из трея прозрачные окошки на Delphi 
Можно настраивать любые параметры, окошки появляются на заданное время и тают по истечении. При наведении мышки, они перестают пропадать. Есть возможность перетаскивать их мышкой, обрабатывать клики на разных областях, присваивать Popup menu для стрелочки. TJvDesktopAlert отвечает за прорисовку окошка. TJvDesktopAlertStack отвечает за список активных окошек. Единственный минус с которым я столкнулся при использовании этого компонента – это то, что всё работает хорошо до тех пор пока мы не попытаемся уместить на нём больше текста. Советую посмотреть демку: JVCL\examples\JvDesktopAlert.

TJvDSADialog

Компонент для создания собственных диалогов(MessageDlg) с галочкой "Не показывать больше это окно"(Don’t Show Again), а также диалогов закрывающихся по таймеру. Прежде чем его использовать обратите внимание на готовые функции предоставленные в модуле JvDSADialogs.pas. Там полно функций, позволяющих показывать диалог с заданными параметрами. Также там есть функции заменяющие стандартные ShowMessage, MessageDlg, MessageDlgEx.Диалог сделанный на Delphi с галочкой "Больше не показывать" и обратным отсчётом
Этот компонент подробно описан в JVCL Help-е. Также советую посмотреть демку JVCL\Examples\JvDSADialogs\MessageDlgEditor.dpr.


Читать дальше..

Описание диалогов в JVCL. JvDialogs. Часть 1. Системные диалоги.

Бесплатная библиотека компонентов JVCL содержит огромное количество как полезных вещей так и разного хлама. Некоторую часть этих компонентов я опишу у себя в блоге, чтобы дать представление о том, что можно там найти. Да в JVCL не всё гладко, не всё работает как хотелось бы, кое-что глючит, кое-что вообще не работает, но тем не менее, это библиотека с открытым кодом, и найденную ошибку всегда можно отследить в исходниках и исправить, либо просто взять нужный код и написать свой вариант. Чужие исходники это просто кладезь информации для программиста.

Системные диалоги Windows


Читать дальше..

пятница, 19 декабря 2008 г.

Описание DB Grid-ов в JVCL или чем JvUltimateDbGrid лучше стандартного DbGrid.

В бесплатной библиотеке компонентов JVCL присутствуют 4 DbGrida. TJvgDbGrid, TJvDbGrid, TJvDBUltimGrid и TJvgVertDbSGrid. Я сравнил доступные гриды. Самым лучшим оказался TJvDBUltimGrid(хотя Ehlib даже версии 3.6 ему не переплюнуть).

TJvgDbGrid – DbGrid из библиотеки Globus. TJvgVertDBSGrid – грид отображающий список полей вертикально, отображает только одну запись.

Также в JVCL присутствует несколько компонентов, облегчающих работу с гридом.

  • Компоненты для экспорта содержимого DBGrid в файл, вместе с форматированием:
    • TJvDbGridCSVExport, TJvDbGridXMLExport, TJvDbGridHTMLExport – экспорт в CSV, XML и HTML(посмотрел только экспорт в HTML)
    • TJvDBGridExcelExport, TJvDbGridWordExport – требуют установленных Excel, Word.
  • TJvDbGridFooter – дополнительный Footer для DbGrid.
  • TJvgGridHeaderControl – дополнительный header для грида.(не смотрел)

Я опишу в этом посте большинство свойств TJvDBUltimGrid, отсутствующих в стандартном TDbGrid-e. Кстати, большая их часть присутствует и в TJvDbGrid.

Список вкусностей под катом..


Читать дальше..

четверг, 18 декабря 2008 г.

Мысли навеянные Delphi-кодингом 2. JCL+JVCL.

Недавно мне нужно было написать по учёбе пару программок.

С одной домашней работой меня очень выручила библиотека JCL, в частности класс JclExprEval.TExpressionCompiler, позволяющий парсить и вычислять значения математических функций. Хотя, если бы этого парсера не было, я бы просто зашил некоторое количество функций прямо в программу. В конце концов, это же просто очередная программка для университета. Но благодаря JCL, в программку можно ввести любую одномерную функции и получить её график.

Кстати, тот же Lazy Delphi Builder не состоялся бы без JCL. 

А у TJvDbGrid есть вкусное свойство, позволяющее назначать каждой колонке свой редактор.

Это о плюсах свободных библиотек.

А теперь о минусах.


Читать дальше..

Постоянные читатели