13,825
社区成员
发帖
与我相关
我的任务
分享
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfmMain *fmMain;
//---------------------------------------------------------------------------
__fastcall TfmMain::TfmMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
Variant cWordApp=Unassigned();
Variant cWordDocuments=Unassigned();
Variant cWordActiveDocument=Unassigned();
Variant cWordDocument=Unassigned();
//--------------------------------------------------------------------
void __fastcall TfmMain::Button1Click(TObject *Sender)
{
AnsiString strDir=Trim(WideString("C:\\words"));
TSearchRec sr;
int iAttributes = faAnyFile;
int i=0;
if (FindFirst(strDir+ "\\*.doc",iAttributes,sr)==0)
{
do
{
ListBox1->Items->Add(sr.Name);
i=i+1;
}
while(FindNext(sr)==0);
FindClose(sr);
}
cWordApp = Variant::CreateObject("Word.Application");
cWordDocuments = cWordApp.OlePropertyGet("Documents");
}
//--------------------------------------------------------------------
void __fastcall TfmMain::SetTopWord(const AnsiString paFileName)
{ //置顶函数 麻烦帮我看看,我搞了几天了 愣是没有弄出来
Variant oWindows;
try
{
if ( cWordApp.IsNull()) return;
cWordDocuments = cWordApp.OlePropertyGet("Documents");
if (!cWordDocuments.IsNull())
{
Variant oActDoc =cWordDocuments.OleFunction("Document","111.doc");
oActDoc.OleProcedure("Activate");
}
}
catch(Exception &E)
{
}
}
//---------------------------------------------------------------------------
bool __fastcall TfmMain::OpenWord(const AnsiString paFileName)
{
try
{
if(cWordApp.IsNull())
cWordApp = Variant::CreateObject("Word.Application");
if (cWordDocuments.IsNull())
cWordDocuments = cWordApp.OlePropertyGet("Documents");
if (paFileName.Length() > 0 && FileExists(paFileName))
{
cWordDocuments.OleProcedure("Open", WideString(paFileName));
cWordApp.OlePropertySet("Visible", false);
cWordApp.OlePropertySet("Visible", true);
}
return true;
}
catch(Exception &E)
{
return false;
}
}
//---------------------------------------------------------------------------
void __fastcall TfmMain::ListBox1DblClick(TObject *Sender)
{
//如何判断是否打开了该word文档,偶搞不定啊 救命啊
//............
//如果已经打开了该word文档 如何置顶 给改一下SetTopWord方法吧
//...................
//如果没有打开 那么打开该word文档
for (int i = 0; i <ListBox1->Items->Count; i++)
{
if (ListBox1->Selected[i])
{
AnsiString aWord = Trim(ListBox1->Items->Strings[i]);
aWord="c:\\words\\"+aWord;
if (OpenWord(aWord)==true)
{
}
else
{
ShowMessage(aWord+"打开失败!" );
}
}
}
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfmMain *fmMain;
//---------------------------------------------------------------------------
Variant cWordApp=Unassigned();
Variant cWordDocuments=Unassigned();
Variant cWordActiveDocument=Unassigned();
Variant cWordDocument=Unassigned();
__fastcall TfmMain::TfmMain(TComponent* Owner)
: TForm(Owner)
{
cWordApp = Variant::CreateObject("Word.Application");
cWordDocuments = cWordApp.OlePropertyGet("Documents");
}
//---------------------------------------------------------------------------
void TfmMain::ClearListBox() //清空ListBox时记得delete 对应的Variant
{
for (int i = 0; i <ListBox1->Items->Count; i++)
{
delete (Variant*)ListBox1->Items->Objects[i];
}
ListBox1->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TfmMain::FormClose(TObject *Sender, TCloseAction &Action)
{
ClearListBox();
}
//---------------------------------------------------------------------------
void __fastcall TfmMain::Button1Click(TObject *Sender)
{
ClearListBox();
AnsiString strDir="C:\\words";
TSearchRec sr;
int iAttributes = faAnyFile;
if (FindFirst(strDir+ "\\*.doc",iAttributes,sr)==0)
{
do
{
Variant *pVariant = new Variant; // 对应一个Variant
ListBox1->Items->AddObject(sr.Name,(TObject*)pVariant);
}
while(FindNext(sr)==0);
FindClose(sr);
}
}
//---------------------------------------------------------------------------
Variant __fastcall TfmMain::OpenWord(const AnsiString &paFileName)
{
Variant varDoc;
if (FileExists(paFileName))
{
try{
varDoc = cWordDocuments.OleFunction("Open", WideString(paFileName));
cWordApp.OlePropertySet("Visible", true);
}
catch(...){}
}
return varDoc;
}
void __fastcall TfmMain::ListBox1DblClick(TObject *Sender)
{
for (int i = 0; i <ListBox1->Items->Count; i++)
{
if (ListBox1->Selected[i])
{
AnsiString aWord = Trim(ListBox1->Items->Strings[i]);
aWord="c:\\words\\"+aWord;
//如何判断是否打开了该word文档
Variant *pVarDoc = (Variant*)ListBox1->Items->Objects[i];
//如果没打开
if(pVarDoc->IsEmpty()) *pVarDoc = OpenWord(aWord);
//置顶
if(!pVarDoc->IsEmpty()) pVarDoc->OleProcedure("Activate");
}
}
}
//---------------------------------------------------------------------------