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;
}
}