SFAdd.cpp
上传用户:deyixm
上传日期:2007-01-06
资源大小:43k
文件大小:3k
源码类别:

行业应用

开发平台:

Visual C++

  1. //---------------------------------------------------------------------------
  2. // 学韬电子光盘册   版本: 1.0.2
  3. // 作者:颜承     时间:2000.1.17
  4. // 主要构件: TListView ,TTreeView ,TClientDataSet ,TList等
  5. // API函数: GetVolumeInformation,ShellExecute,GetDriveType,GetLogicDriveStrings
  6. // 自定义类: TSerchDisk 递归方法搜索整个磁盘目录文件结构
  7. // 此为添加软件实现文件
  8. //---------------------------------------------------------------------------
  9. // 版权所有(C)2000 颜 承
  10. // 这一程序是自由软件,
  11. // 你可以遵照自由软件基金会出版的GNU通用公共许可证条款来修改和重新发布这一程序。
  12. // 发布这一程序的目的是希望它有用,但没有任何担保。甚至没有适合特定目的的隐含的担保。
  13. // 更详细的情况请参阅GNU通用公共许可证。
  14. // 你应该已经和程序一起收到一份GNU通用公共许可证的副本。
  15. // 我的联系方式:桂林集琦药业股份有限公司技术部(541004)
  16. // E-Mail: ycshowtop@sohu.com
  17. //-------------------------------------------------------------------------------
  18. #include <vcl.h>
  19. #pragma hdrstop
  20. #include "SFAdd.h"
  21. #include "main.h"
  22. //---------------------------------------------------------------------------
  23. #pragma package(smart_init)
  24. #pragma resource "*.dfm"
  25. TForm4 *Form4;
  26. extern AnsiString TheCDSeriNo;
  27. //---------------------------------------------------------------------------
  28. __fastcall TForm4::TForm4(TComponent* Owner)
  29.         : TForm(Owner)
  30. {
  31. }
  32. //---------------------------------------------------------------------------
  33. //浏览文件
  34. void __fastcall TForm4::btBrowseClick(TObject *Sender)
  35. {
  36.  char tmpDir[8][4];
  37.  int i,j;
  38.  for(i=0;i<8;i++) for(j=0;j<4;j++) tmpDir[i][j]='';
  39.  GetLogicalDriveStrings(32,tmpDir[0]); //取系统所有驱动器符号
  40.  unsigned long RetVal,a,b;
  41.  char VolName[256],str1[256];
  42.  for(i=0;i<256;i++) { str1[i]=''; VolName[i]='';}
  43.  //查找序列号对应的光盘或硬盘,初始化打开文件对话框目录
  44.  for(i=0;i<8;i++) {
  45.    if(GetDriveType(tmpDir[i])==DRIVE_REMOVABLE) continue; //不支持软盘
  46.    GetVolumeInformation(tmpDir[i], VolName,256,&RetVal,&a,&b,str1,256);
  47.    if(AnsiString(RetVal)==Form1->ClientDataSet1->FieldValues["CDSeriNo"]) {
  48.       OpenDialog1->InitialDir=AnsiString(tmpDir[i]);
  49.       break;
  50.    }
  51.  }
  52.  if(i==9) { //没找到
  53.     Application->MessageBox("请先插入此光盘,稍后再试!","提示",MB_OK);
  54.     return;
  55.  }
  56.  if( OpenDialog1->Execute() ) {
  57.     edFileName->Text=OpenDialog1->FileName;
  58.  }
  59. }
  60. //---------------------------------------------------------------------------
  61. //不允许没有文件名
  62. void __fastcall TForm4::edFileNameChange(TObject *Sender)
  63. {
  64.  if(edFileName->Text=="") btOK->Enabled=false;
  65.  else btOK->Enabled=true;
  66. }
  67. //---------------------------------------------------------------------------
  68. //确定,添加记录
  69. void __fastcall TForm4::btOKClick(TObject *Sender)
  70. {
  71.   Form1->ClientDataSet2->Append();
  72.   Form1->ClientDataSet2->FieldByName("CDSeriNo")->AsString=TheCDSeriNo;
  73.   Form1->ClientDataSet2->FieldByName("SWName")->AsString=edSoftName->Text;
  74.   Form1->ClientDataSet2->FieldByName("SWDirFile")->AsString=edFileName->Text;
  75.   Form1->ClientDataSet2->FieldByName("SWDescription")->AsString=edDescription->Text;
  76.   Form1->TreeView1Change(Form1->TreeView1,Form1->TreeView1->Selected);
  77.   Form1->itemFindSoft->Enabled=true;
  78.  
  79.   Close();
  80. }
  81. //---------------------------------------------------------------------------