delphi小技巧集锦
2008-04-09 04:22:27来源:互联网 阅读 ()
//返回当前键盘状态,包括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;
可以让用户看到更多的错误信息,有助于客户反馈程序错误。
//执行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;
//根据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;
嗬嗬,谢谢帮我修理这个东西。
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的:
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;
begin
cFooterCol := cCol.Footers.Add;
cFooterCol.ValueType := FooterType;
if FooterType = fvtStaticText then
begin
vGrid.FooterRowCount := 1;
cFooterCol.Value := FooterText;
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:模拟Nokia手机输入的编辑框
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash