Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

Работа с 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 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.109 c
5-1089110289
ssk
2004-07-06 14:38
2005.07.11
Наследник от TShape со встроенным таймером


14-1118728404
pavel_guzhanov
2005-06-14 09:53
2005.07.11
настройка соединения в opera


3-1117040772
_dimka
2005-05-25 21:06
2005.07.11
Как увидеть добавленную запись не переоткрывая запрос? (IBX)


14-1118409273
Mike Kouzmine
2005-06-10 17:14
2005.07.11
Будет война?


14-1118392610
pavel_guzhanov
2005-06-10 12:36
2005.07.11
Это что, смена ценностей?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский