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