Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OLE (MS Word), только чтение 
:(
    Опции темы
Vex
Дата 13.2.2003, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


кацапосрачмученiкъ
****


Профиль
Группа: Экс. модератор
Сообщений: 3103
Регистрация: 28.3.2002
Где: strawberry fields

Репутация: нет
Всего: 88



У меня есть задача: загрузить в приложение документ *.doc, чтобы его нельзя было скопировать или сохранить в другом файле. Делаю стандартно:

Код

OleContainer1.CreateObjectFromFile(FileName, false)


в контейнер загружается документ, но вот как сделать:
1. Чтоб там был скроллинг
2. Чтобы при двойном клике в контейнер не загружался Word?
2.1 Ладно, допустим, пусть загружается, но тогда надо не дать пользователю скопировать текст
и даже его выделить, и изменить, ну это ИМХО большой гемор smile.gif




--------------------
Слава Україні.
PM   Вверх
Baa
Дата 13.2.2003, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12



Скопировать текст можно всегда... %) ты по таймеру буфер обмена чисть wink.gif
А вообще, все даже проще smile.gif
При копировании текста контролу посылается WM_COPY, дык вот и чисть буфер при получении такого сообщения.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Vex
Дата 13.2.2003, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


кацапосрачмученiкъ
****


Профиль
Группа: Экс. модератор
Сообщений: 3103
Регистрация: 28.3.2002
Где: strawberry fields

Репутация: нет
Всего: 88



Спасибо, буду пробовать smile.gif Но как то некрасиво весь буфер чистить, а вдруг там пользователь файлы хранит smile.gif


--------------------
Слава Україні.
PM   Вверх
weiss
Дата 13.2.2003, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.2.2003
Где: Yekat

Репутация: нет
Всего: нет



чтоб не загружался укажи AllowActiveDoc=false;
PM MAIL ICQ   Вверх
Baa
Дата 13.2.2003, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12



А ты его не чисть тогда, а заменяй скопированный текст на че-нить вроде: "Защищено от копирования" smile.gif
И овцы сыты и волки целы smile.gif


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
weiss
Дата 13.2.2003, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.2.2003
Где: Yekat

Репутация: нет
Всего: нет



можно ещё AutoActivate Manual поставить
PM MAIL ICQ   Вверх
Vex
Дата 14.2.2003, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


кацапосрачмученiкъ
****


Профиль
Группа: Экс. модератор
Сообщений: 3103
Регистрация: 28.3.2002
Где: strawberry fields

Репутация: нет
Всего: 88



Код

type
 TForm1 = class(TForm)
 private
   { Private declarations }
    procedure WMCopy(var a:TWMCopy); message WM_COPY;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

TForm1.WMCopy(var a:TWMCopy);
begin
ShowMessage('alert :)');
end;

...


Не работает, что я не так сделал?


--------------------
Слава Україні.
PM   Вверх
SmaLL
Дата 14.2.2003, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 557
Регистрация: 17.12.2002
Где: Voronezh

Репутация: нет
Всего: 2



Цитата(Vex @ 14.2.2003, 14:40)

Не работает, что я не так сделал?

Так будет ловиться сообщение WM_COPY направленное именно объекту Form1.
Сообщения направленные другим объектам ловиться не будут.

Хотя.... может быть я и ошибаюсь.
Эй профессионалы где вы ?? baaa.gif
Куда-то Vit делся.

Это сообщение отредактировал(а) SmaLL - 14.2.2003, 22:53


--------------------
Что ни делается - всЁ к лучшему! SmallWeb
Мой адрес не дом и не улица, мой адрес родной пивзавод!
PM MAIL WWW ICQ   Вверх
Vex
Дата 14.2.2003, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


кацапосрачмученiкъ
****


Профиль
Группа: Экс. модератор
Сообщений: 3103
Регистрация: 28.3.2002
Где: strawberry fields

Репутация: нет
Всего: 88



Я тоже так думаю, я хотел сделать объект, потомок TOleContainer, и добавить туда эту процедуру, но...
см. топик "Error, ООП"


--------------------
Слава Україні.
PM   Вверх
Serebrus
Дата 18.8.2007, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 22.5.2007
Где: Ташкент

Репутация: нет
Всего: нет



Цитата(weiss @ 13.2.2003,  21:20)
можно ещё AutoActivate Manual поставить

Это работает
PM MAIL   Вверх
yogin
Дата 10.9.2010, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 23.12.2007

Репутация: нет
Всего: нет



Ребята, поднимаю тему.

Гружу ворд док так:
(на форме лежит TOleContainer)

Код

procedure TTheoryForm.FormCreate(Sender: TObject);
begin
  OleCon.DoubleBuffered := TRUE;
  OleCon.AutoVerbMenu := FALSE;
  OleCon.AllowActiveDoc := FALSE;
  OleCon.AutoActivate := aaManual;
end;

procedure BtnClick;
begin
  OleCon.CreateObjectFromFile('test.doc', FALSE);
end;


Как разрешить следующую проблему:
Почему загружается только первая страница вордовского документа? как грузить все страницы документа?

По теме:
Прокрутку организовал путём помещения Оле контейнера на скролл бокс.

PS: 
как программно прокрутить скролл бокс до упора вверх? (нужно при загрузке нового документа, а то скрол остаётся на старом месте и новый док открывается и показывается снизу например)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.