07.05.2011, 01:34
|
|
Новичок
|
|
Регистрация: 28.04.2011
Сообщения: 67
Репутация: 10
|
|
ошибка сохранения результатов в Word-документ
здравствуйте, помогите пожалуйста найти ошибки в процедуре вывода в Word =( всё делала по методичке, но не пашет
Код:
procedure TFormEx4.Button1Click(Sender: TObject);
FUNCTION IsWordInstalled: Boolean;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CLASSES_ROOT;
Result := Reg.KeyExists('Word.Application');
Reg.Free
end;
FUNCTION WordClosed:BOOLEAN;
function FindNextWnd(StartHWND: HWND; AString : String): HWND;
var
Buffer : array [0..255] of char;
s:STRING;
i:BYTE;
begin
FillChar(Buffer,256,#0);
Result := StartHWND;
repeat
Result := FindWindowEx(0, Result, nil, nil);
GetWindowText(Result, Buffer, SizeOf(Buffer));
i:=0;
s:='';
WHILE (i<=255) AND (buffer[i]<>#0) DO
BEGIN
s:=s+buffer[i];
INC(i)
END;
IF s<>'' THEN
if Pos(ANSIUpperCase(AString),ANSIUpperCase(s))<>0 then
Break;
until (Result = 0);
end;
VAR h:HWND;
r:INTEGER;
par:OLEVariant;
CONST MSW='Microsoft Word';
begin
r:=mrRetry;
REPEAT
h:=FindNextWnd(Self.Handle,MSW);
IF h<>0 THEN
r:=MessageDlg('Çàâåðøèòå ðàáîòó '+MSW,mtConfirmation,[mbRetry, mbCancel],0)
UNTIL (h=0) OR (r=mrCancel);
Result:=r<>mrCancel;
//âûâîä â äîêóìåíò
WordApplication1.Connect;
WordDocument1.ConnectTo(WordApplication1.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam));
WordApplication1.selection.InsertAfter('Ðåçóëüòàò ñðàâíåíèÿ ìàññèâîâ'+#13);
par:=ExtractFilePath(Application.ExeName)+'out.doc';
WordDocument1.SaveAs(par);
WordDocument1.Close;
WordDocument1.Disconnect;
WordApplication1.Quit;
WordApplication1.Disconnect;
MessageDlg('Âûâîä îò÷åòà çàâåðøåí',mtInformation,[mbOK],0);
end;
end.
|