Здесь Вы можете познакомиться с некоторыми
компонентами, которые я использую в своих программах. Они
будут полезны, если Вы будете работать с исходниками, представленными
на моем сайте.
Почти все они написаны на основе или стандартных,
или созданных кем-либо компонентов и работают под 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 |
Довольно большая библиотека компонентов, которую используют многие... Ну и я туда же. На тот случай, если не сможете ее найти - берите у меня. |
|
|