Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Вниз

Работа с Word   Найти похожие ветки 

 
Леван   (2004-09-24 15:39) [0]

Привет Мастерам.
Скачал работающии пример работы с Word-ом. Начал перекачивать в своей программе куски, довел до
wordapplication.create(nil);//работает
Wordapplication.Connect; //работает
witemindex:=1;
wTemplate := emptyparam; //               EmptyParam;
NewTemplate := False;
WordApplication.Documents.Add(wTemplate, wNewTemplate);  //тоже работает

но никак не богу указать Word-у, чтобы он в качестве рабочего документа
взял данные из делфевского RichEdit-а
там есть WordApplication.Documents.Item(witemindex), но не позволяет
присваивать ему что-либо (left site cannot be assigned to...)
подскажите, как бить?
Спасибо


 
YurikGL ©   (2004-09-24 19:45) [1]

http://www.delphimaster.ru/cgi-bin/anketa.pl?id=1084962208

Читать интересное о себе...


 
Леван   (2004-09-25 09:26) [2]

Действительно интересно
спасибо
попробую


 
AGin   (2004-09-25 18:53) [3]

Это можно сделать через ClipBoard. Основная идея - текст заносится в RichEdit, потом полностью выделяется и помещается в ClipBoard, а в Word"е - вставляется обратно.

Работающий кусок для вставки в Word"е вместо заданного шаблона:

procedure FindAndPaste(const SFind: string);
var
 Range,FindText,MatchCase, Format,
       MatchWholeWord,MatchWildcards,
       MatchSoundsLike,MatchAllWordForms,
       FForward,Wrap,ReplaceWith,Replace,Wrk: OleVariant;
 CntAdded,CntBefore,CntAfter,i: Integer;
begin
 Range := WordDoc.Content;
 FindText := SFind;
 MatchCase := True;
 MatchWholeWord := True;
 MatchWildcards := False;
 MatchSoundsLike := False;
 MatchAllWordForms := False;
 FForward := True;
 Wrap := wdFindContinue;
 Format := False;
 Replace := wdReplaceNone;
 ReplaceWith := "";
 try
   WordApp.Selection.Find.Execute(FindText,MatchCase,
                    MatchWholeWord,MatchWildcards,
                    MatchSoundsLike,MatchAllWordForms,
                    FForward,Wrap,Format,
                    ReplaceWith,Replace);
   CntBefore := WordDoc.Paragraphs.Count;
   WordApp.Selection.Range.Paste;
   CntAfter := WordDoc.Paragraphs.Count;
   CntAdded := CntAfter - CntBefore;
   Wrk := WordApp.Selection.Paragraphs.Item(1);
   Wrk.Alignment := wdAlignParagraphJustify;
   Wrk.Range.Font.Name := PrintRE.RE.Font.Name;
   Wrk.Range.Font.Size := PrintRE.RE.Font.Size;
   if CntAdded > 0 then
     for i := 1 to CntAdded do begin
       Wrk := Wrk.Next;
       Wrk.Alignment := wdAlignParagraphJustify;
       Wrk.Range.Font.Name := PrintRE.RE.Font.Name;
       Wrk.Range.Font.Size := PrintRE.RE.Font.Size;
     end;
 except
 end;
end;



 
YurikGL ©   (2004-09-25 23:23) [4]


> Это можно сделать через ClipBoard.

Делать через буфер - плохо. А если у пользователя в этом буфере что-то хранилось?


 
AGin   (2004-09-26 21:22) [5]

Можно и непосредственно вставлять любой текст d Word без ClipBoard"а, а потом изменять форматирование, если нужно. Тогда и промежуточный RichEdit не нужен. Но... писать много...


 
Леван   (2004-09-27 12:29) [6]

TO AGin
Спасибо
Главное было взять с вашего примера
   wordapplication.Documents.Item(witemindex).Select();    WordApplication.Selection.Paste();и все получилось

А налзя ли поместить Richedit  в Tmemorystream и загрузить в WORD оттуда? (минуя Clipboard)?  (мне не удалос:
Richedit запыхнул в поток, но как указать ворду брать данные оттуда ?)



Страницы: 1 вся ветка

Форум: "Corba";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.037 c
3-1117179624
Neat
2005-05-27 11:40
2005.07.11
DBGrid. Сохранение порядка отображения записей


3-1117605470
ArkIv
2005-06-01 09:57
2005.07.11
FreeLibrary и try catch


3-1117199951
ryds
2005-05-27 17:19
2005.07.11
Слияние двух баз данных InterBase


3-1117091783
mebel
2005-05-26 11:16
2005.07.11
Последний раз! покажите в тексте что я делаю не так?


14-1118052395
Ozone
2005-06-06 14:06
2005.07.11
Файл ответов для MSI





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский