Страница 1 из 1

преобразовать любой объект в строку

Добавлено: 11 мар 2004, 11:55
MaxS
Написал в Access'е вывод лога в текстовый файл...
Как преобразовать любой объект в его информативное значение в виде строки?

CStr(Объект) - ругается... не помню на что :?

ps.
Сильно не пинать, перерыв в программировании на VBA был 2 года.

Добавлено: 17 мар 2004, 12:34
Naeel Maqsudov
Объект.Name или другие общие для ActiveX/COM-объектов свойства.

CStr(Объект) - НЕЛЬЗЯ, так как Объект - это суть указатель, т.е. адрес ячейки памямяти, где начинается конкретный инстанс (экземпляр) этого Объекта.

Добавлено: 18 мар 2004, 08:51
MaxS
Наверное не у всех есть свойство .Name? Это можно как-то проверить или проще обрабатывать событие ошибки?

ps.
А вот в 1С есть функция Строка(Объект) и всегда без ошибки возвратит что-нибудь полезное ;)

Добавлено: 19 мар 2004, 09:19
Naeel Maqsudov
Сомневаюсь, что Вам действительно требуется представление АБСОЛЮТНО ЛЮБЫХ объектов. Например, если речь идет о контролах (элементах управления), то у ActiveX существуют свойства, которые гарантированно имеются. Всегда можно получить ClassName ClassID для любого OLE-объекта. И т.д.
ps.
А вот в 1С есть функция Строка(Объект)
Ну что ж, :) очень рад за 1С. Попробуйте написать самостоятельно такую функцию. Обращайтесь к предполагяемым свойствам, а если не получается, то обрабатывайте ошибку внутри функции. Это, ИМХО, единственное решение.