Поразительная закономерность...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
lister
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 15.01.2005 (Сб) 7:34
Откуда: Страна оления

Поразительная закономерность...

Сообщение lister » 07.09.2006 (Чт) 14:21

Не знаю, может я и не сообщу ничего нового, но тем не менее...

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

Код формы:
Код: Выделить всё
Option Explicit

Private Declare Sub InitCommonControls Lib "comctl32.dll" ()

Private Sub Form_Initialize()
  InitCommonControls

End Sub


После компилляции запустил экзешник. Все контролы на форме были в стиле ХР. Закрыл программу и получил при закрытии ошибку: Память не может быть "read"

После этого удалил вызов InitCommonControls, запустил программу: стили ХР на месте, ошибок при закрытии не возникает...
Странно :shock:

Одним словом, если на форме находится UserControl - даже совершенно "чистый", без кода - вызов InitCommonControls и InitCommonControlsEx не нужен...

Может кто-нибудь прокомментирует? Я теряюсь в догадках...

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Сообщение shady » 07.09.2006 (Чт) 15:19

Память не может быть "read"

гдет-то я уже это видел на форуме...

AntonGV
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 24.05.2006 (Ср) 12:10
Откуда: г. Пермь

Сообщение AntonGV » 07.09.2006 (Чт) 15:42

В модуле
Код: Выделить всё
Private Declare Sub InitCommonControls Lib "comctl32.dll" ()
Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long

Public Sub Main()
    InitCommonControls
    Call LoadLibrary("shell32.dll")
    'загрузка формы
    frmMain.Show
End Sub

lister
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 15.01.2005 (Сб) 7:34
Откуда: Страна оления

Сообщение lister » 07.09.2006 (Чт) 16:29

AntonGV, читай внимательнее ;)

Efiop
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 06.06.2006 (Вт) 12:14
Откуда: РК

Сообщение Efiop » 08.09.2006 (Пт) 6:30

lister, для чего ты делаешь инициализацию?
Код: Выделить всё
Private Sub Form_Initialize()
  InitCommonControls

End Sub

Чет я не врублюсь.

lister
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 15.01.2005 (Сб) 7:34
Откуда: Страна оления

Сообщение lister » 08.09.2006 (Пт) 13:29

Efiop писал(а):lister, для чего ты делаешь инициализацию?
Код: Выделить всё
Private Sub Form_Initialize()
  InitCommonControls

End Sub

Чет я не врублюсь.


В поиск по InitCommonControls

Efiop
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 06.06.2006 (Вт) 12:14
Откуда: РК

Сообщение Efiop » 08.09.2006 (Пт) 14:26

lister, в том же поиске пишут, может это поможет.
This function is obsolete. New applications should use the InitCommonControlsEx function

lister
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 15.01.2005 (Сб) 7:34
Откуда: Страна оления

Сообщение lister » 08.09.2006 (Пт) 14:34

Мдааа... Народ, вы вообще топик читаете перед тем как отвечать... :shock:

Efiop, я не прошу помощи, я прошу знающих людей прокомментировать ситуацию с UserControl.

См. выше...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 110

    TopList