Class1-->Form1-->Class1'

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

Class1-->Form1-->Class1'

Сообщение Alexanbar » 17.06.2004 (Чт) 16:40

Есть Activex Dll, в состав которой входят Class1 и Form1.

Class1:
'--------
public F as string

public sub SelectFile
form1.show
end sub


public sub GetVal1 as string
...
end sub

'-----------


Form1
'-----------

private sub Form_Activate
dim Class2 as new Class1

Class2.GetVal1

....

end sub




Хотелось бы не создавать новый экземпляр класса Class1 как Class2, а использовать тотже экземпляр, из которого вызывается Form1.
Нужно не из экономии, а из-за того, что приходится параметр F передавать из одного объекта в другой, чтобы GetVal1 давала правильные результаты

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

Сообщение GSerg » 18.06.2004 (Пт) 10:14

В activex модуль заведи и запиши туда переменную a as class1. При первом создании класса пиши set module1.a = new class1, к примеру. А потом бери эту ссылку всеми объектами. Глобальная, короче, переменная.
Другой выход - создать специальный friend метод у формы, который позволил бы запомнить ссылку во внутреннюю переменную формы.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 18.06.2004 (Пт) 14:17

Сделал так: В модуле Modul1, входящем в dll, выделил глобальную переменную F. А в Class1 (и в другие классы) добавил свойство F:

public property get F() as string
f=Modul1.f
end property

public property Let f(v as string)

Modul1.f=v

end property


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

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

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

    TopList