Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Alfa
-
- Бывалый

-
-
- Сообщения: 249
- Зарегистрирован: 12.01.2003 (Вс) 20:15
- Откуда: Россия, Красноярск
-
Alfa » 29.08.2005 (Пн) 6:59
Вопрос в том, как потом удалять из памяти созданные холсты, и можно примерчик, как создать в памяти холст и перебросить сначала в него картинку из PictureBox, а потом в другой PictureBox из него.
-
tyomitch
-
- Пользователь #1352

-

-
- Сообщения: 12822
- Зарегистрирован: 20.10.2002 (Вс) 17:02
- Откуда: חיפה
tyomitch » 29.08.2005 (Пн) 15:20
Удаляются они сами, когда на них пропадают ссылки.
Примерчик:
- Код: Выделить всё
Private Sub Form_DblClick()
Dim i As prjGDIplus.Image
Set i = CreateBitmap(100, 100, PixelFormat24bppRGB)
With CreateGraphicsFromImage(i)
.Clear ARGB(vbRed) 'фон
' перенос картинки на холст
.DrawImageEx CreateBitmapFromPicture(Picture1), 10, 10, 20, 20, 0, 0, 20, 20
' тоже работает, но не подходит идеологически
' BitBlt .hDC, 10, 10, 20, 20, Picture1.hDC, 0, 0, vbSrcCopy
End With
' перенос картинки с холста
CreateGraphics(Picture2.hDC).DrawImage i, 5, 5
' а тут холст сам уничтожится
End Sub
-
Alfa
-
- Бывалый

-
-
- Сообщения: 249
- Зарегистрирован: 12.01.2003 (Вс) 20:15
- Откуда: Россия, Красноярск
-
Alfa » 29.08.2005 (Пн) 16:17
А вот мне как раз нужно, чтобы он после завершения процедуры не уничтожался, чтобы я его потом в другой процедуре сам уничтожал.
-
tyomitch
-
- Пользователь #1352

-

-
- Сообщения: 12822
- Зарегистрирован: 20.10.2002 (Вс) 17:02
- Откуда: חיפה
tyomitch » 29.08.2005 (Пн) 18:44
Alfa, ты издеваешься что ли?
- Код: Выделить всё
Dim i As prjGDIplus.Image
'внешняя ссылка - живёт столько же, сколько весь класс/форма/модуль
Sub s1()
Set i = CreateBitmap(...) 'создание
End Sub
Sub s2()
Set i = Nothing 'уничтожение
End Sub
Все без исключения объекты в COM/VB6 ведут себя точно так же: уничтожаются, когда пропадает последняя ссылка.
-
tyomitch
-
- Пользователь #1352

-

-
- Сообщения: 12822
- Зарегистрирован: 20.10.2002 (Вс) 17:02
- Откуда: חיפה
tyomitch » 11.09.2005 (Вс) 21:25
Alfa, так что - подошла моя обёртка?
На всякий случай: новая версия выложена на
http://users.isnet.ru/tyomitch/FloodFill.zip
Кроме исправленных багов, теперь поддерживаются DC с доступом для чтения и записи (этой функциональности нет в GDI+, поэтому моя обёртка создаёт временный GDI-битмап и копирует содержимое картинки туда и обратно).
В архиве по приведённой ссылке - пример использования новой фичи: применение FloodFill к GDI+-картике.
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, SemrushBot, YaCy [Bot], Yandex-бот и гости: 1