Главная страница
    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.039 c
14-1112565597
beautyk
2005-04-04 01:59
2005.07.11
помогите сделать чат с шфированием!


6-1111961987
Змей
2005-03-28 02:19
2005.07.11
Socket Connect в домашних условиях :)


9-1111794619
Green_Templar
2005-03-26 02:50
2005.07.11
снова про паблишеров


14-1117717481
evvcom
2005-06-02 17:04
2005.07.11
Продолжение дискуссии "Как избежать гонок в потоках"


3-1117526008
Антоныч
2005-05-31 11:53
2005.07.11
DBGridEh и STFilter





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