powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / COM
21 сообщений из 21, страница 1 из 1
COM
    #36669389
Фотография Железнодорожник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привет всем, пишу СОМ объект, форма не открывается
интерсфейс
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Option Explicit
Implements ICommand
........
.......
........
Private Property Get ICommand_HelpContextID() As Long

End Property

Private Property Get ICommand_HelpFile() As String

End Property
Private Sub ICommand_OnClick()
 MsgBox "1"
 Form1.Show
 MsgBox "2"
End Sub
тут сообщение выходит 1 и все, если в дебагер включить breapoint где Form1.Show доходит до этого места и запускаю F5 открывается дальше форма нормально, понять не могу....
...
Рейтинг: 0 / 0
COM
    #36669395
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я не могу понять в чем вопрос.
...
Рейтинг: 0 / 0
COM
    #36669398
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это у вас отдельный класс или модуль формы?
...
Рейтинг: 0 / 0
COM
    #36669410
Фотография Железнодорожник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyА я не могу понять в чем вопрос.
Form1 не открывается
...
Рейтинг: 0 / 0
COM
    #36669418
Фотография Железнодорожник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneэто у вас отдельный класс или модуль формы?
откуда вызываю форму Class Module и форма в одном проекте
...
Рейтинг: 0 / 0
COM
    #36669426
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте так:
Код: plaintext
1.
2.
Dim frm as Form1
Set frm = New Form1
frm.Show
...
Рейтинг: 0 / 0
COM
    #36669473
Фотография Железнодорожник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyПопробуйте так:
Код: plaintext
1.
2.
Dim frm as Form1
Set frm = New Form1
frm.Show

без изменений :(
...
Рейтинг: 0 / 0
COM
    #36669484
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что за интерфейс ICommand ???
...
Рейтинг: 0 / 0
COM
    #36669499
Фотография Железнодорожник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneчто за интерфейс ICommand ???
Esri-овский для ArcGIS
...
Рейтинг: 0 / 0
COM
    #36669523
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у вас вызов скорее всего не в том контексте
...
Рейтинг: 0 / 0
COM
    #36669538
Фотография Железнодорожник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneу вас вызов скорее всего не в том контексте
что странно, включенном дебаггере работает,а так нет, буду юзать дальше, спс Вам
...
Рейтинг: 0 / 0
COM
    #36669546
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Железнодорожникчто странно, включенном дебаггере работает,а так нет, буду юзать дальше, спс Вам

Попробуйте "отложить" запуск формы на 1 ms с помощью таймера
...
Рейтинг: 0 / 0
COM
    #36669556
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЖелезнодорожникчто странно, включенном дебаггере работает,а так нет, буду юзать дальше, спс Вам

Попробуйте "отложить" запуск формы на 1 ms с помощью таймера

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

Код: plaintext
1.
2.
Private Sub ICommand_OnClick()
Form1.Show vbModal
End Sub
...
Рейтинг: 0 / 0
COM
    #36669588
Фотография Железнодорожник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OneShocker.ProЖелезнодорожникчто странно, включенном дебаггере работает,а так нет, буду юзать дальше, спс Вам

Попробуйте "отложить" запуск формы на 1 ms с помощью таймера

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

Код: plaintext
1.
2.
Private Sub ICommand_OnClick()
Form1.Show vbModal
End Sub

открылся, но мне надо, что бы форма была не модальным, что бы на карте можно было тыкать по объектам, при этом назад приложений не уходила :)
...
Рейтинг: 0 / 0
COM
    #36669598
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЖелезнодорожникKonst_OneShocker.ProЖелезнодорожникчто странно, включенном дебаггере работает,а так нет, буду юзать дальше, спс Вам

Попробуйте "отложить" запуск формы на 1 ms с помощью таймера

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

Код: plaintext
1.
2.
Private Sub ICommand_OnClick()
Form1.Show vbModal
End Sub

открылся, но мне надо, что бы форма была не модальным, что бы на карте можно было тыкать по объектам, при этом назад приложений не уходила :)

так это понятно, что вам надо
но вот реализовать вам это будет затруднительно. разбирайтесь в особенностях вашей среды, откуда вы пытаетесь свой COM-объект вызвать.
...
Рейтинг: 0 / 0
COM
    #36669619
Фотография Железнодорожник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делаю
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Declare Function SetWindowPos Lib "user32" _
   (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
    ByVal x As Long, ByVal y As Long, _
    ByVal cx As Long, ByVal cy As Long, _
    ByVal wFlags As Long) As Long
Private Sub Form_Activate()
  Call SetWindowPos(Me.hwnd, HWND_TOPMOST,  0 ,  0 ,  0 ,  0 , FLAGS)
End Sub
...
Рейтинг: 0 / 0
COM
    #36669627
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и что?
я вам уже показал, что ваш имплементируемый метод ICommand_OnClick() требует модальности окна. Ищите другой метод вызова своей немодальной формы
...
Рейтинг: 0 / 0
COM
    #36669702
Фотография Железнодорожник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneи что?
я вам уже показал, что ваш имплементируемый метод ICommand_OnClick() требует модальности окна. Ищите другой метод вызова своей немодальной формы
лан, пошел я на 3 буквы WWW тогда :)
...
Рейтинг: 0 / 0
COM
    #36677928
Фотография Железнодорожник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneи что?
я вам уже показал, что ваш имплементируемый метод ICommand_OnClick() требует модальности окна. Ищите другой метод вызова своей немодальной формы
че то до сих пор не получается,с инета ничего полезного не нашел, можно ли вызвать форму как модальную, потом ее сделать не модальным ?
...
Рейтинг: 0 / 0
COM
    #36677936
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЖелезнодорожникKonst_Oneи что?
я вам уже показал, что ваш имплементируемый метод ICommand_OnClick() требует модальности окна. Ищите другой метод вызова своей немодальной формы
че то до сих пор не получается,с инета ничего полезного не нашел, можно ли вызвать форму как модальную, потом ее сделать не модальным ?

нет. попробуйте, наконец, подумать над логикой своей программы. возможно стоит вызывать форму по другому событию
...
Рейтинг: 0 / 0
COM
    #36678222
Фотография Железнодорожник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One
нет. попробуйте, наконец, подумать над логикой своей программы. возможно стоит вызывать форму по другому событию
да я все пробовал то что они предлагают, скорее всего надо уйти от VB6,у них(америкосы) примеры в основном на VB.Net, а мне предлагаю как модальную вызвать,а мне модальная форма не нужна тут
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
In the form use this
--------------------
In General declarations of the form
------------------------------------
Public mypApp as IApplication

In the form 
-----------
Public Property Get Application() As IApplication
    Set Application = mypApp
End Property
    
Public Property Set Application(ByVal pApp As IApplication)
    Set mypApp = pApp
End Property


In ICommand_OnClick
-------------------
Private Sub ICommand_OnClick()
    Set Form1.Application = m_pApp
    Form1.Show
End Sub
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / COM
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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