Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
 Аватар для NapalmRain
44 / 43 / 7
Регистрация: 18.05.2010
Сообщений: 688

Создание собственного компонента. Как?

26.03.2012, 12:57. Показов 2799. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго всем времени суток.

Пишу клиент-серверное приложение на основе Client ~ServerSocket'ов

При общении клиента с сервером между собой происходит передача множества команд и параметров.
В связи с чем появилась мысль: Создать отдельные компоненты для клиента и сервера, в которые были бы забиты основные функции параметры команды и прочее и далее просто использовать их, например так
C++
1
MyComponent1->Connect(login, pass);
А там уже дальше внутри этого компонента будет происходить какая-то магия, которая всё сделает.

Необходимость в этом возникла при мысли о написании новых версий hgjuhfvvs? либо, новых программ на основе той логики, которую я сейчас разрабатываю (в теории она должна будет быть универсальной для клиент-серверных программ). И можно писать новые версии, уже не переписывая всю предыдущую кашу до тех пор, пока не понадобится внести существенные изменения.

Два вопроса:
1. возможно ли это?
2. Если возможно, то как?

Заранее благодарю за любые ответы.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.03.2012, 12:57
Ответы с готовыми решениями:

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

Создание собственного компонента на основе TEdit
Мне нужно создать пакет со своим компонентом в c++ builder'e на основе edit'a. В обработчик события надо прописать код, но я не могу...

Создание собственного компонента: Ошибка Unresolved external
Всем привет. Есть задание: Построить класс - потомок класса TStringGrid, у объектов которого при нажатии клавиши F11 исчезают...

5
 Аватар для NapalmRain
44 / 43 / 7
Регистрация: 18.05.2010
Сообщений: 688
27.03.2012, 13:17  [ТС]
Преследую аналогичные цели для разработки другой программы на делфи, дали ссылку на книгу, посвященную теме создания компонентов в делфи. Тут собственно вопрос: в билдере это делается аналогично? Борланд же в конце концов и там и там. Кто-нибудь знает?
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
27.03.2012, 13:37
Тогда сразу надо писАть компонент для делфи, ничего сложного там нет, непривычно, правда, после с++)))
Если это RAD 2009 и дальше (может и раньше, просто я с 6-го билдера сразу на 2009 перешел) то этот компонент будет работать и в билдере.

Добавлено через 2 минуты
А как писать компонент можно нагуглить, а потом посмотреть в исходник любого компонента, чтоб понять как это все устроено.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
27.03.2012, 14:18
Да, С++ Билдер позволяет использовать код и компоненты Делфи.
Но вы определитесь - если дальше будут обсуждаться вопросы, относящихся к Делфи, тема будет почищена и перенесена в соответствуюший раздел.
0
 Аватар для NapalmRain
44 / 43 / 7
Регистрация: 18.05.2010
Сообщений: 688
28.03.2012, 01:23  [ТС]
Нет. Делфи я просто упомянул для общего познания, так как про си++ никто и словом не обмолвился. а меня интересует именно создание компонентов для билдера.
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
28.03.2012, 01:42
Принципы аналогичные. Хотя Borland (уже Embarcadero) делает упор на дельфи, материалов по созданию компонентов на плюсах более, чем достаточно.

Что касается вашей задумки - конечно реально. Тут желательно использовать связку компонент + драйвер. Иными словами, компонент является просто оболочкой для использования драйвера (простейщая библиотека - DLL). В этом случае, вы сможете помимо обновления одного DLL файла для подключения, использовать их дополнительные вариации. Допустим у вас есть продукт А и продукт Б. Оба ваших ПО используют один компонент, но разные DLL для подключения, в которых отличается не адрес/хост подключения, а сам алгоритм, т.е. по какому принципу происходит подключение к конкретному типу сервера.

Поэтому советую вначале ознакомится с основами создания компонентов, затем о создании и использовании динамических DLL и закончить освоением использования вашей БД на низком уровне. Хотя это уже и вопрос третий, ибо можно с чистой совестью использовать стандартные средства, тут уже каждый решает сам.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.03.2012, 01:42
Помогаю со студенческими работами здесь

Создание собственного VCL компонента. Динамическое изменение количества колонок в зависимости от размера объекта
Доброго времени суток всем. Решил при создании своего компонента на основе TStringGrid инкапсулировать в него ряд свойств. Хочется...

Как изменить способ задания свойств в Инспекторе для собственного компонента?
Есть компонент со свойствами типа bool или enum. Как сделать так, чтобы в инспекторе эти свойства задавались соответственно чекбоксом и...

Свойство собственного компонента типа ComboBox
При создании своего компонента, как создать и определить свойство типа ComboBox ? Например: У TButton есть свойство DragMode и в...

Создание компонента,как прикрутить TBitmap->Canvas
Как можно прикрутить канву например к TPanel что бы на нем можно было рисовать как на канве TImage т.е что бы изображение не затералось? ...

Создание собственного класса
подскажите где и как нужно описывать что б создался собственный клас. и для чиво и как он работает))) #include <vcl.h> #pragma...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru