分类:Code

SynEdit SQL代码高亮

form1.SynSQLSyn1.CommentAttri.Foreground:=clGreen;
form1.SynSQLSyn1.DelimitedIdentifierAttri.Foreground:=clBlue;
form1.SynSQLSyn1.FunctionAttri.Foreground:=clFuchsia;
form1.SynSQLSyn1.KeyAttri.Foreground:=clBlue;
form1.SynSQLSyn1.StringAttri.Foreground:=clRed;
form1.SynEdit1.Highlighter:=form1.SynSQLSyn1;


运行期报表系统的实现

信息系统不可避免要制作各式各样的报表,如果每次开发报表都需要重新编译,这是一个非常大的工程,也不利于整个系统的管理和维护。
通过研究大部分报表都是通过若干个查询条件产生的表格式或图表式的报表,基于这个想法我使用delphi设计一个通用的DLL报表模块,在使用中只需要在后台设置一些基本参数和SQL,在主程序调用这个DLL即可实现动态报表。

经过一天的研究,发现实现起来其实比想象中的要容易得多,也基本达到了我的想法。在此要感谢强大的dbgrideh

主要思路是:
1、动态生成查询控件,目前支持TDBDateTimeEditEh和Tedit控件的动态Creat,以后可以扩展到combobox,单选复选框这些控件。
2、通过报表设计器将存在数据库里的SQL的查询条件与生成的控件进行绑定,再动态生成SQL查询语句。
3、通过adoquery查询生成的SQL语句,使用dbgrideh展示、打印和导出报表内容
4、将报表DLL挂载到系统菜单中,动态生成。

报表设计器界面:

相关的代码与大家分享:


你可以叫他位移加密,某系统的密码加密方式

procedure TForm1.Button1Click(Sender: TObject);
var bianma:string;
mm:string;
i:integer;
pwd:string;
begin
bianma:=’`1234567890-=~!@#$%^&*()_+qwertyuiop[]\QWERTYUIOP{}|asdfghjkl;ASDFGHJKL:”zxcvbnm,./ZXCVBNM<>? ‘;
mm:=’cvv+!e#’;
pwd:=”;
for i:=1 to length(mm)    do
begin
pwd:=pwd+copy(bianma,pos(copy(mm,i,1),bianma)-i,1);
end;
showmessage(pwd);
end;