三:控件操作
1,设置主界面显示位置:
this->Top = (int)(Screen->Height- this->Height)/2;
this->Left = (int)(Screen->Width - this->Width)/2;
2,操作所有控件(eg:锁定界面)
TControl *pControl;
for ( int i = 0; i < MainForm->ControlCount; i++ )
{
pControl = MainForm->Controls[i];
pControl->Enabled = false;
}
注:不能操作容器界面
3,button
做成透明效果,用speedbutton,flat设置成true,用Glyph加载button图标,
还可以用numglyphs设置不同状态下对应图片。
如下:
有glyph属性一般都跟有个numglyphs属性(bitbtn也有), 这个值最大为4
第一幅: up状态
第二幅: Disabled 状态
第三幅: Clicked状态
第四幅: Down状态
注:这种情况下caption不能写字
4,Label
透明:transparent = true;
居中:Alignment = taCenter;(左右)
Layout = tlCenter;(上下)
5,DateTimePicker
日期:Kind = dtkDate
时间:Kind = dtkTime
DateTimePicker_date->Date = Now().CurrentDate();
DateTimePicker_Time->Time = Now().CurrentTime();
strBeginTime = FormatDateTime("hh':'mm':'ss", DateTimePicker_Time->Time) ??
另:取得当前系统时间:
SYSTEMTIME dwTime;
GetLocalTime(&dwTime);
dwTime.wYear, dwTime.wMonth,dwTime.wDay
6,PageControl
取得当前页的控件:type &tyname = (type *) PageControl1->ActivePage->Controls[0];
7,Image
#include <jpeg.hpp>
TMemoryStream *MeStream1 = new TMemoryStream();
MeStream1->Write(char*,int);
MeStream1->Position = 0;
if(0!= MeStream1->Size)
{
TJPEGImage *Jpg_Image = new TJPEGImage;
Jpg_Image->LoadFromStream(MemoryStream_Play);
iamge1->Picture->Assign(Jpg_Image) ;
delete Jpg_Image;
//或者加入下面实现:
Graphics::TBitmap *Bmp_Image = new Graphics::TBitmap ;
Bmp_Image->Assign(Jpg_Image);
iamge1->Picture->Graphic=Bmp_Image;
delete Bmp_Image;
}
直接加载图片 注:bmp直接加载,jpg加#include <jpeg.hpp>即可
iamge1->Picture->LoadFromFile(strFileName) ;
保存图片
if(iamge1->Picture->Graphic != NULL)
iamge1->Picture->SaveToFile(this->SavePictureDialog1->FileName+".Jpeg");
8, DBGrid
全选:
if( ! DBGrid_DataResult->DataSource->DataSet->IsEmpty() )
{
DBGrid_DataResult->DataSource->DataSet->First();
while(!DBGrid_DataResult->DataSource->DataSet->Eof)
{
DBGrid_DataResult->SelectedRows->CurrentRowSelected = false;
DBGrid_DataResult->DataSource->DataSet->Next();
}
}
清空记录:
DBGrid_DataResult->DataSource->DataSet->Close();
取当前行某列的值(与first,next,eof结合用)
DBGrid_DataResult->DataSource->DataSet->FieldByName("某列名")->AsString;
删除当前行
if(满足条件)
{
DBGrid_DataResult->SelectedRows->CurrentRowSelected = true;
DBGrid_DataResult->SelectedRows->Delete();
}
else
{
DBGrid_DataResult->DataSource->DataSet->Next();
}
9,判断本地网络
#include <Sensapi.h>
DWORD flag;
if( ! IsNetworkAlive(&flag))
{
DWORD const e = GetLastError();
if( e == ERROR_SUCCESS 或其他)
{
异常;return -1;
}
}
10, IdIcmpClient ping主机
IdIcmpClient *IdIcmpClient_Ping;
PingHost( AnsiString strHost )
{
IdIcmpClient_Ping->Host = NULL;
IdIcmpClient_Ping->Host =strHost;
nPingfaildno = 0 ; //全局变量
for(int i =0; i<PING_NUM ;i++)
{
IdIcmpClient_Ping->Ping();
Application->ProcessMessages();
::Sleep(50);
}
if (nPingfaildno == PING_NUM)
{
return 1; //全不通
}
else
{
return 0 ; //ping success
}
双击event:OnReply
if( AReplyStatus.BytesReceived == 0 )
{
//收到0字节,Ping不通
nPingfaildno++;
}
11,AnsiString
AnsiString strName;
strName.sprintf("...|%s",char *);
int nPos = strName.pos(".");
AnsiString str1 = strName.SubString(nPos+1,strName Length()-nPos);