Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

сохранение Word файла в Blob поле [D7, WinXP]


Xmen ©   (2011-01-17 08:45:00) 

Привет мастерам!
Есть один вопрос как сохранить Word файл в Blob поле посли закрытия word файла.
Есть док файл там есть анкета после ввода текста и сохранения этого файла чтобы он сохранился в влоб поле таблицы.


Xmen   (2011-03-03 13:51:00) [1]

procedure TMainForm.WordApplication1DocumentBeforeClose(ASender: TObject;
const Doc: _Document; var Cancel: WordBool);
begin
MessForm.Show;
end;

уже сделано появляется мая форма но ворд документ исчезает.
мне бы чтобы когда нажимается кнопка закрытия (х) ворда форма появился бы над вордом в место обычного запроса сохранения документа.


Плохиш   (2011-03-03 11:27:00) [2]


> Как мне сделать так что бы MessForm форма появился поверх
> ворд формы

Надо активировать свою программу и вывести еë на передний фронт.


Xmen   (2011-03-03 08:12:00) [3]

сделал так
поместил в форму компонентов
WordApplication и WordDocument и Button и прописал
procedure TMainForm.Button1Click(Sender: TObject);
var fn:OleVariant;
begin
 fn := ExtractFilePath(Application.ExeName) + 'test.doc';
 WordApplication1.Connect;
 WordApplication1.Documents.Open(fn, EmptyParam, EmptyParam, EmptyParam,
       EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
       EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
 WordApplication1.Visible:=True;
end;

по нажатию кнопки открывается ворд файл
а потом
procedure TMainForm.WordApplication1DocumentBeforeClose(ASender: TObject;
 const Doc: _Document; var Cancel: WordBool);
begin
 MessForm.Show;
end;

MessForm форме 2 кнопки "Да" "Нет" для сохранения файла заново в базе.

Теперь вопрос. Как мне сделать так что бы MessForm форма появился поверх ворд формы и перед закрытием ворда. А то у меня сначала ворд закрывается потом MessForm форма появляется. Если сделать так
procedure TMainForm.WordApplication1DocumentBeforeClose(ASender: TObject;
 const Doc: _Document; var Cancel: WordBool);
begin
 ShowMessage('Закрывается ворд!');
end;
То ShowMessage форма остаётся зади Ворд документа.


clickmaker   (2011-02-28 11:23:00) [4]

> мне бы сделать так когда закрывается открытий для редактирования
> документ появился бы форма запроса

отследить закрытие можно периодически пытаясь открыть файл на запись


Xmen   (2011-02-28 08:17:00) [5]


> как вариант: FindFirstChangeNotification на этот файл

чета не то что я хотел
мне бы сделать так когда закрывается открытий для редактирования документ появился бы форма запроса в котором запрашивался о сохранение файла в базе.


clickmaker   (2011-02-25 14:26:00) [6]

> Мне это не удается. У меня не получается узнать что файл
> был изменен и сохранен

как вариант: FindFirstChangeNotification на этот файл


Xmen   (2011-02-25 14:13:00) [7]


> KilkennyCat ©   (25.02.11 13:26) [11]
> а, понятно... вы запускаете ворд, пользователь редактирует,
>  закрывает, и надо перехватить это закрытие? т.е. редактируется
> не из программы..


если конкретно то да
есть анкеты в ворде(хранятся в блобе) и есть клиенты.
для каждого клиента создаётся поля с блоб полями внутри ворд файлом.
задача было такое нужно открыть каждую анкету, то есть сохранить файл из блоб поле в временном каталоге. а потом его редактировать и заполнят и сохранить его. Есть форма с помощью его выбирается клиент и выбирается анкета для изменения (сохраняется файл из блоба в временном каталоге). И программно открывается вордом. Заполняется в ворде и сохраняется. вот тут программа должно заново сохранить его в блоб поле. Мне это не удается. У меня не получается узнать что файл был изменен и сохранен.


KilkennyCat   (2011-02-25 13:26:00) [8]

а, понятно... вы запускаете ворд, пользователь редактирует, закрывает, и надо перехватить это закрытие? т.е. редактируется не из программы...


Xmen   (2011-02-25 13:04:00) [9]


> а зачем этот пример, раз вы>  работаем с ComObj.закройте
> документам там.

Я ссылку дал потом что я искал уже в инете и не нашел подходящего ответа.


KilkennyCat   (2011-02-25 13:00:00) [10]

ну а если вообще все плохо, написать макрос в ворде, пусть сам ворд орет, что документы он закрыл. он, кстати, может и сам еще и в блоб запихнуть.


KilkennyCat   (2011-02-25 12:58:00) [11]

а зачем этот пример, раз вы

>  работаем с ComObj.

закройте документам там.


Xmen   (2011-02-25 12:27:00) [12]

Результат поиска много раз возвращал ссылку вот этот пример (ссылки были разные это только один из них)
http://delphiworld.narod.ru/base/msword_open_docs_notify.html


Xmen   (2011-02-25 10:49:00) [13]

Как отследить закрытие Word документа искал с гуглом но толком не нашел ответа. Есть только одинаковые ответы.


> Andy BitOff ©   (18.01.11 13:50) [4]
> Следить за Вордом с помощью TWordApplicationсобытияOnDocumentBeforeCloseOnDocumentBeforeSave

TWordApplication не ползуюсь, работаем с ComObj.


  (2011-02-05 15:34:00) [14]

Удалено модератором


Andy BitOff   (2011-01-18 13:50:00) [15]

Следить за Вордом с помощью TWordApplication
события
OnDocumentBeforeClose
OnDocumentBeforeSave


Cobalt   (2011-01-17 14:04:00) [16]

смотри TBlobField


Xmen   (2011-01-17 12:09:00) [17]

Спасибо
Мне интересно было по закрытию ворд файла отправить его в блоб


Jeer   (2011-01-17 10:16:00) [18]

google:
save file to blob


Наверх

Титульная страница Поиск, карта сайта Написать письмо