Страница: 1 | 2 |
Вопрос: Передать ссылку на функцию?
Добавлено: 31.10.08 00:04
Автор вопроса: Nytrogen
Ответы
Всего ответов: 25
Номер ответа: 16
Автор ответа:
Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #16
Добавлено: 31.10.08 14:11
Nytrogen, я чё то не пойму зачем тебе API?
Номер ответа: 17
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #17
Добавлено: 31.10.08 14:24
Да я и не настаиваю на API . Хм... я вызываю функцию из модуля класса, а сама функция расположена в обычном модуле.
The name of the object on which the function will be executed как бы отсутствует (Me не подойдёт)
Номер ответа: 18
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #18
Добавлено: 31.10.08 16:06
Возможно очень даже. AddressOf получает указатель на функцию. Какой VB-тип данных бы ни возвращала функция, в действительности она возвращает результат в одном DWORD (машинный тип данных в 32 бит), а типы данных по размеру более чем 32 бит передаются указателем на некую структуру или буфер, как например строка BSTR.
Но ты похоже начал запутываться, т.к. твою задачу можно было бы решить и более доступными средствами VB6. Если честно, я в твой типик сильно не вникал, но может просто экземплярам класса задавать формулу расчета через свойства класса, а вычислять - методом. Например класс ADODB.Connection может задавать свойство .ConnectionString с набором команд по подключению к базе данных в одной строке, а осуществлять подключение через метод .Open (в нем также можно указывать свойство ConnectionString и другие, а можно и ничего не указывать).
Номер ответа: 19
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #19
Добавлено: 31.10.08 16:32
Дело в том, что эта самая формула написана на родном VB, поэтому строку или функцию надо как-то выполнять.
Номер ответа: 20
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #20
Добавлено: 31.10.08 18:10
Scripting тебе в помощь. Всех деталей я не знаю, просто скажем в VBScript/JScript/JavaScript есть такая возможность вычислять выражения типа "=100+200*2-(1.3-0.34)^3", это как-то можно выполнить подключив какую-то библиотеку и использовать это у себя в программе. Переменные в выражении само собой работать не будут!
Номер ответа: 21
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #21
Добавлено: 31.10.08 18:25
Спасибо, я такой вариант уже рассматривал. Но мне подходит и передача функции по ссылке через AddressOf.
Вот только я так и не понял, как засунуть строку в Long.
Номер ответа: 22
Автор ответа:
Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #22
Добавлено: 31.10.08 18:37
- спорный вопрос
Номер ответа: 23
Автор ответа:
Holsten
Вопросов: 5
Ответов: 100
Профиль | | #23
Добавлено: 31.10.08 19:36
Получить адрес строки через StrPtr() и передать его в качестве параметра.
Номер ответа: 24
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #24
Добавлено: 31.10.08 19:45
Спасибо!
Номер ответа: 25
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #25
Добавлено: 01.11.08 12:55
Ну дык молодец. Насчет переменных - согласен с тобой.