| 
| 
 | Вопрос # 4 254/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты! У меня к Вам огромная просьба. Я создаю программу, и мне нужно, чтобы результаты расчета можно было отправить в Word. У меня есть шаблон, в который я хочу подставлять нужные мне данные. Для этого написал следующую функцию:
 Function FindAndInsert(FindText, ReplacementText : string) : boolean;
    const
      wdReplaceAll = 2;
    var
      W : variant;
    begin
!!!   W.Selection.Find.Text := FindText;
      W.Selection.Find.Replacement.Text := ReplacementText;
      FindAndInsert := W.Selection.Find.Execute(Replace := wdReplaceAll);
    end;так вот... при обращение к этой функции возникает ошибка класса EVariantInvalidOpError с сообщением: "Invalid variant operation" в строке фунции, отмеченной восклицательными знаками (!!!). Текст программы, для отправки данных в Word приведен ниже. помогите мне пожалуйста... {Если вместо функции подставить код, заключённый в фигурные скобки ({}), то программа работает как надо}.Приложение:Переключить в обычный режим procedure TForm1.Action8Execute(Sender: TObject);var  W : variant;  dir_ : String;  document : variant;  NameFile : string;begin   try  GetDir(0, dir_);  NameFile := Edit4.Text + '_' + Edit5.Text;  W := CreateOleObject('Word.Application');  W.DisplayAlerts:=False;  document := W.Documents.Open(dir_ + 'Shablon.dot');      W.Selection.Find.Replacement.Text := Edit4.Text;  W.Selection.Find.Execute(Replace := wdReplaceAll); }        document.Save;  document.Close;  finally  W.Quit;  W:=UnAssigned;  end;end;
|  |   Вопрос задал: Михаил Лебедев (статус: Посетитель)Вопрос отправлен: 31 мая 2010, 20:05
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: bugmenot переменная W не инициализирована. 
|  | Ответ отправил: bugmenot (статус: 3-ий класс)Время отправки: 31 мая 2010, 20:57
 
 |  
 Мини-форум вопросаВсего сообщений: 2; последнее сообщение — 31 мая 2010, 21:18; участников в обсуждении: 1. 
|   | Михаил Лебедев (статус: Посетитель), 31 мая 2010, 21:14 [#1]:как же так? она же описана в обоих случаях. или ее необходимо каким-то другим способом инициализировать? |  
|   | Михаил Лебедев (статус: Посетитель), 31 мая 2010, 21:18 [#2]:Все верно, надо было переменную W описывать в FindAndInsert(FindText, ReplacementText : string, W : variant) : boolean; и тогда все заработало. Спасибо большое за совет. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |