powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Интеграция
19 сообщений из 44, страница 2 из 2
Интеграция
    #39129898
AlexUser987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, страшные вещи вы тут пишете. Это будни поддержки замогильного кода, или сейчас модно эктив иксами по формам разбрасываться?
...
Рейтинг: 0 / 0
Интеграция
    #39130408
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexUser987Блин, страшные вещи вы тут пишете. Это будни поддержки замогильного кода, или сейчас модно эктив иксами по формам разбрасываться?
Бывают задачи, которые можно решить только написанием ActiveX. В моем случае это приложение системы эл. документооборота в котором можно создавать свои формы и вешать несколько контролов, которые идут вместе с этим ПО. Таких систем на постсоветском пространстве не так много и в во всех этих системах проблема с ограниченным количеством и ограниченым функционалом этих контролов. Но зато у этих систем есть возможность подключать ActiveX. Вроде бы бери себе MS Forms 2.0 и в путь, но и тут натыкаемся на то, что часть из контролов глючит, не у всех установлено (идет с MS Office), и тоже не имеет всех "распрекрас" современных контролов того же FW.
Если Вы знаете уже писаные ActiveX компоненты или как вытянуть элементы Windows Forms другим способом, буду признателен за подсказку.
...
Рейтинг: 0 / 0
Интеграция
    #39130414
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К maybeleoпропущено...
оно?
MSDNRegistry Entry
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\

{CLSID}\Control

Remarks
This optional entry is used by containers to fill in dialog boxes. The container uses this subkey to determine whether to include an object in a dialog box that displays ActiveX Controls. A control can omit this entry if it is designed to work only with a specific container and therefore does is not intended to be inserted in other containers.
Да, это оно. Собственно, выделенное жирным и настораживает. Я даже знаю, что этим specific container-ом является Internet Explorer. К сожалению, я не знаю более разумного способа вставить контрол из .Net в Delphi.

В принципе, там необязательно использовать ActiveX. Задача, чтобы на .Net было разработано содержимое MDI Child формы. Мне показалось, что наиболее разумно MDI Child форму сделать в Delphi, а на неё положить "ActiveX.Net".CLR host? У Рихтера про это есть. Я так в своё время .NET формы в Centura интегрировал.

Немного C++, немного PInvoke, и работает.
...
Рейтинг: 0 / 0
Интеграция
    #39130415
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ashoorup, я Вам своё предыдущее сообщение адресую.
...
Рейтинг: 0 / 0
Интеграция
    #39130431
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA , спасибо! Ушел в изучение.
...
Рейтинг: 0 / 0
Интеграция
    #39130742
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то просветления никакого не наступило.. skyANA, как вообще можно воспользоваться .NETовскими контролами не через ActiveX?
...
Рейтинг: 0 / 0
Интеграция
    #39130788
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Через CLR host можно как я понял в неуправляемом коде запустить CLR и загрузить сборку и например нужный нам метод.
Но теперь проблема, в том что у меня неуправляемая среда VBScript :) и как там сделать
Код: plaintext
1.
2.
#include <metahost.h>
#pragma comment(lib, "mscoree.lib")


без понятия:)
...
Рейтинг: 0 / 0
Интеграция
    #39130838
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ashoorupкак вообще можно воспользоваться .NETовскими контролами не через ActiveX?Ну я же дал ссылку на работающий пример.
...
Рейтинг: 0 / 0
Интеграция
    #39130916
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КAshoorupкак вообще можно воспользоваться .NETовскими контролами не через ActiveX?Ну я же дал ссылку на работающий пример.
По ссылке создание ActiveX. У меня все получилось создать и все работает. Спасибо!
Но теперь я еще заинтересовался темой Хостинга CLR . Если я правильно понял, то можно из неуправляемого кода взять сборки и работать с ними...
Отсюда вопрос: а можно ли таким способом "вытянуть" контрол на свою форму?
...
Рейтинг: 0 / 0
Интеграция
    #39130926
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AshoorupОтсюда вопрос: а можно ли таким способом "вытянуть" контрол на свою форму?Если я правильно понял что предложил skyANA, то придётся самому реализовывать работу с ActiveX Controls Interfaces . На мой взгляд проще взять за основу родной экспорт ActiveX и дополнить его костылями, если вдруг что-то там не устроит.

С другой стороны, я напрямую с CLR host не работал, может и не всё так страшно, пусть лучше skyANA прокомментирует.
...
Рейтинг: 0 / 0
Интеграция
    #39130947
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОК. Ждем ответ от skyANA
Алексей К , еще такой вопрос: возможно ли сделать так, чтобы в одной сборке по сути один ActiveX было несколько контролов с разными свойствами? Допустим по умолчанию все контролы скрыты и не отображаются, а я уже в своем приложении делаю видимым нужный мне контрол и работаю с ним. Или идея похожа на БредСивойКобылы ?:)
...
Рейтинг: 0 / 0
Интеграция
    #39130954
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КAshoorupОтсюда вопрос: а можно ли таким способом "вытянуть" контрол на свою форму?Если я правильно понял что предложил skyANA, то придётся самому реализовывать работу с ActiveX Controls Interfaces .Хотя нет, можно обойтись и без интерфейсов AcitveX. Зная дескриптор родительской формы можно делать так:
Код: c#
1.
2.
var ctl = new UserControl1();
ctl.Parent = Control.FromHandle(ParentWindowHandle);
...
Рейтинг: 0 / 0
Интеграция
    #39130959
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AshoorupОК. Ждем ответ от skyANA
Алексей К , еще такой вопрос: возможно ли сделать так, чтобы в одной сборке по сути один ActiveX было несколько контролов с разными свойствами? Допустим по умолчанию все контролы скрыты и не отображаются, а я уже в своем приложении делаю видимым нужный мне контрол и работаю с ним. Или идея похожа на БредСивойКобылы ?:)В одной сборке могут жить много контролов, если я правильно понял постановку задачи. :-)
...
Рейтинг: 0 / 0
Интеграция
    #39130977
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КВ одной сборке могут жить много контролов, если я правильно понял постановку задачи. :-)
Но в списке на вставку нужного контрола будет несколько, а хотелось бы 1. Хотя вот думаю... а нафик... удобно ли это потом будет...:)
...
Рейтинг: 0 / 0
Интеграция
    #39131308
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AshoorupОК. Ждем ответ от skyANA на чем написаны "свои формы" и что конкретно в них нужно встроить?
...
Рейтинг: 0 / 0
Интеграция
    #39131501
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAна чем написаны "свои формы" и что конкретно в них нужно встроить?
Смотря какая система. Одна система писана на C++, другая на Delphi третья возможно на .NET. Другое дело, что работа уже разработчиков(пользователей) этих систем с формами и компонентами предоставляемой этой средой ведется на скриптовых языках. У одних это свой скриптовый язык причем русскими операторами (1С: Предприятие). У других это VBS у третьих JS и VBS. Но у всех почему-то встроенные элементы управления не богаты функционалом. У всех систем есть возможность подключить и COM и ActiveX. Вот я и хочу расширить функционал по сути всех этих систем...
Встроить в формы нужно как можно больше элементов из Windows.Forms .NETовских
...
Рейтинг: 0 / 0
Интеграция
    #39133444
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А PropertyPages у кого-нибудь на C# получалось?
...
Рейтинг: 0 / 0
Интеграция
    #39154553
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто подскажет по таким вопросам:
1. Если свойство у ActiveX контрола { get; set; } ,то в редакторе кода IntelliSense работает и свойство отображается. Но если есть только { set; }, то не отображается. В чем причина?
2. По умолчанию интерфейс IUnknown есть у любого ActiveX контрола, и естественно с ним есть открытые методы: AddRef(), Release(), и т.д. Как их убрать их IntelliSense. Знаю что есть специальственный атрибут, но где его писать?
...
Рейтинг: 0 / 0
Интеграция
    #39155233
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По первому вопросу экспериментировал с разными атрибутами - фифекта не принесло :(
Код: c#
1.
2.
[EditorBrowsable(EditorBrowsableState.Never)]
[ComVisible(true)]



А по второму у меня интерфейс IDispatch, а не IUnknown. Но от этого не легче. Я хочу чтобы методы (7шт.) IDispatch не отображались в редакторе кода, но вот сомневаюсь, что это возможно. Потому как private делать их нельзя, а все что public, то по умолчанию видно в редакторе. Возможно атрибут [EditorBrowsable(EditorBrowsableState.Never)] для этих методов сработает, но я не знаю где их найти...
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Интеграция
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]