http://volmsoft.com
Продукты / Исходники / Компоненты
Главное меню
Главная
Продукты
Загрузить
Оплатить
Форум
Контакты
Продукты
Коммерческие
Бесплатные
Исходники
Исходники
Программы
Библиотеки
Компоненты
MD-плееры
CD-плееры
MP3-плееры
Кассетные
Диктофоны
Радиоприемники
Фотокамеры
Видеокамеры
Радиотелефоны
Сотовые
Карманные ПК
Ноутбуки
Переводчики
Партнерство
при покупке - скидка
Исходники компонентов Загрузить

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

Почти все они написаны на основе или стандартных, или созданных кем-либо компонентов и работают под Delphi 6.

TVQuery
Наверняка все мы любим использовать ADO, когда работаем с базами данных от Microsoft... Вот и я тоже... С другой стороны, после большого количества программ, написанных в былые годы, когда BDE затмевало всех, привычка работы с TQuery въелась в сознание и в код настолько сильно, что, увидев свойства и методы TADOQuery - я заплакал: Все проекты нужно было переделывать очень основательно. (а переделывать приходилось, так как при работе BDE с MS SQL Server возникали частенько непонятные вещи, которые и в Borland с трудом могли обьяснить) Но успокоившись, решил проекты не трогать, а заставить TADOQuery сделать вид, что он TQuery (или что-то около того). Потратив пару дней, на выходе получил вышеуказанный компонент, с помощью которого переделки в проектах свелись к минимуму... Я вздохнул с облегчением...
 
TVDataSetProvider

Компонент, созданный на основе стандартного TDataSetProvider. Доделки в этом компоненте были вызваны острой необходимостью. А именно: когда были написаны складские программы, которые работали с БД в центральном офисе (а связь офиса со складом у нас была реализована по радиоканалу 64К), - выяснилось, что на каждом рабочем месте периодически необходимо делать выборки, результат которых составлял 1 - 3 Мб. Если же учесть, что кроме этого, через канал проходил траффик терминальных сессий вместе с сессиями печати, почты и интернета, то можно сделать вывод, что канал просто погибал под всем этим обьемом. Тогда и был создан этот компонент, основным достоинством которого является умение упаковывать исходящий траффик RAR-алгоритмом. Траффик в моих программах снизился в 2,5 - 10 раз. После этого канал задышал намного легче...

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

Для упаковки - распаковки использовался компонент TCompress, который можно найти по адресу http://www.spis.co.nz/compress.htm, из которого собственно использовалась только одна функция - CompressString

Кроме того, используя возможность обмена с клиентами обычными строками, была введена возможность (с помощью предопределенных значений) управления транзакциями прямо из клиентского компонента TVClientDataSet.

 
TVClientDataSet

Компонент, построенный на базе стандартного TClientDataSet. Работает в паре с TVDataSetProvider (распаковка входящего траффика - используется функция ExpandString компонента TCompress). Плюс к этому, вводит некоторую дополнительную функциональность.

  • Добавлена совместимость с TQuery:
    • Свойство SQL
    • Метод ParamByName
    • Метод ExecSQL(aRetryCount:integer = 0) - очень редко, в специфических ситуациях, случаются блуждающие ошибки, когда достаточно просто повторить запрос и ошибка уже не возникает. Это бывало у меня только при работе с удаленными источниками данных. Для этого введен параметр aRetryCount.
  • Добавлено свойство ClearDataBeforeOpen - пришлось ввести его из-за ошибок, которые возникали иногда при повторном выполнении запроса, когда данные старого запроса оставались в локальном кэше.
  • Добавлено свойство ChangeCursor - чтобы во время обращения к данным, курсор принимал указанную Вами форму.
  • Переписан метод Open(aRetryCount:integer = 0) см. метод ExecSQL...
 
TVListView

Построен на основе стандартного TCustomListView. Здесь я делал попытку запоминать ширину столбцов в реестре, после того как пользователь изменит ее. Сделано на скорую руку. В принципе работает, хотя я сам недоволен слишком низкой функциональностью... Надо бы доработать, но времени нет. Если кто-то возьмется, (или посоветует что-либо уже готовое) - буду очень благодарен. Единственное мое стремление в данном случае, да и во всех остальных случаях - не нарушать совместимость со стандартными компонентами, а только наращивать ее. Это должен быть стандартный TListView плюс некоторая функциональность. (Правда я сам немного нарушил это правило в данном примере, так как этот компонент призван отображать данные ТОЛЬКО в строках и столбцах)

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

 
TVSplit
Две панельки, между ними сплиттер, все это объединено в одно целое... Такого компонента, так чтобы он был сделан профессионально, я до сих пор не могу нигде найти. Вот в JBuilder-е есть, а в Delphi нет, хоть тресни! Поэтому взял, что смог найти на www.torry.ru (AdvSplitter from Charles Bedard), добавил сохранение кое-каких свойств в реестре, чуть причесал под себя и использую до сих пор... Если есть вопросы - читайте исходный код. Там все должно быть понятно...
 
TXJustOne
Дословно переводится как "Дави вторую копию!" :-) Еще один сторонний компонент, который мне понравился (XJustOne from Gennady Makeev). Честно использует мьютексы. Опять же, пару мелких доработок под себя - и в дело!
 
TSakEmail
Неплохой набор компонентов для работы с почтой от Sergio Kessler, хотя назвать его лучшим вряд ли можно. Содержит документацию и примеры. Весь в исходниках, что и определило его выбор в свое время. Найден на torry.ru
 
RX Library
Довольно большая библиотека компонентов, которую используют многие... Ну и я туда же. На тот случай, если не сможете ее найти - берите у меня.

 

Продукты / Исходники / Компоненты
Оптимизировано под разрешение 800x600 для IE 5.0 Copyright © VolmSoft 758974-8103732-755196
Яндекс цитирования