C++Builder 自编常用函数库(2)


void SetEditCell(TStringGrid *sg,int x,int y)
{
//任一CELLS获得焦点,并可直接使用键盘输入
TGridRect myRect;
myRect.Left = x;
myRect.Top = y;
myRect.Right = x;
myRect.Bottom = y;
sg->Selection = myRect;
sg->Options<<goEditing;
SendMessage(sg->Handle,WM_LBUTTONDOWN,0,0);
}
//------------------------------------------------------------------------
void DeleteRow(TStringGrid *sg,int x) // 删除第x行(0...)
{
for (int y=0;y<sg->ColCount;y++)
{
TStringList *ss=new TStringList();
ss->AddStrings(sg->Cols[y]);
ss->Add("");
ss->Delete(x);
sg->Cols[y]=ss;
delete ss;
}
}
//-------------------------------------------------------------------------
int IsNum(String s)
{
try
{
s.ToInt();
return 1;
}
catch(EConvertError &s)
{
ShowMessage("不是整数!");
return 0;
}
}
//------------------------------------------------------------------------------------
void SetPaperSize(int w,int h,bool bHengXiang) // 设置缺省打印机纸张大小 w*h(*0.1mm)
{
char Device[CCHDEVICENAME];
char Driver[MAX_PATH];
char Port[32];
THandle hDMode;
PDevMode pDMode;

TPrinter *Prn = Printer();
Prn->GetPrinter(Device,Driver,Port,hDMode);
if (hDMode!=NULL)
{
pDMode=(PDevMode)GlobalLock((HGLOBAL &)hDMode);
if (pDMode!=NULL)
{
pDMode->dmPaperSize= 256;
pDMode->dmFields=pDMode->dmFields | DM_PAPERSIZE;
pDMode->dmPaperLength =h; //高 *0.1mm
pDMode->dmFields =pDMode->dmFields| DM_PAPERLENGTH;
pDMode->dmPaperWidth = w; //宽 *0.1mm
pDMode->dmFields =pDMode->dmFields| DM_PAPERWIDTH;
if(bHengXiang)
pDMode->dmOrientation=DMORIENT_LANDSCAPE;
else
pDMode->dmOrientation=DMORIENT_PORTRAIT;
}
ResetDC(Prn->Handle,pDMode);
GlobalUnlock((HGLOBAL &)hDMode);
}
}
//-------------------------------------------------------------------------------------
String SafeTrunc(const String s, int count)
{
String result;
int ws_len=count;
WideString ws(s);

do
ws= ws.SubString(1,ws_len--);
while((result=ws).Length()>count);

return result;
}

String NewGUID()
{
//产生唯一GUID
_GUID gid;
String GUID;
try
{
CreateGUID(gid); //CreateClassID()
GUID=GUIDToString(gid);
}
catch(...)
{
return "";
}
return GUID;
} <

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值