| Типы программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Как принять сообщение WinRAR c StdErr Место на диске как способ защиты программы, и шифрование екзешника или упаковка. Получить активный HWND, Получить активный HWND наболевшая тема alt+tab Отклучить установленное модемное соединение, Отклучить установленное модемное соедине com1, Порт ком1 - освободить Сортировка списка окон., Немогу! Проконсультируйте..., запуск dll comport Как получить время uptime? обработка исключения в TDataSet Пара вопросов, Two questions Эмуляция кнопок на клаве WordWrap в TListBox, WordWrap в TListBox Работа с Clipboard, Присвоить строковой переменной... список пользователей..., под ХР и 9х часовой пояс... Нажатие Enter'а в другой проге, Имитация нажатия Поймать текст из TEdit, ...в другом приложении ScrollBy выходит за рамки Определение hInstance, у других приложений импорт Word-документа, открытие .doc файлов Как получить скорость текущего сет. подключ? EnumWindows ... какая-то странная ошибка, EnumWindows(@EnumWindowsWnd,0); Оптимизация манипуляций со строками Delphi и сотовая связь Как отловить все нажатия клавиш Проблема методов скрытия программы при минимизации, SW_HIDE и подобные методы Как сделать снимок экрана из сервиса. И снова о текстурировании, помогите разобраться... Как запустить программу невидимой Как определить момент обращения к COM порту, Как определить момент обращения к COM по Проверка существования строки в INI файле... Редактирование ресурсов, А именно, о функции UpdateResource... Процедура CreateFile? В чём дело? Можно ли скрестить Delphi и PowerPoint? Как ставить Zip Master?, для Delphi 7.0 Оболочка Shell-информация о дисках. helpfile (*.chm), помогите Подождать и закрыть Как Вы относитесь к курящим девушкам? Запуск из памяти Движение формы Можно ли графические файлы упаковывать с exe-шнико Правая кнопка мышки и Win98 Добавить пункт в контекстное меню Как распознать отправителя события "закрыть прилож, сист. Кнопка "закрыть" или пункт меню. Написание драйверов, нужна литературка Из консоли в Memo, вывод консоли Блокировка файла от удаления Как получить Id текущего пользователя?, WinXP, можно и для Win98 ShellExecutе Создание виртуального устройства как запретить проверку флоппи-дисковода?, запрет проверки дисковода Диалог выбора значка... Интернационализация приложения, как быть с китайским ? Как сделать свой архиватор, средствами Delphi 7 Процесс не убивается... Добавить пункт в контекстное меню Как запустить процесс с приоритетом Below Normal Автозагрузка в Безопасном режиме, В Б Р WinXP проги из Автозагр. не загр. замена иконки в трее Как получить слово под курсором мыши Перехват прерівания !, Диплом: Драйвер на Delphi Системное меню, запретить Создание в качестве отчета документа в MS Word, Delphi 5 hOOK, ЛОВУШКА НА МЫШЬ, МОЖНО ЛИ БЕЗ DLL? Удаление dll Определение и установка..., ...скорости CD-привода. |
Платные хостинги Раскрутка сайта Книги по программированию импорт Word-документа, открытие .doc файлов
- Программеры! Помогите понять, как можно открыть DOC-файл в дельфе, т.е. вытащить оттуда текст. Вроде бы как через OLE делается? только вот мне к сожалению методы для этого неизвестны. Конечно легче с RTF работать, но надо именно DOC. Может кто-нить расскажет или ссылочку подбросит? - См. методы VBA в поставке к MS Office - пиши свой мейл и я тебе вышлю tlb с описанием всех методов и свойств COM объектов для работы MS Office.Там все понятно. - 2adminlion:высылай сюда -- serghomebox@mail.ruСпасибо!! - А зачем, можно же и самому импортировать Type Library в Дельфи? Или у тебя что-то особенное? - Код procedure TForm1.Button1Click(Sender: TObject);var Wrd:Variant;begin Wrd:=CreateOLEObject('Word.Application'); try Wrd.Documents.Open('C:\Kir\Tests\MSDoc.doc'); RichEdit1.Text:=Wrd.ActiveDocument.Content.Text; finally Wrd.Quit; end;end;highlightSyntax('delphiMmE2Yj','delphi'); - Нет просто человек может не знает об этомпоэтому сам перкатаю и вышлю ему на мейл - Кстати, Fantasist то что ты написал, не совсем верно.А если у тебя уже открыт Excel, а если он в этот момент занят, как ты все отработаешь.А это надо учитывать при обрашении к Excel. Так что поднятие Excel требует более и интересного подхода - Блин забыл добавить, что в твоем примере указатель на Com объект не обнуляется, что в дальнейшем приведет к RunTimeError - А при чём тут Excel? Разве он как-то интерферирует с Word? - Если он об этом не знает, то ему и высланный тобой файл вряд ли поможет. Я думаю надо спросить у него, и лучше объяснить как импортировать интерфейс, вместо того чтобы слать полумегабайтный файл. - Это как, теоретические замечания, али попробывал на практике? В этом примере запускается совершенно новый экземпляр локального сервера Word.Application, и то что на этот момент что-то такое уже открыто не имеет никакого значения. Единственно конфликт может возникнуть, если этот файл уже открыт, тогда Word выведет диалоговое окно, но так как его не видно, то и диалога ты не увидишь и все будет выглядить так, как будто программа зависла. Чтобы этого не происходило, надо, кажись, какой-то параметр в Open указать, но его я не помню. Откуда может взяться run-time error совершенно не представляю. При чем тут обнуление указателя, который вообще локальная переменная? Это вы, батенька, кажись, загнули. - Дя я тут отчет в Excel отгружаю, да и оговорился.Но принцип тот же самы.Fantasist почитай книги о COM объектах, там четко сказано, что позавершении работы с Com объектом указателю надо обнулить и наче в определенной момент все крякнится. try try Excel := GetActiveOleObject('Excel.Application'); Screen.Cursor := crHourGlass; PrintDoc(Excel); Screen.Cursor := crdefault; except on E: Exception do ShowMessage(E.Message); end; finally Excel:=Unassigned; end;А новый экзумпляр каждый раз тоже влечет за собой глюки. Поставь память 32 и win 98 а затем попробуй.И посмотри на сайт www.vector2000.ruэто наша разработка которая продается и стоит бешенных денегвот от туда у меня и опыт - А насчет указателя ты прав, он же у тебя в процедуре объявленЕго не обязательно обнулять, но лучше ствоит - Хе, хе. Лучше понимать, а не обнулять. В данном случае обнуление указателя - это косвенный способ вызвать Release для интерфейса, то есть дать COM объекту понять, что раннее запрошенный у него интерфейс больше не используется и объект будет сам себя уничтожать, если его больше никто не использует. В моем же коде я явно указываю объекту, что надо завершить работу.Цитата А новый экзумпляр каждый раз тоже влечет за собой глюки. Поставь память 32 и win 98 а затем попробуй. Это уже вопрос оптимизации, если она нужна, а вовсе не вопрос о корректности моего кода. А вообще в программе, которая стоит бешенных денег я постарался бы избегать использовать OLE Automatation так как вещь эта довольно тормозная, хоть и удобная. Работа непосредственно с интерфейсами быстрее. |