网站链接1:百家樂百家百家百家百家百家百家百家百家百家百家开户博彩网博彩网博彩网博彩通全讯网

顺风网 » delphi

存档

‘delphi’ 分类的存档

delphixe2以上版本的md5

2014年11月27日 admin 没有评论

uses IdHashMessageDigest,IdGlobal;

Function Md5Encode(const Source:string):string;
var
MD5:TIdHashMessageDigest5;
begin
MD5 :=TIdHashMessageDigest5.Create;
Result :=MD5.HashStringAsHex(Source);
MD5.Free;
end;

分类: delphi 标签:

Delphi 对汉字字符串的截取问题

2010年4月22日 admin 没有评论

在Delphi中,用Length来取字符长度时,会将汉字当成两个字节来计算,Copy把汉字当成两个来处理,可能截取半个汉字,那我们如何知道是否取的是汉字呢?是否把一个汉字取完整了呢?

其实,可以用ByteType对取出来的字符进行判断是一个单字符还是汉字的一部分!
mbLeadByte: 汉字的第一个字节
mbTrailByte: 汉字的第二个字节
mbSingleByte: 单个的字符,不是中文字符。
如果Copy出来的是汉字的第一个字节,就再多(或少)Copy一个,凑成完整的汉字。
如下例:

function GetText(strtxt:string;iLen:integer):string;
begin
//先判断要截取的字符串最后一个字节的类型
//如果为汉字的第一个字节则减(加)一位
if ByteType(strtxt,iLen) = mbLeadByte then
iLen := iLen – 1;

result := copy(strtxt,1,iLen) + “…”;
end;

来源  – http://www.delphitop.com/html/zifuchuan/285.html

分类: delphi 标签: , ,

设置DBGrid某列具有下拉列表框,下拉另一个DataSet的数据

2010年4月19日 admin 没有评论

首先设置好你要获取的另一个DataSet的字段,如cdsBigType。假设sql语句是’SELECT ID, CODE, NAME, CODE AS 大类编码,  NAME AS 大类名称 FROM bigType’。
然后给你的DBGrid(或DBGridEh)连接的DataSet(AdoQuery/ClientDataSet等)新建一个Lookup字段,如:bigType,DisplayLabel改成你需要的中文,将该Lookup字段的LookupDataSet设置为cdsBigType,选择LookupKeyFields(多个字段用英文分号隔开),LookupResultField(显示的中文名称)。
设置DBGrid要显示下拉框的列的属性如下:
AlwaysShowEditButton := True
DropDownShowTitle := True
DropDownSizing := True
FieldName := bigType
LookupDisplayFields:= ‘大类编码;大类名称’

本文参考bbs.2ccc.com重新整理 运行效果如下图:

备忘:delphi调试ocx有跳跃时的解决方法

2010年4月2日 admin 没有评论

今天一时昏头,系统恢复后,页面中的ocx运行出现地址错误。然后单步调试,断点跳过几行代码,跑到后面执行了,怀疑delphi没装好,卸载然后安装,依然存在。折腾了几个小时后猛然想起,ocx的注册路径不是源码所在路径,重新注册,搞定!

感慨:很多时候,我们绕进去的时候就需要这个灵光一现!

2009-04-18 23:17

分类: delphi 标签: ,

转:Delphi中控制Excel

2010年4月1日 admin 没有评论

 用Delphi从数据库中取得资料,然后导出到Excel中做成报表是个不错的选择,因为Excel强大的报表功能那可是没话说 
前提Delphi中要  
uses comobj; 
var Excel:Variant; 
一、Excel操作 
1.创建Excel对象 
Excel := CreateOleObject( Excel.Application ); 
2.显示Excel 
Excel.Visible:=true; 
3.更改标题 
Excel.Caption:=Excel的标题; 
4.退出Excel 
Excel.Quit; 
二、工作表操作 
1.添加新工作簿(刚创建的Excel对象是没有工作表的): 
Excel.WorkBooks.Add; 
2.打开已存在的工作簿: 
Excel.WorkBooks.Open( C:ExcelDemo.xls ); 
3.设置第2个工作表为活动工作表: 
Excel.WorkSheets[2].Activate;  
或  
Excel.WorksSheets[Sheet2].Activate; 
4.打印预览工作表: 
Excel.ActiveSheet.PrintPreview; 
5.打印输出工作表: 
Excel.ActiveSheet.PrintOut; 
6.工作表另存为: 
Excel.SaveAs( C:ExcelDemo1.xls ); 
7.判断是否已经保存: 
if not Excel.ActiveWorkBook.Saved then 
Excel.ActiveSheet.PrintPreview; 
8.放弃存盘: 
Excel.ActiveWorkBook.Saved := True; 
9.关闭工作簿: 
Excel.WorkBooks.Close; 
10.删除“表1”工作表: 
Excel.Sheets(表1).delete; 
11.改“sheet1”工作表名为“123” 
Excel.Sheets(Sheet1).Name := 123; 
三、行/列设置 
1.设置指定列的宽度(单位:字符个数),以第一列为例: 
Excel.ActiveSheet.Columns[1].ColumnsWidth := 5; 
2.设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例: 
Excel.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米 
3.插入一行或一列: 
a. Excel.ActiveSheet.Rows[2].Insert; 
b. Excel.ActiveSheet.Columns[1].Insert; 
4.删除一行或一列: 
a. Excel.ActiveSheet.Rows[2].Delete; 
b. Excel.ActiveSheet.Columns[1].Delete; 
5.自适应宽度 
Excel.ActiveSheet.Columns[1].EntireColumn.AutoFit; //第一列 
Excel.Cells.EntireColumn.AutoFit; //整个表所有列 
Excel.ActiveSheet.Rows[1:1].EntireRow.AutoFit; //第一行 
Excel.ActiveSheet.Columns[A:A].EntireColumn.AutoFit; //第一列 
6.居中显示J列 
Excel.Columns[J:J].HorizontalAlignment:=3; 
7.设置E列单元格式为3位小数数值 
Excel.Columns[E:E].NumberFormatLocal:=#,##0.000_  
8.设置E列单元格式为文字 
Excel.Columns[E:E].NumberFormatLocal:=@ 

四、单元格设置 
1.设置单元格线框 
Excel.ActiveSheet.Range[B10:C13].Borders[N].LineStyle := xlNone 
Excel.ActiveSheet.Range[B10:C13].Borders[N].Weight := xlThin 

边框的类型 Borders[N] 
xlEdgeLeft 左=1 
xlEdgeRight 右=2 
xlEdgeTop 顶=3 
xlEdgeBottom 底=4 
xlDiagonalUp 左上右下=5 
xlDiagonalDown 左下右上=6 
xlEdgeLeft 外部左边框=7 
xlEdgeTop 外部上边框=8 
xlEdgeBottom 外部下边框=9 
xlEdgeRight 外部右边框=10 
xlInsideVertical 内部竖线=11 
xlInsideHorizontal 内部横线=12 
线条类型LineStyle,宽度Weight 
第7种=1,1 
第6种=2,2 
第3种=3,2 
第6种=4,2 
第4种=5,2 
第9种=6,3 
第12种=1,3 
第13种=1,4 
第2种=2,1 
单条线的LineStyle := xlContinuous 
双条线的LineStyle := xlDouble 
虚线 xlHairline 1 
实线 xlThin 
中实线 xlMedium 
粗实线 xlThick 
XLLineStyle等值参考Excel里面的VisualBasic对象浏览器帮助 (如图) 
2.给单元格赋值: 
Excel.Cells[1,4].Value := 第一行第四列; 
3.设置第一行字体属性(隶书,蓝色,加粗,下划线): 
Excel.ActiveSheet.Rows[1].Font.Name := 隶书; 
Excel.ActiveSheet.Rows[1].Font.Color := clBlue; 
Excel.ActiveSheet.Rows[1].Font.Bold := True; 
Excel.ActiveSheet.Rows[1].Font.UnderLine := True; 
4.设置整个表字体为9 
Excel.Cells.Font.Size:=9; 
5.在第8行之前插入/删除分页符: 
Excel.WorkSheets[1].Rows[8].PageBreak := 1; (0为删除) 
6.清除第一行第四列单元格公式: 
Excel.ActiveSheet.Cells[1,4].ClearContents; 

五、页面设置 
1.页脚和页眉 
Excel.ActiveSheet.PageSetup.LeftHeader := 页眉左 
Excel.ActiveSheet.PageSetup.CenterHeader := 页眉中 
Excel.ActiveSheet.PageSetup.RightHeader := 页眉右 
Excel.ActiveSheet.PageSetup.LeftFooter := 页脚左 
Excel.ActiveSheet.PageSetup.CenterFooter := 页脚中 
Excel.ActiveSheet.PageSetup.RightFooter := 页脚右 
2.页脚中间显示页数: 
Excel.ActiveSheet.PageSetup.CenterFooter := 第&P页/共&N页; 
3.页眉到顶端边距2cm: 
Excel.ActiveSheet.PageSetup.HeaderMargin := 2/0.035; 
4.页脚到底端边距3cm: 
Excel.ActiveSheet.PageSetup.FooterMargin := 3/0.035; 
5.顶边距2cm: 
Excel.ActiveSheet.PageSetup.TopMargin := 2/0.035; 
6.底边距2cm: 
Excel.ActiveSheet.PageSetup.BottomMargin := 2/0.035; 
7.左边距2cm: 
Excel.ActiveSheet.PageSetup.LeftMargin := 2/0.035; 
8.右边距2cm: 
Excel.ActiveSheet.PageSetup.RightMargin := 2/0.035; 
9.页面水平居中: 
Excel.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035; 
10.页面垂直居中: 
Excel.ActiveSheet.PageSetup.CenterVertically := 2/0.035; 
11.打印单元格网线: 
Excel.ActiveSheet.PageSetup.PrintGridLines := True; 
12.横向打印 
Excel.ActiveSheet.PageSetup.Orientation:=2
 
ExcelWorksheet1.PageSetup.CenterFooter:=’第 &P 页,共 &N 页’; //设置页脚
 ExcelWorksheet1.Cells.Item[2,3].select; //选中第二行第三列的表格
 ExcelApplication1.ActiveWindow.FreezePanes:=True; //将此表格设为冻结
 ExcelWorksheet1.PageSetup.Orientation:=2; //设置为横向

分类: delphi 标签:

苏公网安备 32020202000090号

苏ICP备16040328号     点击这里给我发消息站长



普人特福的博客cnzz&51la for wordpress,cnzz for wordpress,51la for wordpress