Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Comanche

Вопрос по ActiveX-контролам

06.09.2009, 13:03. Показов 1352. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создаю контрол.
В нём очень было бы здорово использовать дерево - ну просто напрашивается!
Вопрос: если при разработке контрола я воткну на него TreeView из пакета MS Windows Common Controls, надо ли будет мне вместе со своим контролом распространять и весь этот пакет, или же при компиляции проекта элемент TreeView как-нибудь интегрируется 'внутрь' моего контрола, просто увеличив его размер?
До этого всегда обходился стандартными ЭУ при разработке контролов (которые были простейшими). Сейчас впервые берусь за серьёзный - и соответственно прошу совета.
Спасибо.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.09.2009, 13:03
Ответы с готовыми решениями:

Вопрос по Upload & ActiveX
ActiveX написан на Visual Basic - время поджимают, не стала с Visual C++ разбираться. Тем паче, что это первый мой компонент. Нужно...

Вопрос о GravityBox Active PieGraph ActiveX v2.1.48
этот ActiveX только для VB5? В VB6 не удалось его зарегистрировать автоматически. Как это сделать вручную?

Вопрос по контролам
Создаю Windows Forms Control Library. Тест результатов сначала делал напрямую, окрывая новый проект и вствляя контрол на форму... Шото...

9
pl
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
06.09.2009, 13:06
Скорее всего внешний контрол не станет интегрироваться. Это один из минусов VB, все подключаемые контролы необходимо распространять вместе с программой.
0
Comanche
06.09.2009, 13:50
Похоже, вы правы.
Если на мой контрол (уже с TreeView) 'натравить' PDW, то она включает MSCOMCTL.OCX в состав CAB-файла. Да и размер откомпилённого OCX-а уж слишком маленький - в несколько раз меньше размера MSCOMCTL.OCX...

Окей, тогда интересно ваше мнение - не будет ли являться признаком 'плохого тона' таскание за своим контролом увесистого MSCOMCTL.OCX? (правда, он почти во всех виндах есть)

Или лучше попробовать обойтись стандартным ЭУ ListBox?

Стоп, без комментариев к создаваемому контролу однозначный ответ на мой вопрос дать сложно. Если коротко - работая над последним проектом я задолбался сохранять настройки проги из 47-и контролов в INI-файл. Тексты процедур LoadConfig и SaveConfig получились очень громоздкими, при постоянном добавлении новых настроек приходилось дописывать новые строки кода, я путался и т.д. Короче, решил написать контрол, который позволит визуально поставить каждому выбранному ЭУ формы в соответствие некий ключ INI-файла (или опред. раздела реестра), плюс задать логику обработки перед записью/после чтения, ограничения на допустимые значения, авто-преобразования типов, поддержку массивов ЭУ, возможность выполнять заданные действия при граничных значениях и т.д. - короче, всё то, что сейчас у меня понапихано в LoadConfig и SaveConfig. У контрола будут методы: LoadConfig, SaveConfig, CreateDefaultConfig, PrintConfig. Может, и ещё что, - не знаю пока )

Я видел когда-то давно что-то похожее, но уж очень отстойное.

Так вот, для навигации среди контролов формы идеально подходит TreeView с CheckBoxes = True. Особенно удобно 'разворачивать' в нём массивы ЭУ. Плюс - показывать 'по-контейнерную' иерархию ЭУ. Вот я и призадумался насчёт дерева...

Контрол хочу сделать FREEWARE, т.к. по-моему все VB-программеры начинают мучаться, как только число настроек проги переваливает за 15-20 штук. А уж если их полсотни и больше - тут вообще труба.
1 / 1 / 0
Регистрация: 28.09.2007
Сообщений: 285
06.09.2009, 17:29
freeware - давай пиши скорее, не забудь драг и дроп узлов учесть и кучу всяких прочих удобств, у то - автоматизировать так автоматизировать ...
0
Comanche
06.09.2009, 19:02
)
Только вот дрэг-энд-дроп конкретно в этом проекте на фиг не нужен.

Слева на Property Page - дерево с контролами. Справа - настройки по выбранному в дереве контролу. Т.к. число контролов 'плавает', и правая часть - один и тот же фиксированный набор ЭУ (заполняющийся новыми значениями при смене выбранного узла дерева), то хранить всё через Call PropBag.WriteProperty не выйдет: поэтому событие UserControl_WriteProperties будет сохранять все настройки во внешнем файле (склоняюсь к XML). А в run-time, вызовы методов LoadConfig и т.д. будут читать этот файл и следовать его предписаниям.

Интерфейс - строгий, но функциональный, пишу его на английском - там всё очень просто. Хелп, конечно, будет на двух языках.
realist
08.09.2009, 23:02
Дай знать в этом топике, что получилось. И попробовать охота...
Эх еслибь кто-нить для зипования приличный контрол бесплатный написал(((
Столько времени ищу никак не найду.
Да я бы пивом даж напоил)
Comanche
09.09.2009, 01:03
'Альфа-версия' уже готова.
Настала пора отладки и отлова багов.
Также пытаюсь понять, не забыт ли какой-нибудь нужный всем функционал. Буду рад услышать ваши мнения.
Ну и хелп, конечно, осталось написать ;-))
0 / 0 / 0
Регистрация: 11.10.2007
Сообщений: 103
09.09.2009, 02:40
Извините за вторжение, но у нас широко используется упомянутое TreeView. Всё, что для этого нужно - это, естественно, подключить к проекту контрола соответствующую библиотеку. Во всяком случае, абсолютно точно, что этот пакет дистрибутива может быть инсталлирован на любой винд-машине (по крайней мере с NT либо 2К) без дополнительного гемора. Думаю, что он берётся из system path, то есть его не нужно экстра таскать вместе с дистрибутивом.
0
Comanche
09.09.2009, 11:01
То, что компонент надо подключать к VB-проекту, и включать в дистрибутив - сомнений и не вызывало. Просто была сла-а-абая надежда, что применительно именно к проектам типа 'ActiveX Control' это будет не так или не совсем так. Такую надежду мне дал Excel VBA, у которого если пойти в окно Toolbox / Additional controls, то все 'члены' пакета MSCOMCTL.OCX видны поврозь: MS TreeView Control, MS ListView Control и т.д. Я понадеялся, что это не просто особенность вывода в данное окно, а нечто большее, и что м.б. если использовать (хотя бы только в проекте типа 'ActiveX Control') один лишь MS TreeView из всего пакета (и никаких ЭУ более), то он туда как-нить 'интегрируется' и не потащит за собой весь пакет.

Согласитесь: было бы неплохо, если ситуация 'контрол-в-контроле' разрешалась бы как-нибудь помягче, чем прямо в лоб.
Однако, я ошибался.

Чёрт с ним. Вопрос данного топика считаю закрытым. Однако, сам топик закрывать не буду: допишу контрол - сообщу. Прикольная штука получается...
Comanche
10.10.2009, 21:01
Дописал.
http://FormToIni.narod.ru/Downloads/FormToIni.zip
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.10.2009, 21:01
Помогаю со студенческими работами здесь

Вопрос по безопасности ActiveX
JavaApplet: выполняется в некой 'песочнице', которая обладает достаточно ограгиченными возможностями, поэтому не может управлять...

Общий вопрос по ActiveX компонентам.
Всем привет. Попробовал я как-то на страничке заментить джавовские календари на ActiveX календари. Красиво, впечатляет. НО! Пошёл на...

Нужно изменять размер шрифта в ActiveX в зависимости от размера самого ActiveX
Уважаемые, обратите пожалуйста внимание на вчерашний постинг под сабжем 'ActiveX - динамич. изменение шрифта и DragDrop. Помогите,...

ActiveX Bridje или как превращать ActiveX Control в JavaBean.
Насколько я понял из документации, эта штука позволяет превращать JavaBean в ActiveX Control с дальнейшим использованием этого дела в...

ActiveX и VB, получение значения из ActiveX
Написал на VB ActiveX компонент. Использую его на Web странице Function OnSupLoad() Dim Mediator Set...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru