CBC开发日志

来源:互联网 发布:sql的全称 编辑:程序博客网 时间:2024/06/06 18:49

2009-3-5

1.suiImageButton.鼠标放到按钮上面提示.Hint里面写提示内容,ShowHint选择为true

PicNormal是正常显示的图表,PicDisable.将控件拉大,就可以再放一些文字在控件上.这样文字和图标都显示在控件上.Transprant去掉图表背景颜色.

cbc读取xml文件是很方便的,在现在这样一个控件盛行的世界里.XMLInspector就是一个很不错的控件.直接下载,然后编译整个源代码,并且安装.还需要安装FIBPlus(fibplus6_8_install_builder.exe),因为编译的时候说不能打开库FIBPlus_CB6.lib和FIBDBMidas_CB6.lib.在使用的时候可以在组件菜单,新件组件,在祖先类型中选择xmlInspector,记住所属页面就是组件显示在那个tab的位置下.Addition tab下就有一个XML图标.用户可以把这个图标直接拖放到窗口中,就可以加载xml文件了

2. Form 显示的位置是在属性Position中.MainFormCenter是主窗口的中心.FormStyle是显示窗口的风格.fsNormal.有时候不知道怎么误点击了,导致子窗口最大化了.可能是程序出了错误,我只是把窗体的Scale属性设置为false.Visible的属性设置为false.就没有了一开始application初始化的时候最大化了子窗口.

3.得到窗口鼠标的位置,TPoint p;GetCursorPos(&p);可以使用控件MSNPopForm做弹出消息框.设置Form位置为鼠标点击的位置

4.TQery的使用,

qryDetail->SQL->Clear();
qryDetail->SQL->Text = String().sprintf("select * from EducationTable");
qryDetail->ExecSQL();
 qryDetail->Active=true;
  iXueli= qryDetail->FieldByName("EducationInfo")->AsString.ToInt();

5.datagrid随着TTable更新.

    ADOTable1->Active=false;
      ADOTable1->Active=true;
      this->DBGrid1->Update();

6.TsuiPanel 属性showbutton设置是否支持窗口收缩.在TPanel里面含有TForm,TForm的Position属性poDefault,visible属性false

7.TForm设置到TPanel中打开,直接可以写西面的代码

       TAddUserFrm *AddUserFrm=new TAddUserFrm(Application);
       AddUserFrm->Dock(Panel2,Panel2->ClientRect);
        AddUserFrm->Show();

也可以这样写

        TAddUserFrm *AddUserFrm=new TAddUserFrm(Application);
       AddUserFrm->Parent=TPanel2;
        AddUserFrm->Show();

但是后者的方法有标题但是不能使用TForm里面的控件.窗口不是处于激活状态.使用SetFocus()也不能激活.

8.TDataSource和TDataSet和TField的关系

DataSource->DataSet->FieldByName("表的字段名称");得到这个字段的列内容,就是TField.

TField方法AsString可以得到具体的文本内容

DataSource->DataSet->Next();记录集指针,我估计就是游标向下走一个/这样可以用上面的方法得到下一个记录集,这个字段的内容

9.C++builder使用zlib.首先从网站上下载http://www.indyproject.org/download/Borland.html 

,然后直接对这个压缩包解压.解压之后把这个文件的*.obj和*.pas文件拷贝到你C++builder的安装文件下的lib/obj这个文件夹下

再在你的BCB的工程菜单添加到工程,将你的Zlib.pas,有时候这个文件名字是DelphiZLib.pas.然后编译这个单元.

拷贝在C++builder的安装文件下的lib/obj这个文件夹下的zlib.hpp或者是ZLIBEX.hpp拷贝到C++builder的安装文件下的include文件夹下.

然后还在zlib.hpp或者是ZLIBEX.hpp头文件下在声明这个zlib的用户空间之前加上

#pragma   link   "DelphiZLib.obj".如下

//-- user supplied -----------------------------------------------------------
#pragma   link   "DelphiZLib.obj"
namespace Zlibex

{

写的压缩和解压的代码如下

void CompressFile( AnsiString FileName, AnsiString CompressedFileName)

{

   TFileStream *FIn, *FOut;

   TZCompressionStream* C;
   //TZCompressStream* C;
   //C = new TZCompressionStream( Zlib::clMax,FOut);

 

   if(!FileExists(FileName)) throw Exception("File not Exist");

   FIn = new TFileStream( FileName, fmOpenRead | fmShareDenyWrite );

   FOut = NULL;

   if (FileExists(CompressedFileName))

      FOut = new TFileStream(CompressedFileName, fmOpenWrite | fmShareExclusive);

   else

      FOut = new TFileStream(CompressedFileName, fmCreate | fmShareExclusive);

   try

   {

     C = new TZCompressionStream(FOut,Zlibex::zcMax);

     try

     {

      C->CopyFrom(FIn, 0);

     }

     __finally

     {

      delete C;

     }

   }

   __finally

   {

      delete FIn;

      delete FOut;

   }

}

 

//---------------------------------------------------------------------------

void DecompressFile(AnsiString FileName, AnsiString DecompressedFileName)

{

  TFileStream *FIn, *FOut;

  TZDecompressionStream* D;

  ::Byte Buf[4096];

  int Count;

  if(!FileExists(FileName)) throw Exception("File not Exist");

 

  FIn = new TFileStream( FileName, fmOpenRead | fmShareDenyWrite );

  FOut = NULL;

 

  if (FileExists(DecompressedFileName))

   FOut = new TFileStream(DecompressedFileName, fmOpenWrite | fmShareExclusive);

 else

   FOut = new TFileStream(DecompressedFileName, fmCreate | fmShareExclusive);

 try

 {

   D = new TZDecompressionStream(FIn);

   try

   {

     for(Count = 1;Count>0;)

     {

      Count = D->Read(Buf, sizeof(Buf));

      FOut->Write(Buf,Count);

     }

   }

   __finally

   {

     delete D;

   }

 }

 __finally

 {

   delete FIn;

   delete FOut;

 }

}

原创粉丝点击