странная ошибка

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
BOO
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 06.09.2003 (Сб) 14:23
Откуда: Саратовская обл. г.Энгельс

странная ошибка

Сообщение BOO » 29.12.2003 (Пн) 22:52

у меня порой вылетает прога :(((( can't create a autoredraw picture
потом я перезапускаю vb и все работает - что это???
Слушайте рок!

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 30.12.2003 (Вт) 1:24

Подробнее распиши ...
Что вылетает .. прога или окно и когда ...
в чем?
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

BOO
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 06.09.2003 (Сб) 14:23
Откуда: Саратовская обл. г.Энгельс

пояснение

Сообщение BOO » 30.12.2003 (Вт) 1:57

For I = 0 To 2 'Я идиот! Убейте меня, кто-нибудь!?? HDC?
MemHdc(I) = CreateCompatibleDC(PicFonAnimate(I).hdc)
BitMapHdc(I) = CreateCompatibleBitmap(PicFonAnimate(I).hdc, PicFonAnimate(I).Width, PicFonAnimate(I).Height)
TrashbmpHdc(I) = SelectObject(MemHdc(I), BitMapHdc(I))
Layers1(I) = MemHdc(I)
Next
Код: Выделить всё
[color=yellow][/color]

вылетает воторая строчка это все стоит в форм_лоуде, создает hdc и грузит в них пикчуры
Слушайте рок!

XPraptor
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 02.12.2003 (Вт) 18:13
Откуда: Minsk

Сообщение XPraptor » 30.12.2003 (Вт) 12:02

Ты в цикле ресурсы не освобождаешь, вот у тебя буфер и наполняется, потом уже нельзя создать DC. Делай ReleaseDC тогда будет все ОК!
Если руки кривые, то не надо ругать разработчиков.

XPraptor
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 02.12.2003 (Вт) 18:13
Откуда: Minsk

Сообщение XPraptor » 30.12.2003 (Вт) 12:05

Да забыл добавить: или вынеси MemHdc(I) = CreateCompatibleDC(PicFonAnimate(I).hdc) перед циклом, а так каждый проход создавать без очистки новый DС это кощунство!
Если руки кривые, то не надо ругать разработчиков.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.12.2003 (Ср) 8:54

Не совсем так.
ReleaseDC ничего не удаляет. Она используется для освобождения хэндла, полученного через GetWindowDC. Для удаления же юзается DeleteDC.
Выносить ничего не надо. как я понимаю, наличествуют 3 пикчербокса, для каждого создаются DC.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


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

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

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

    TopList  
cron