我用TOLEContanier将数据库中的word文档加载到word后进行修改,修改结束后退出word。我想在程序中捕捉word退出的消息,然后判断TOLEContanier数据是否被修改,如果修改的话就直接存入数据库中,但不知道如何捕捉word退出的消息,请大家帮帮忙那,急死了!

解决方案 »

  1.   

    那用这样麻烦, 这样写就行了.   while OleContainer1.State = osRunning do{等侍关闭CAD}
       begin
          Sleep(100); 
          Application.ProcessMessages;
       end;
      

  2.   

    这样你的主程式,就会等到word关闭了, 再向后执行的 
      

  3.   

    什麽不行?你把WORD加到OleContainer1裏面了沒?加了這樣就會打開WORD了。然後寫上這段.他就會等到你的WORD關了再執行後面的程式, 你在後面寫保存到數據庫就行了.加載WORD到OleContainer1中這裏怎麽加你會寫吧???
    while OleContainer1.State = osRunning do{運行TOleContainer特有的方式以等到關閉的方式打開WORD} 
    begin 
       Sleep(100); 
       Application.ProcessMessages; 
    end; 如有一個 WordMemoryStream 內存流變量:WordMemoryStream := TMemoryStream.Create;
    OleContainer1.SaveToStream(WordMemoryStream);再有一個  WordStringStream 字符串流變量, 把內存流存入字符串流WordStringStream := TStringStream.Create('');WordMemoryStream.SaveToStream(WordStringStream);把字符串流存入數據庫TBlobField(數據庫名.FieldByName(字段名)).LoadFromStream(WordStringStream);
    數據庫名.Post;放到二個流
    WordStringStream.Free;
    WordMemoryStream.Free;
      

  4.   

    大哥我的程序是这样写的:
    procedure TfrmMain.muNewExecute(Sender:TObject);
    begin
      try
        OleContainer1.CreateOleFromFile('c:\公文.dot',true);
        OleContainer1.DoVerb(ovShow);//单独窗口启动WORD
      except
        messagebox(handle,'没有安装Word','提示',MB_ICONEXCLAMATION OR MB_OK);
        EXIT;
      END;  
      frmMain.hide;//先隐藏主窗口
      while OleContainer1.State = osRunning do 
        Sleep(100); 
        Application.ProcessMessages; 
        frmMain.Show;//关闭WORD后显示主窗口
      end; 
    end;但是关闭word后主窗口没有显示啊?请大哥指点一下我错在哪里啊?另外保存数据的程序我会写
      

  5.   

      while OleContainer1.State = osRunning do 
      begin 
        Sleep(100); 
        Application.ProcessMessages; 
      end;   frmMain.Show;//关闭WORD后显示主窗口 
      

  6.   

    while OleContainer1.State = osRunning do 
      begin 
        Sleep(100); 
        Application.ProcessMessages; 
      end; osRunning应该换成osOpen才行,呵呵!
      

  7.   

    word文件 直接保存到 数据库的字段中吗?这样数据库会不会很大?我觉得文件直接放在硬盘上,数据库中只放 文件的路径,这样是不是更好?