На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! user posted image
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

Соблюдайте общие правила форума

Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как запустить программу/файл? (и дождаться ее завершения)
5. Как перехватить API-функции, поставить hook? (перехват сообщений от мыши, клавиатуры - внедрение в удаленное адресное прстранство)
... (продолжение следует) ...

Внимание:
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки - бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Rouse_, user posted image Krid

Модераторы: Rouse_, Krid
  
> Delphi и Word , Не могу выделить текст
    Народ!!!
    Пишу на Delphi программу которая по шаблону будит генерить страници в Word'е.
    Вроде все получаеться, мне осталось скопировать страницу и размножить ее(програмно естественно).
    Но я не могу выделить весь текст,что бы его потом скопировать.
    Сам вопрос: как выделить весь текст?
      ExpandedWrap disabled
        Var Word:Variant;
        begin
            Word:=CreateOleObject('Word.Application');
            Word.Documents.Open('c:\myfile.doc',emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,1251);
            Word.Selection.WholeStory;
            Word.Visible:=true;
        end;
        ExpandedWrap disabled
          unit Unit1;
           
          interface
           
          uses
            Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
            Dialogs, ComObj, StdCtrls;
           
          type
            TForm1 = class(TForm)
              Button1: TButton;
              procedure Button1Click(Sender: TObject);
              procedure FormDestroy(Sender: TObject);
            private
              { Private declarations }
            public
              { Public declarations }
            end;
           
          var
            Form1: TForm1;
            W: Variant;
            
          implementation
           
          {$R *.dfm}
           
          procedure TForm1.Button1Click(Sender: TObject);
          begin
            W := CreateOleObject('Word.Application');
            W.Documents.Open(FileName := 'c:\tmp.doc', ReadOnly:=False);
            W.Visible := True;
            W.ActiveDocument.Range(Start := 10, End := 40).Select;
          end;
           
          procedure TForm1.FormDestroy(Sender: TObject);
          begin
            W.Quit(SaveChanges:=True);
          end;
           
          end.
          Посибки :)
            Извините, а как скопировать, допустим, с третьей по шестую строку текста, содержащего 10 строк и вставить скопированный текст после десятой строки?
            Спасибо заранее.
            Сообщение отредактировано: Shaden -
              Цитата Shaden @
              Извините, а как скопировать, допустим, с третьей по шестую строку текста, содержащего 10 строк и вставить скопированный текст после десятой строки?


              ExpandedWrap disabled
                const
                 wdGoToLine=3;
                 wdGoToAbsolute=1;
                 wdLine = 5;
                 wdExtend=1;
                 wdGoToLast=-1;
                 
                var
                 W,Sel: Variant;
                 
                procedure TForm1.Button1Click(Sender: TObject);
                begin
                  W := CreateOleObject('Word.Application');
                  W.Documents.Open(FileName := 'c:\tmp.doc', ReadOnly:=False);
                  W.Visible := True;
                  Sel:=W.Selection;
                  Sel.GoTo(What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=3);
                  Sel.MoveDown(Unit:=wdLine, Count:=3, Extend:=wdExtend);
                  Sel.Copy;
                  Sel.GoTo(What:=wdGoToLine, Which:=wdGoToLast);
                  Sel.EndKey( Unit:=wdLine);
                  Sel.TypeParagraph;
                  Sel.Paste;
                  Sel:=Unassigned;
                end;
                А можно ли выделить весь текст БЕЗ открытия
                Ворда и отобразить все это, скажем, в Мемо?
                  Открывать-то придется, но если его не делать видимым, то никто ничего и не узнает :)
                  ExpandedWrap disabled
                    var
                     Word: variant;
                    begin
                     Word := CreateOleObject('Word.Application');
                     Word.Documents.Open('C:\666.doc');
                     Word.Selection.WholeStory;
                     Word.Selection.Copy;
                     Memo.PasteFromClipboard;
                     Word.Quit;
                     Word := Unassigned;
                    end;

                  Вообще-то узнает, так как будет задержка на открытие документа
                    yurant
                    можно так
                    ExpandedWrap disabled
                      var
                        word:variant;
                      begin
                       Word := CreateOleObject('Word.Application');
                       Word.Documents.Open('C:\333.doc');
                       RichEdit1.Text := word.ActiveDocument.Range.Text;
                       word.Quit;

                    это без буфера обмена...
                      Здравствуйте. Вопрос таков - в документе порядка 100 страниц, на каждой странице есть информация о человеке, эта информация - переменная величина (для каждого человека), так вот как выделить эти строки (информацию о человеке)
                        Имхо лучше всего делать вот так:

                        Берем весь текст из ворда и пихаем его к примеру в RichEdit
                        Цитата dron-s @
                        yurant
                        можно так
                        ExpandedWrap disabled
                          var
                            word:variant;
                          begin
                           Word := CreateOleObject('Word.Application');
                           Word.Documents.Open('C:\333.doc');
                           RichEdit1.Text := word.ActiveDocument.Range.Text;
                           word.Quit;


                        а потом парсим текст в этом RichEdit`е с помощью Pos, PosEx и иже с ними

                        Сообщения были разделены в тему "Вставка текста в середину страницы. Word"
                          Добрый вечер. Подскажите пожалуйста. Для удобства решил написать программу, но не получается.
                          Идея в следующем. Открыт какойто текст в Word. При прочтении текста появляется необходимость у некоторых слов изменить заливку (именно заливку, а не цвет букв). Хочется чтобы было так: читаю книгу в WORD, выделяю мышкой текст в Wordе (удерживая определенную клавишу), отпускаю мышку и заливка текста меняется.
                          Нашел в иннете что заливка текста меняется функцией WordTextBox.Fill, но чтото не работает, может нужно подключить какойто модуль в раздел uses
                          Ну хотябы пока научится по нажатию кнопки менять заливку выделенного слова в книге?
                          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0725 ]   [ 15 queries used ]   [ Generated: 2.08.25, 02:47 GMT ]