Указатель на объект как аргумент функции

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

Указатель на объект как аргумент функции

Сообщение uk8amk » 19.02.2009 (Чт) 8:28

Возник вопрос: можно ли в VB6 передать функции указатель на объект, а дальше чтобы эта функция с ним работала. И если да, то как это сделать.
Например, пусть у нас имеется несколько групп похожих объектов типа PictureBox. Функция должна открывать графический файл, получать из него необходимые данные и далее используя ссылку на передаваемый объект выводить на него информацию.
Т.е. моделировать вызов типа

Filepath="C:\drawings.dxf" // путь к открываемому файлу
ObjectPtr=Form1.Picture1(i) // ссылка на объект на который будет выводится графика

MyFunction(FilePath As String, ObjectPtr As Object)

В теле функции должно произойти разыменование указателя объекта и нарисоваться изображение на этом объекте.
Т.е. что-то типа
ObjectPtr.Line(X1,Y1)-(X2,Y2)
где на самом деле должно подразумеваться утверждение
Form1.Picture1(i).Line(X1,Y1)-(X2,Y2)

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Указатель на объект как аргумент функции

Сообщение Viper » 19.02.2009 (Чт) 9:08

Да, можно. Причем можно (и нужно) указывать конкретный тип аргумента, например MyFunction(FilePath As String, ByVal PicturePtr As PictureBox)
Весь мир матрица, а мы в нем потоки байтов!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Указатель на объект как аргумент функции

Сообщение alibek » 19.02.2009 (Чт) 9:15

Я бы ByRef и ByVal поменял местами.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Указатель на объект как аргумент функции

Сообщение tyomitch » 19.02.2009 (Чт) 11:51

Автору: а ещё указатели на объекты нужно присваивать оператором Set.
Изображение

uk8amk
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 26.07.2007 (Чт) 16:52
Откуда: Tashkent

Re: Указатель на объект как аргумент функции

Сообщение uk8amk » 19.02.2009 (Чт) 12:47

Viper писал(а):Да, можно. Причем можно (и нужно) указывать конкретный тип аргумента, например MyFunction(FilePath As String, ByVal PicturePtr As PictureBox)


Я так понимаю что тогда обращение к объекту из тела функции примет вид PicturePtr.Line(X1,Y1)-(X2,Y2) ?

tyomitch писал(а):Автору: а ещё указатели на объекты нужно присваивать оператором Set.


Если можно то подробнее про это. Просто еще в бейсике с такими вещами не сталкивался.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Указатель на объект как аргумент функции

Сообщение tyomitch » 19.02.2009 (Чт) 13:10

uk8amk писал(а):ObjectPtr=Form1.Picture1(i) // ссылка на объект на который будет выводится графика

Set ObjectPtr=Form1.Picture1(i)
Изображение

uk8amk
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 26.07.2007 (Чт) 16:52
Откуда: Tashkent

Re: Указатель на объект как аргумент функции

Сообщение uk8amk » 19.02.2009 (Чт) 13:19

Ура, работает!
Всем спасибо.


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

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

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 56

    TopList