function GetKbStatus():string;
//返回当前键盘状态,包括NumLoce、Caps Lock、Insert
//每个状态信息占两个字符,顺序为:NumLoce、Caps Lock、Insert
//Copy Right 549@11:29 2003-7-22
var Status:string;
KeyStates:TKeyboardState;
begin
GetKeyboardState(KeyStates);
if Odd(KeyStates[VK_NUMLOCK])then
Status:=''''数字''''
else
Status:=''''光标'''';
if Odd(KeyStates[VK_CAPITAL]) then
Status:=status ''''大写''''
else
Status:=status ''''小写'''';
if Odd(KeyStates[VK_INSERT]) then
Status:=status ''''插入''''
else
Status:=status ''''改写'''';
Result:=Status;
end;
//返回当前键盘状态,包括NumLoce、Caps Lock、Insert
//每个状态信息占两个字符,顺序为:NumLoce、Caps Lock、Insert
//Copy Right 549@11:29 2003-7-22
var Status:string;
KeyStates:TKeyboardState;
begin
GetKeyboardState(KeyStates);
if Odd(KeyStates[VK_NUMLOCK])then
Status:=''''数字''''
else
Status:=''''光标'''';
if Odd(KeyStates[VK_CAPITAL]) then
Status:=status ''''大写''''
else
Status:=status ''''小写'''';
if Odd(KeyStates[VK_INSERT]) then
Status:=status ''''插入''''
else
Status:=status ''''改写'''';
Result:=Status;
end;
小技巧:
const ErrHead=''''操作出现错误,错误信息为:'''' #13
try
...
except
on E: Exception do showmessage(ErrHead E.Message #13 ''''当前操作为:xxxxx'''');
end;
可以让用户看到更多的错误信息,有助于客户反馈程序错误。
const ErrHead=''''操作出现错误,错误信息为:'''' #13
try
...
except
on E: Exception do showmessage(ErrHead E.Message #13 ''''当前操作为:xxxxx'''');
end;
可以让用户看到更多的错误信息,有助于客户反馈程序错误。
俺写得比较菜的,但是经常用的就是:
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//执行Sql
//输入参数:SqlString, ADOQuery
//类型: string, TADOQuery
procedure TMainForm.ExeSql(SqlString: string; ADOQuery: TADOQuery);
begin
with ADOQuery do
begin
Connection := DM.DBAccinfo;//这个是我的,可以添加用的connection
//或者用use也可以。
if Active then
Active := False;
Open;
SQL.Clear;
SQL.Add(SqlString);
ExecSQL;
Close;
end;
end;
//执行Sql
//输入参数:SqlString, ADOQuery
//类型: string, TADOQuery
procedure TMainForm.ExeSql(SqlString: string; ADOQuery: TADOQuery);
begin
with ADOQuery do
begin
Connection := DM.DBAccinfo;//这个是我的,可以添加用的connection
//或者用use也可以。
if Active then
Active := False;
Open;
SQL.Clear;
SQL.Add(SqlString);
ExecSQL;
Close;
end;
end;
可能大家都知道这个。不过,我见过的代码里面,
好像很少人这么来写这么独立出来一个过程。
这个保证我自己原创……
//Open Adoquery
//根据reallike(爱翔(只有lizzy可以叫其他人不能)) 的过程改编
//支持多行sql
//可根据需要自己修改成只支持单行sql的过程,或者exesql过程
//Delphi6下测试通过。
procedure OpenSql(SqlString: tstrings; ADOQuery: TADOQuery);
var i:integer;
begin
with ADOQuery do
begin
Close;
SQL.Clear;
for i:=0 to sqlstring.Count-1 do
SQL.Add(SqlString[i]);
try
Open;
except
on e:exception do showmessage(''''错误:信息如下'''' #13 e.Message);
end;
end;
end;
这个是单行sql的
procedure OpenSql1(SqlString: string; ADOQuery: TADOQuery);
begin
with ADOQuery do
begin
Close;
SQL.Clear;
SQL.Add(SqlString);
try
Open;
except
on e:exception do showmessage(''''错误:信息如下'''' #13 e.Message);
end;
end;
end;
嗬嗬,谢谢帮我修理这个东西。
//根据reallike(爱翔(只有lizzy可以叫其他人不能)) 的过程改编
//支持多行sql
//可根据需要自己修改成只支持单行sql的过程,或者exesql过程
//Delphi6下测试通过。
procedure OpenSql(SqlString: tstrings; ADOQuery: TADOQuery);
var i:integer;
begin
with ADOQuery do
begin
Close;
SQL.Clear;
for i:=0 to sqlstring.Count-1 do
SQL.Add(SqlString[i]);
try
Open;
except
on e:exception do showmessage(''''错误:信息如下'''' #13 e.Message);
end;
end;
end;
这个是单行sql的
procedure OpenSql1(SqlString: string; ADOQuery: TADOQuery);
begin
with ADOQuery do
begin
Close;
SQL.Clear;
SQL.Add(SqlString);
try
Open;
except
on e:exception do showmessage(''''错误:信息如下'''' #13 e.Message);
end;
end;
end;
嗬嗬,谢谢帮我修理这个东西。
不过你不使用Execsql吗?
我一般都在这个过程外面加try也就是引用他的地方。
也就是
Try
Exesql(sqlstring, Adoquery1)
except
//错误提示,乱七八糟的东西。
end
to: reallike(爱翔(只有lizzy可以叫其他人不能))
ExecSql的我也做了
//ExecSql Adoquery
//支持多行sql
//可根据需要自己修改成只支持单行sql的过程,或者exesql过程
//Delphi6下测试通过。
procedure ExeSql(SqlString: tstrings; ADOQuery: TADOQuery);
var i:integer;
begin
with ADOQuery do begin
Close;
SQL.Clear;
for i:=0 to sqlstring.Count-1 do
SQL.Add(SqlString[i]);
try
ExecSql;
except
on e:exception do showmessage(''''错误:信息如下'''' #13 e.Message);
end;
end;
end;
//我觉得except放在哪里都一样,放在外面好一点,因为,你可以添加一些其他的调试信息
//你说呢?
//有没有人把执行单行和执行多行的这两个过程合并成一个,那样就好了。
我也来两个,可以根据自己的需要进行增删,不过是针对DBGridEh的:
Exesql(sqlstring, Adoquery1)
except
//错误提示,乱七八糟的东西。
end
to: reallike(爱翔(只有lizzy可以叫其他人不能))
ExecSql的我也做了
//ExecSql Adoquery
//支持多行sql
//可根据需要自己修改成只支持单行sql的过程,或者exesql过程
//Delphi6下测试通过。
procedure ExeSql(SqlString: tstrings; ADOQuery: TADOQuery);
var i:integer;
begin
with ADOQuery do begin
Close;
SQL.Clear;
for i:=0 to sqlstring.Count-1 do
SQL.Add(SqlString[i]);
try
ExecSql;
except
on e:exception do showmessage(''''错误:信息如下'''' #13 e.Message);
end;
end;
end;
//我觉得except放在哪里都一样,放在外面好一点,因为,你可以添加一些其他的调试信息
//你说呢?
//有没有人把执行单行和执行多行的这两个过程合并成一个,那样就好了。
我也来两个,可以根据自己的需要进行增删,不过是针对DBGridEh的:
//动态建立Col
procedure BuildCol(vFieldName: string; vCaption: string; vWidth: Integer; var
vGrid: TDBGridEh; iTag: Integer = 0;
FooterType: TFooterValueType = fvtNon; FooterText: string = '''''''';
boolReadOnly: Boolean = True; vColor: TColor = clBtnFace);
var
cCol: TDBGridColumnEh;
cFooterCol: TColumnFooterEh;
begin
cCol := TDBGridColumnEh.Create(vGrid.Columns);
cCol.FieldName := vFieldName;
cCol.Width := vWidth;
cCol.Title.Caption := vCaption;
cCol.Title.Alignment := taCenter;
cCol.Title.Color := vColor;
cCol.ReadOnly := boolReadOnly;
//如果tag值为-1,则打印dbgrid时不打印该列
cCol.Tag := iTag;
procedure BuildCol(vFieldName: string; vCaption: string; vWidth: Integer; var
vGrid: TDBGridEh; iTag: Integer = 0;
FooterType: TFooterValueType = fvtNon; FooterText: string = '''''''';
boolReadOnly: Boolean = True; vColor: TColor = clBtnFace);
var
cCol: TDBGridColumnEh;
cFooterCol: TColumnFooterEh;
begin
cCol := TDBGridColumnEh.Create(vGrid.Columns);
cCol.FieldName := vFieldName;
cCol.Width := vWidth;
cCol.Title.Caption := vCaption;
cCol.Title.Alignment := taCenter;
cCol.Title.Color := vColor;
cCol.ReadOnly := boolReadOnly;
//如果tag值为-1,则打印dbgrid时不打印该列
cCol.Tag := iTag;
if FooterType <> fvtNon then
begin
cFooterCol := cCol.Footers.Add;
cFooterCol.ValueType := FooterType;
if FooterType = fvtStaticText then
begin
vGrid.FooterRowCount := 1;
cFooterCol.Value := FooterText;
begin
cFooterCol := cCol.Footers.Add;
cFooterCol.ValueType := FooterType;
if FooterType = fvtStaticText then
begin
vGrid.FooterRowCount := 1;
cFooterCol.Value := FooterText;
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关文章
热点关注
- AnsiString?PChar?赋值
- Report Machine 3.0 (报表
- MapX v5.02.25 破解文件
- WDBOX v1.0 多选下拉列表
- 用Delphi开发视频聊天软件
- Delphi客户服务器应用开发
- AES 加密算法函数包及演示
- ACCESS/SQL 数据库存取图
- 熊猫烧香核心源码(Delphi
- 把整个网页保存成JPG图片(
- 高级计算器 V1.0 (含代码)
- Delphi版模仿熊猫烧香病毒
- 精确定位打印程序 (含源代
- Delphi文件管理(六)
- 将数字四舍五入保留两位小
- 绝地程序编辑器 v1.0.1.4
- 关于自定义界面的方案(Eas
- Delphi 对象链接与嵌入(
- 用HTML页面做程序界面演示
- Delphi模拟最小化恢复关闭
- 用Delphi实现24位真彩色图
- 限制客户机运行程序 (有关
- Delphi中用API实现在MSN的
- DELPHI数据库应用程序的开
- Delphi 动态链接库编程(
- QQ号码自动申请器及源代码
- Win9x 下调整系统时钟控件
- delphi中的XML解析控件TXM
- 几个游戏内存修改器代码
- TT8 DevExpress 最新系列
- Tnt Delphi Unicode Contr
- DelphiTwain 2004-1-20 (
- Delphi中数据的自动录入
- 经验技巧:分享两条Delphi
- Delphi中Hash表的使用方法
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD




