Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / COM / 21 сообщений из 21, страница 1 из 1
04.06.2010, 14:15
    #36669389
Железнодорожник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM
привет всем, пишу СОМ объект, форма не открывается
интерсфейс
Код: 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
04.06.2010, 14:17
    #36669395
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM
А я не могу понять в чем вопрос.
...
Рейтинг: 0 / 0
04.06.2010, 14:17
    #36669398
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM
это у вас отдельный класс или модуль формы?
...
Рейтинг: 0 / 0
04.06.2010, 14:20
    #36669410
Железнодорожник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM
AntonariyА я не могу понять в чем вопрос.
Form1 не открывается
...
Рейтинг: 0 / 0
04.06.2010, 14:22
    #36669418
Железнодорожник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM
Konst_Oneэто у вас отдельный класс или модуль формы?
откуда вызываю форму Class Module и форма в одном проекте
...
Рейтинг: 0 / 0
04.06.2010, 14:25
    #36669426
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM
Попробуйте так:
Код: plaintext
1.
2.
Dim frm as Form1
Set frm = New Form1
frm.Show
...
Рейтинг: 0 / 0
04.06.2010, 14:36
    #36669473
Железнодорожник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM
AntonariyПопробуйте так:
Код: plaintext
1.
2.
Dim frm as Form1
Set frm = New Form1
frm.Show

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

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

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

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

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

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

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

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

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

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

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

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

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

так это понятно, что вам надо
но вот реализовать вам это будет затруднительно. разбирайтесь в особенностях вашей среды, откуда вы пытаетесь свой COM-объект вызвать.
...
Рейтинг: 0 / 0
04.06.2010, 15:15
    #36669619
Железнодорожник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM
делаю
Код: 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
04.06.2010, 15:18
    #36669627
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM
и что?
я вам уже показал, что ваш имплементируемый метод ICommand_OnClick() требует модальности окна. Ищите другой метод вызова своей немодальной формы
...
Рейтинг: 0 / 0
04.06.2010, 15:39
    #36669702
Железнодорожник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM
Konst_Oneи что?
я вам уже показал, что ваш имплементируемый метод ICommand_OnClick() требует модальности окна. Ищите другой метод вызова своей немодальной формы
лан, пошел я на 3 буквы WWW тогда :)
...
Рейтинг: 0 / 0
09.06.2010, 13:17
    #36677928
Железнодорожник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM
Konst_Oneи что?
я вам уже показал, что ваш имплементируемый метод ICommand_OnClick() требует модальности окна. Ищите другой метод вызова своей немодальной формы
че то до сих пор не получается,с инета ничего полезного не нашел, можно ли вызвать форму как модальную, потом ее сделать не модальным ?
...
Рейтинг: 0 / 0
09.06.2010, 13:19
    #36677936
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM
ЖелезнодорожникKonst_Oneи что?
я вам уже показал, что ваш имплементируемый метод ICommand_OnClick() требует модальности окна. Ищите другой метод вызова своей немодальной формы
че то до сих пор не получается,с инета ничего полезного не нашел, можно ли вызвать форму как модальную, потом ее сделать не модальным ?

нет. попробуйте, наконец, подумать над логикой своей программы. возможно стоит вызывать форму по другому событию
...
Рейтинг: 0 / 0
09.06.2010, 14:30
    #36678222
Железнодорожник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM
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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / COM / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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