Обращение DLL к Форме

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

Обращение DLL к Форме

Сообщение Akella » 17.09.2004 (Пт) 6:55

Привет!!!. Скажите, а как с написанной DLL обращаться к активной форме , ну или к форме которая вызывеат DLL :D
Не бойся что не знаешь, бойся что не учишься.

Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

Сообщение Akella » 17.09.2004 (Пт) 8:22

Ну неужели ни кто незнает.
Не бойся что не знаешь, бойся что не учишься.

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

Сообщение alibek » 17.09.2004 (Пт) 9:30

Я полагаю, что активная форма, которая вызывает DLL, должна предварительно передать в DLL свой hWnd.
Lasciate ogni speranza, voi ch'entrate.

Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

Сообщение Akella » 17.09.2004 (Пт) 10:43

Да об этом я не подумал, А как получить имя формы
Не бойся что не знаешь, бойся что не учишься.

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

Сообщение tyomitch » 17.09.2004 (Пт) 10:53

Пусть тогда передаёт в DLL свой объект Form.
Тогда имя - Form.Name, хэндл - Form.hWnd
Изображение

Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

Сообщение Akella » 19.09.2004 (Вс) 4:56

вот смотрите

В Форме
Код: Выделить всё
Private Sub Command1_Click()
Set A = CreateObject("Project1.Class1") ' name of Class from dll
Print A.fn1(Me.hWnd, Me.Name)
End Sub


в Dll
Код: Выделить всё
Function fn1(d As Long, fnb As String)
fn1 = "Name: " & fnb & "hwnd: " & d
fnb.Line (0, 0)-(100, 100), vbGreen
fnb.Refresh
End Function

И ничего не выходит, напишите кто нибуть примерчик, или хотябы дайте ссылку.
Не бойся что не знаешь, бойся что не учишься.

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

Сообщение GSerg » 19.09.2004 (Вс) 11:52

О боже мой :)

В классе dll:
Код: Выделить всё
private mForm as form
property set FormHandle(byval f as form)
  set mform=f
end property


Сделав один раз
Код: Выделить всё
set a.formhandle=me
, делай потом что хочешь с mform.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


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

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

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

    TopList