Всем доброго дня! Задумал я следующее
Создаю несколько вордовских документов, в основе заранее созданный шаблон. Список док-ов вывожу в ListBox. Ввожу информацию в memo, выделяю док-т в Liste и через ButtonClick пытаюсь вставить в активированный док-т эту информацию, а не получается
Делаю это так:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
ComboBox1: TComboBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Button1: TButton;
ListBox1: TListBox;
Button2: TButton;
SaveD1: TSaveDialog;
Edit2: TEdit;
Edit3: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses ComObj;
{$R *.dfm}
var
W : variant;
procedure TForm1.Button1Click(Sender: TObject);
var
j, i : integer;
path : string;
SaveChanges : variant;
begin
W := CreateOleObject('Word.Application');
Path:=Application.ExeName;
Path:=ExtractFileDir(Path);
if Path[Length(Path)]<>'\' then Path:=Path+'\'+'Templats'+'\';
W.Application.Documents.Open(Path+'ST.dot');
ListBox1.Items.Clear;
for i:=1 to W.Documents.Count do
ListBox1.Items.Add(W.Documents.Item(i).Name);
SaveD1.Filename:= Edit2.Text + ' ' +Edit3.Text +'.doc';
if not SaveD1.Execute then
begin
SaveChanges:=False;
W.Quit(savechanges);
W:= Unassigned;
exit
end
else
W.ActiveDocument.SaveAs(SaveD1.Filename);
W.Visible:= True;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i, j : integer;
begin
W:=GetActiveOleObject('Word.Application');
j:= StrToInt(Edit1.Text);
W.ActiveDocument.Tables.Item(2).Cell(j+1,2).Range.Text:= Combobox1.Text;
W.ActiveDocument.Tables.Item(2).Cell(j+1,3).Range.Text:= memo1.Text;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
begin
[color="Red"]W.Documents.Item(ListBox1.ItemIndex+1).Activate;/COLOR]
end;
end.
Что-то делаю неправильно, а что, не знаю. И вообще можно ли так делать? Спасибо.