Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/30: Рейтинг темы: голосов - 30, средняя оценка - 4.63
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,527
Записей в блоге: 22

Разместить IPictureDisp в Picture Box с координатами

23.04.2020, 19:16. Показов 7270. Ответов 136
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Visual Basic
1
2
Public TempPic As IPictureDisp
Set TempPic = LoadPicture(FileName)
У объекта IPictureDisp нет свойства Picture поэтому, метод PaintPicture ничего не выводит в Picture Box. При использовании:
Visual Basic
1
Set Picture1 = TempPic
изображение, заведомо меньшее по размеру, чем Picture Box, размещается с нулевыми координатами. Существует ли возможность разместить изображение из IPictureDisp в Picture Box с координатами, отличными от нуля?
Интересно сделать.
Если простой возможности нет, придётся использовать невидимый Picture Box.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.04.2020, 19:16
Ответы с готовыми решениями:

Можно ли динамически создавать Picture Box внутри другого Picture Box?
Можно ли динамически создавать Picture Box внутри другого Picture Box. Если можно то как? Заранее благодарен

Как запретить заход одного объекта (picture box) на другой picture box
Создаю платформер на Windows Forms, как запретить заход одного picture box'a на другой?

Picture box
Нужно создать программу. Суть программы: Небходимо передвинуть картинки чтобы получилось изображение и надпись "портрет". Я...

136
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,527
Записей в блоге: 22
06.05.2020, 06:22  [ТС]
Студворк — интернет-сервис помощи студентам
Судя по всему, работать с IPicture неудобно.
Вложения
Тип файла: zip IPicture Render.zip (2.8 Кб, 4 просмотров)
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,527
Записей в блоге: 22
06.05.2020, 06:49  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Сделал небольшой проект на GDI+, обернул некоторые сущности в удобные классы.
При запуске требует библиотеку GDI+. Разве она не установлена в систему по умолчанию?
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,527
Записей в блоге: 22
06.05.2020, 15:22  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Сделал небольшой проект на GDI+
Разобрался
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,527
Записей в блоге: 22
11.05.2020, 18:44  [ТС]
The trick, посмотрел содержимое, используемой вами в примерах, библиотеки типов GdiPlus.tlb.
Не понял, почему функции вызываются без заключения параметров в скобки и не используется преобразование пути и имени файлов в нуль-терминированные строки?
Чтобы записать полученный результат в файл, необходимо передать функции GdipSaveImageToFile указатели на имеющиеся в библиотеке структуры CLSID и EncoderParameters. Не понял, каким образом это сделать. Как их праильно объявить и использовать?
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
11.05.2020, 22:25
Цитата Сообщение от Argus19 Посмотреть сообщение
Не понял, каким образом это сделать.

Не по теме:

Argus19, с вашим энтузиазмом я бы быстрее выучил PureBasic за неделю :) и в 20 - 30 строк написал бы уже эту программу... Там, в PB, есть все для этого нативные средства: вставка изображений куда угодно, и вращение, прозрачность, альфа канал, хоть картинки, хоть спрайты, хоть билборды в 3D вращай, умножай, складывай видимое с невидимым как угодно и в любых сочетаниях. Причем все примеры уже есть в справке, только копипасть в свою программу!


0
12.05.2020, 06:26  [ТС]

Не по теме:

Цитата Сообщение от Pro_grammer Посмотреть сообщение
с вашим энтузиазмом я бы быстрее выучил PureBasic за неделю :)
Можно и на С#. Он продолжает поддерживаться и развиваться в отличие от VB и PureBasic

0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
12.05.2020, 07:15
Argus19, воспользуйся поиском тут уже были примеры. Пользоваться точно также как и в любых других языках и никакой другой язы к для этого учить не нужно, а нужно читать справку и смотреть примеры.
0
12.05.2020, 12:27

Не по теме:

Цитата Сообщение от Argus19 Посмотреть сообщение
Можно и на С#. Он продолжает поддерживаться и развиваться в отличие от VB и PureBasic
PureBasic активно развивается, последнее обновление было 30 марта 2020 ( С# в сентябре 2019 с .NET Framework 4.8).
Нативные функции, это значит встроенные в язык, в его справку, описаны и подтверждены примерами. Они работают всегда с неизменным, предсказуемым результатом, причем как на Windows, так и на Linux и MacOC. Работать с ними на порядок проще и код короче, чем оперировать API соответствующей ОС.
The trick, потому совершенно не так же пользоваться, как и на других языках.

0
12.05.2020, 12:53

Не по теме:

Цитата Сообщение от Pro_grammer Посмотреть сообщение
The trick, потому совершенно не так же пользоваться, как и на других языках.
Pro_grammer, ну вообще-то речь шла про GdipSaveImageToFile если что, или в PB с ней нужно работать как-то особенно?

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Они работают всегда с неизменным, предсказуемым результатом
А GDI, GDI+ и прочее работают с непредсказуемым результатом?

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Работать с ними на порядок проще и код короче, чем оперировать API соответствующей ОС.
Зато те же функции GDI+ или WIC намного гибче и мощнее.

0
12.05.2020, 13:39

Не по теме:

Цитата Сообщение от The trick Посмотреть сообщение
Зато те же функции GDI+ или WIC намного гибче и мощнее.
Ни что не мешает их использовать в PureBasic. Но опять же, это делать проще- многие константы и функции Пурик "знает", не нужны декларации, короче код. Плюс возможности компиляции x64.

0
12.05.2020, 13:45

Не по теме:

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Ни что не мешает их использовать в PureBasic.
Ну в этом случае код будет почти один-в-один. Насчет WIC/Direct2D то из VB6 это сделать проще поскольку он сам следит за сборкой мусора.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Но опять же, это делать проще- многие константы и функции Пурик "знает", не нужны декларации, короче код.
А в примере который я дал нужны декларации? Или код длиннее аналогичного написанного на PureBasic?

0
12.05.2020, 14:59

Не по теме:

Цитата Сообщение от The trick Посмотреть сообщение
А в примере который я дал нужны декларации? Или код длиннее аналогичного написанного на PureBasic?
:)
Библиотеку типов GdiPlus.tlb кто написал и скомпилировал, 195 К весом? Она вообще описана где нибудь в документации, чтобы её мог использовать любой желающий? Давай мерить без дополнительных библиотек к экзешнику, считаем то, что уже есть в системе, ок?!

Если я скомпилирую DLL в которой будет весь код, а потом из программы вызов на 1 сточку, это будет считаться?
Тогда да, твой код станет намного длиннее.

0
12.05.2020, 15:04

Не по теме:

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Библиотеку типов GdiPlus.tlb кто написал и скомпилировал, 195 К весом? Она вообще описана где нибудь в документации, чтобы её мог использовать любой желающий? Давай мерить без дополнительных библиотек к экзешнику, считаем то, что уже есть в системе, ок?!
Эта библиотека не нужна после компиляции - это просто описание функций. Тоже самое можно сказать про хидеры у пурика ;)

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Если я скомпилирую DLL в которой будет весь код, а потом из программы вызов на 1 сточку, это будет считаться?
Тогда да, твой код станет намного длиннее.
А причем тут DLL? Разницу между TLB и DLL знаешь?

0
12.05.2020, 16:25

Не по теме:

Цитата Сообщение от The trick Посмотреть сообщение
А причем тут DLL? Разницу между TLB и DLL знаешь?
При чем тут .tlb, самописная и недокументированная? Ты разницу между написанием .tlb и написанием .bas кода знаешь?
В Пурике мне ни чего не надо писать, декларировать, компилировать библиотеки типов, там всё есть из коробки.
Понял разницу или опять нет?:)

0
12.05.2020, 16:52

Не по теме:

Цитата Сообщение от Pro_grammer Посмотреть сообщение
При чем тут .tlb, самописная и недокументированная?
При том что это один из штатных способов использования стандартных и существующих библиотек/интерфейсов.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Ты разницу между написанием .tlb и написанием .bas кода знаешь?
Хм. А причем тут это? Ты мне говоришь про декларации, которые не нужны в PB, т.к. они есть в хидерах. Ты же их не описываешь в коде на PB? Я тебе говорю что декларации не нужны в VB6 и можно использовать готовые библиотеки типов в которых все уже описано. Ты мне опять говоришь про описание в bas модуле? Что ты хочешь-то, не использовать декларации в bas модуле или использовать? Ты определись сначала.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
В Пурике мне ни чего не надо писать, декларировать, компилировать библиотеки типов, там всё есть из коробки.
А когда ты открывал тот проект что я скинул, тебе пришлось это делать? Ну, а в чем проблема? Даже более того тебе даже не пришлось никакой код писать чтобы добавить поддержку GDI+.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Понял разницу или опять нет?:)
Нет. Это ты не понял разницу и приплел (извини, по-другому не знаю как сказать) DLL, которая вообще не имеет отношение к библиотеке типов. TLB - это описание, причем более продвинутое чем хидеры.

0
12.05.2020, 17:29

Не по теме:

Цитата Сообщение от The trick Посмотреть сообщение
А когда ты открывал тот проект что я скинул, тебе пришлось это делать? Ну, а в чем проблема?
Не надо мне по ушам ездить, я не locm, и в VB6 чуток соображаю.
Цитата Сообщение от The trick Посмотреть сообщение
тебе даже не пришлось никакой код писать чтобы добавить поддержку GDI+.
За то тебе пришлось ручками его написать. :)
Это тоже самое, если бы ты сделал модуль .bas и положил рядом с исходником. Мне бы тоже не пришлось код писать чтобы добавить поддержку GDI+.
И ты и я это понимаем, только в чем смысл, что ты тут упираешься? Если бы этот GdiPlus.tlb шел в дистрибутиве с VB6 и был описан с MSDN, то да, вопросов я бы не имел. А то, что ты сам написал эту библиотеку в этом и суть претензии - надо написать вначале все декларации!, в отличии от PureBasic, где все эти библиотеки уже есть, и они более удобные и кроссплатформенные.

0
12.05.2020, 17:56

Не по теме:

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Не надо мне по ушам ездить, я не locm, и в VB6 чуток соображаю.
Ну ты ответь на вопрос. Тебе пришлось какие-либо подобные действия производить о которых ты написал?

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Это тоже самое, если бы ты сделал модуль .bas и положил рядом с исходником. Мне бы тоже не пришлось код писать чтобы добавить поддержку GDI+.
Ну во-первых, это не тоже самое. С BAS модулем ты не сделаешь некоторые важные описания (к примеру интерфейсы или псевдонимы) которые можно сделать в библиотеке типов. Во-вторых, ты писал изначально что "не нужны декларации, короче код" - это дословно то что ты написал. Я тебе скинул аналог на VB6, никаких деклараций тебе не пришлось писать, никакого дополнительного кода. Никаких дополнительных библиотек к экзешнику, DLL не нужно (при чем тут DLL, я так до сих пор и не понял); exe требует только системные библиотеки.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
И ты и я это понимаем, только в чем смысл, что ты тут упираешься?
В чем я упираюсь? Это похоже ты думал что GdiPlus.tlb - внешняя библиотека, которую нужно распространять с приложением и регистрировать, поэтому ты и написал про DLL. А теперь упираешься когда понял что ошибся. Другого объяснения я не вижу.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Если бы этот GdiPlus.tlb шел в дистрибутиве с VB6 и был описан с MSDN, то да, вопросов я бы не имел.
Не нужно этого, речь не шла об этом. Посмотри что ты написал и что я тебе ответил. Также библиотеки типов обычно не описываются в MSDN, а описываются функции, интерфейсы и другие сущности которые библиотека типов описывает. Глупо создавать справку на справку.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
А то, что ты сам написал эту библиотеку в этом и суть претензии - надо написать вначале все декларации!
Я ничего не писал, я взял готовую библиотеку, так как это делается в подавляющем большинстве случаев практически в любом языке.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
в отличии от PureBasic, где все эти библиотеки уже есть, и они более удобные и кроссплатформенные.
О боже, а эти библиотеки тоже кто-то писал и что? Автор просил помощи по API функции GdipSaveImageToFile, зачем тут кроссплатформенные функции PureBasic? Тут раздел по PureBasic? Почему обязательно либо ты, либо locm имеете склонность темы этого раздела скатить в обсуждение этого языка?

0
12.05.2020, 18:25

Не по теме:

Цитата Сообщение от The trick Посмотреть сообщение
Это похоже ты думал что GdiPlus.tlb - внешняя библиотека, которую нужно распространять с приложением
И в мыслях не было. В проекте VB6 .tlb есть почти всегда, например stdole2.tlb. Любой, кто пишет на VB6 это знает.
Прочитай внимательно, где проведена аналогия с DLL, я вроде русским языком понятно написал :)
Ещё раз, для тех кто на бронепоезде - для VB6 работа с API это прежде всего декларация функций, структур и констант.
У VB6 в комплекте нет кучи заголовочных файлов, как в том же Си, и всё надо делать руками. Без разницы, как это будет в конечном счете сделано - в .tlb или любом другом модуле или прямо в форме.

А Пурик я предложил в oффтопе как наиболее простой и подходящий для работы с графикой язык программирования, не нравится - не берите, я не настаиваю. Правилами это не запрещено.

0
12.05.2020, 18:51

Не по теме:

Цитата Сообщение от Pro_grammer Посмотреть сообщение
И в мыслях не было. В проекте VB6 .tlb есть почти всегда, например stdole2.tlb. Любой, кто пишет на VB6 это знает.
Эта библиотека идет в составе винды, по-умолчанию, также как и рантайм. Также приложение может требовать регистрации и распространения библиотеки типов в некоторых случаях. Я нигде не видел (я не искал) описание в MSDN или в справке по VB6 на эту библиотеку (stdole2.tlb), тебя это не смущает? Почему ты привел именно ее? Ты пост назад писал что "Если бы этот GdiPlus.tlb шел в дистрибутиве с VB6 и был описан с MSDN, то да, вопросов я бы не имел.", но возможно что и этой библиотеки (стандартной) нет в MSDN :)

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Прочитай внимательно, где проведена аналогия с DLL, я вроде русским языком понятно написал :)
Не понятно. Я же не DLL приложил, при чем тут DLL? При чем тут "Она вообще описана где нибудь в документации, чтобы её мог использовать любой желающий?" - звучит так как-будто есть какие-либо ограничения на распространение библиотеки. Давай, не юли :) ! Я понял что ты имел в виду, не отмажешься :p

Цитата Сообщение от Pro_grammer Посмотреть сообщение
для VB6 работа с API это прежде всего декларация функций, структур и констант.
Нет, я же скинул пример где ничего не нужно декларировать. Ранее в теме кидал другую библиотеку типов, где другие API функции, есть OLEEXP где куча системных интерфейсов винды и т.п. Просто подключаешь и пользуешься.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
У VB6 в комплекте нет кучи заголовочных файлов, как в том же Си, и всё надо делать руками.
Не уверен про C, но аналогичное могу сказать про шарп к примеру, или VB.NET. В том же пурике я думаю нет кучи COM/ActiveX классов и интерфейсов, NativeAPI, и т.п. и все это нужно "руками" делать. Для VB6 есть куча библиотек типов которые можно использовать, если какой-либо группы функций или еще что-то нет, то также нужно будет либо писать библиотеку типов, либо декларировать в bas модуле.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
А Пурик я предложил в oффтопе как наиболее простой и подходящий для работы с графикой язык программирования
Почему же тогда не VB.NET? Он и ближе и поудобней будет.

0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
12.05.2020, 19:29
Цитата Сообщение от The trick Посмотреть сообщение
Нет, я же скинул пример где ничего не нужно декларировать.
Это просто доказать.
Ну давай исходник GdiPlus.tlb, посмотрим, есть там декларации или нет?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.05.2020, 19:29
Помогаю со студенческими работами здесь

Picture Box
как сделать так, чтобы один PictureBox был поверх другого??? вот пример на картинке.

Отображение Picture Box
У меня есть два Picture Box, расположенных "вплотную". Но когда я запускаю программу, изображения, которые находятся в них, отображаются...

работать с picture box
Как вывести в picture box текст в определенных координатах и линию с одной заданой точки в другую?

перемещение элипса на picture box
как можно сделать, анимацию чтоли, короче чтобы элипс по прямой прошел, ?

Инструмент рука в Picture Box
Возникла задача сделать такой инструмент. Есть Picture Box в котором рисуется график функции, хочу увеличивать картинку и рассматривать в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru