Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];




Вниз

Открытие вордового документа.(+) 


neverbee   (2001-11-06 12:11) [0]

Дело в том, что нужно открыть вордовый документ(к примеру, c:\test.doc), причем по некоторым причинам пользоваться ShellExecute не хочется, а хочется воспользоваться методом TWordApplication.Documents.Open. Данная ф-ция идет со следующим набором параметров(взято из word97.pas):
function Open(var FileName: OleVariant; var ConfirmConversions: OleVariant; var ReadOnly: OleVariant; var AddToRecentFiles: OleVariant; var PasswordDocument: OleVariant; var PasswordTemplate: OleVariant; var Revert: OleVariant; var WritePasswordDocument: OleVariant; var WritePasswordTemplate: OleVariant; var Format: OleVariant): WordDocument; safecall;
На подбор параметров(по смыслу вроде понятно) оно ругается "Type Mismatch". Если кто работал через данную ф-цию подскажите плз что и как туда передовать:)



Dimka Maslov   (2001-11-06 12:29) [1]


uses ..., OleServer, Word97;


function RepairText(Ws: WideString): String;
var
i: Integer;
Ch1, Ch2: Char;
S: String;
begin
S:=Ws;
Result:="";
Ch2:=#13;
for i:=1 to Length(S)-1 do begin
Ch1:=S[i];
Ch2:=S[i+1];
Result:=Result+Ch1;
if (Ch1 = #13) and (Ch2 <> #10) then Result:=Result+#10;
end;
Result:=Result+Ch2;
if Ch2 = chEnter then Result:=Result+#10;
AnsiToOEM(PChar(Result), PChar(Result));
OEMToAnsi(PChar(Result), PChar(Result));
end;

function ImportWordFile(const FileName: String): String;
var
WordApp: TWordApplication;
Doc: Variant;
begin
WordApp:=TWordApplication.Create(nil);
try
WordApp.ConnectKind:=ckNewInstance;
WordApp.Connect;
try
Doc:=WordApp.Documents;
Doc.Open(FileName);
Doc:=Unassigned;
WordApp.Selection.SetRange(0, $7FFFFFFF);
Result:=RepairText(WordApp.Selection.Text);
finally
WordApp.WindowState:=1;
WordApp.Quit;
WordApp.Disconnect;
end;
finally
WordApp.Free;
end;
end;




Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.041 c
1-22187           mitry                 2001-12-15 02:53  2002.01.08  
Thread: Suspend/Resume & Synchronize


3-21919           VS                    2001-12-04 14:07  2002.01.08  
Чтение и исправление данных из базы формата DBF Visual FoxPro 6.0


1-22200           Sergei_B              2001-12-15 09:57  2002.01.08  
Int64 и размер файла


1-22072           Гарик                 2001-12-19 11:08  2002.01.08  
Как создать экземпляр потомка TFrame динамически


14-22400          Ежик                  2001-11-11 17:10  2002.01.08  
И чего такие все вялые?