Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

За 2005-10-06

Re[2]: Дельфи. Как среди множества СОМ-объектов выбрать нужный?

Здравствуйте, Вадим.

Вы писали 6 октября 2005 г., 18:43:42:

> Здравствуйте, Шистеров.

ШП>> Ситуация такая, на примере Word-а расскажу:
ШП>> Загружено например 3 приложения Word-а, в одном из них мой документ.
ШП>> Моя программа должна работать с этим документом через СОМ-интерфейсы
ШП>> Word-а. Получается мне нужно подключить переменную и связать ее именно
ШП>> с этим объектом Word-а, в котором открыт мой документ. Как это сделать
ШП>> я не знаю, надеюсь на помощь.
ШП>> ЗЫ. Нужно именно найти и соединиться с данным объектом.

> Вообще-то я не знаю, есть ли принципиальная разница в том, как именно
> открывались документы - через один единственный экземпляр Ворда
> через меню "Открыть", или же для каждого документа запускался новый
> экземпляр Ворда. Мне кажется, что разницы в этих способах нет.
> Впрочем, это можно проверить WinSight'ом.
> А начал я не с того конца вот почему. Если почитать файл справки
> vbawrd9, то обнаружится, что при подключении к Ворду через OLE и
> вариантную переменную у этой переменной "появляются" такие поля

> Здесь, в принципе, и хэндл не нужен.

> Так вот по поводу первого моего абзаца - я точно не знаю, если для
> каждого документа запускать новый экземпляр Ворда, все равно ли для
> них для всех создается одна единственная коллекция WD.Documents или
> разные? Я думаю, что одна.

Насколько я знаю - одна копия. Запускается куча библиотек. Но каждая
естествено только в одном экземпляре. Для ворда хендел остается один.
А вот для каждого документа новый, т.к. это все же окно, хоть и
дочернее.

   2005-10-06 23:03:59 (#450441)

Re: Дельфи. Как среди множества СОМ-объектов выбрать нужный?

Здравствуйте, Шистеров.

ШП> Ситуация такая, на примере Word-а расскажу:
ШП> Загружено например 3 приложения Word-а, в одном из них мой документ.
ШП> Моя программа должна работать с этим документом через СОМ-интерфейсы
ШП> Word-а. Получается мне нужно подключить переменную и связать ее именно
ШП> с этим объектом Word-а, в котором открыт мой документ. Как это сделать
ШП> я не знаю, надеюсь на помощь.
ШП> ЗЫ. Нужно именно найти и соединиться с данным объектом.

Вообще-то я не знаю, есть ли принципиальная разница в том, как именно
открывались документы - через один единственный экземпляр Ворда
через меню "Открыть", или же для каждого документа запускался новый
экземпляр Ворда. Мне кажется, что разницы в этих способах нет.
Впрочем, это можно проверить WinSight'ом.
А начал я не с того конца вот почему. Если почитать файл справки
vbawrd9, то обнаружится, что при подключении к Ворду через OLE и
вариантную переменную у этой переменной "появляются" такие поля

(WD :variant)
WD.Documents - коллекция открытых документов
WD.Documents.Count - число открытых док-тов
WD.Documents[i] - конкретный док.
WD.Documents[i].Name - имя его файла
WD.Documents[i].FullName - полный путь

Здесь, в принципе, и хэндл не нужен.

Так вот по поводу первого моего абзаца - я точно не знаю, если для
каждого документа запускать новый экземпляр Ворда, все равно ли для
них для всех создается одна единственная коллекция WD.Documents или
разные? Я думаю, что одна.

   Вадим Шешунов 2005-10-06 21:41:18 (#450343)

Re: Дельфи. Как среди множества СОМ-объектов выбрать нужный?

Добрый день Шистеров,

Thursday, October 6, 2005, 5:30:42 AM, вы писали:

Шистеров> Здравствуйте все,

Шистеров> Ситуация такая, на примере Word-а расскажу:
Шистеров> Загружено например 3 приложения Word-а, в одном из них мой документ.
Шистеров> Моя программа должна работать с этим документом через СОМ-интерфейсы
Шистеров> Word-а. Получается мне нужно подключить переменную и связать ее именно
Шистеров> с этим объектом Word-а, в котором открыт мой документ. Как это сделать
Шистеров> я не знаю, надеюсь на помощь.
Шистеров> ЗЫ. Нужно именно найти и соединиться с данным объектом.

Либо самому открывать нужный документ, либо пройтись по коллекции
документов и распознать по какому то признаку.

   2005-10-06 16:20:29 (#450036)

Re: Дельфи. Как среди множества СОМ-объектов выбрать нужный?

Здравствуйте, Шистеров,

Или как связать запущенное приложение с интерфейсом? Хендл приложения
есть, а вот как ассоциировать переменную с этим приложением?

   2005-10-06 06:45:18 (#449799)

Re: C++ Builder 5 & Access

Здравствуйте !

> В базе Access есть таблица в которой есть поле D:
> -тип данных: Дата/время
> -формат поля: Краткий формат даты
>
> Вопрос.
> Как из билдера писать в поле D дату (не в формате строки)?

Смотря с помошью чего.
Можно инициализировать переменную типа variant, задав ей тип даты,
потом значению поля присвоить значение этой переменной.

   2005-10-06 06:32:55 (#449792)

Дельфи. Как среди множества СОМ-объектов выбрать нужный?

Здравствуйте все,

Ситуация такая, на примере Word-а расскажу:
Загружено например 3 приложения Word-а, в одном из них мой документ.
Моя программа должна работать с этим документом через СОМ-интерфейсы
Word-а. Получается мне нужно подключить переменную и связать ее именно
с этим объектом Word-а, в котором открыт мой документ. Как это сделать
я не знаю, надеюсь на помощь.
ЗЫ. Нужно именно найти и соединиться с данным объектом.

   2005-10-06 06:28:10 (#449791)

Re[2]: не визуальное использование TCustomTreeView

Доброе время суток, Вадим Шешунов!

S>> Здравствуйте, Почтовый форум по программированию,

S>> Более глобально хотелось бы иметь нормальный класс для работы с
S>> деревьями.
S>> В Delphi вроде только TCustomTreeView имеется - других не знаю. (
ВШ> Несовсем понял насчет "других" - а TTreeView? Если нужен именно
ВШ> невизуальный класс типа "дерева", то скройте компонент и все дела. Или
ВШ> породите от TCustomTreeView свой компонент, хотя и он будет
ВШ> визуальным.
Я напутал.. В принципе, с TTreeView та же история получается..
Но это почти одно и тоже! Просто я в попыхах использовал абстрактный
класс.. %)
Если я создаю класс в коде, во время выполнения вылетает ошибка
"Control '' has no parent window".
Хотя передаю в конструкторе nil, хоть TForm.
Хотя через CreateParented, в принципе, всё работает.

S>> Используем TTreeNodes:

S>> tree := TTreeNodes.Create(nil);
S>> tree.GetFirstNode; // Тут вылетает Access Violation

S>> ..беда!!!

S>> т.е. без TCustomTreeView никуда!!! (
ВШ> Еще бы - ветку дерева нужно к дереву лепить, а не к nil.
Вот! А хотелось бы только саму концепцию дерва использовать, без
визуализации.. Но и визуализация тоже пока нужна, только для
отладки (чтобы видеть, что у меня там, в дереве), хотя может я её и
потом оставлю.
В принципе алгоритм и визуализация должны быть разделены..
Вроде это "закон". За неисполнение не повешают, но времени потратить
потом можно кучу!..

ВШ> Чё-то выводы какие-то....-)))))) Впрочем, если это о программинге, то
ВШ> мы все тут такие.-))))))))
Тут больше по отношению к себе всё.. Когда код не красивый, чувствуешь
себя дискомфортно. А когда ОЧЕНЬ непонятный и не красивый начинаешь
гордиться.. ;) ИМХО это не правильно и глупо. Зато вышел из сложной
ситуации..

ps:
В общем работает. Время покажет, что из этого выйдет!..

   2005-10-06 04:51:07 (#449782)