Главная страница
    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.032 c
4-1116075085
Дельфин
2005-05-14 16:51
2005.07.11
Цвет текста в консольных приложениях


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


1-1118389417
ruslan_as
2005-06-10 11:43
2005.07.11
Как сделать скриншот из всего, что находиться в ScrollBox1


4-1115062821
Okey_
2005-05-02 23:40
2005.07.11
Как поменять стиль обекта после создания?


9-1104993420
[Baradoo]
2005-01-06 09:37
2005.07.11
3D космический шутер (demo) 600KB





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