-------------------------------------------------------
◇删掉程序自己的exe文件
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
F:TextFile;
begin
AssignFile(F,'delself.bat');
Rewrite(F);{F为TextFile类型}
WriteLn(F,'del '+ExtractFileName(Application.ExeName));
WriteLn(F,'del %0'); //删除自己delself.bat
CloseFile(F);
WinExec('delself.bat',SW_HIDE);
end;
--------------------------------------------------------
◇汉字是双字节的
if ord(s[9])>128 then
ShowMessage('该位置字符是汉字');
--------------------------------------------------------
◇更改系统时间格式:
var
str: string;
begin
str := 'yyyy-mm-dd';
if SetLocaleInfoa(LOCALE_SYSTEM_DEFAULT, LOCALE_SLONGDATE, PChar(str)) then
begin
showmessage('更改日期格式成功');
end;
end;
---------------------------------------------------------
◇休息一分钟:
var
I:integer;
begin
i:=gettickcount;
while (Gettickcount-i)< =10000 do
application.ProcessMessages;//保证消息循环
end;
--------------------------------------------------------
◇取主文件名:
function retuFileName(const FileName: string): string;
var
I: Integer;
begin
I := LastDelimiter('.', FileName);
Result := Copy(FileName, 1, i-1);
end;
---------------------------------------------------------
◇调用EXCLE打开文件。
USES SHELLAPI
Shellexecute(handle,nil,pchar('c:报表.xls'),nil,nil,sw_shownormal);
-----------------------------------------------------------------------
◇[DELPHI]关于处理注册表
uses Registry;
var reg:Tregistry;
reg:=Tregistry.create;
reg.rootkey:='HKey_Current_User';
reg.openkey('Control PanelDesktop',false);
reg.WriteString('Title Wallpaper','0');
reg.writeString('Wallpaper',filelistbox1.filename);
reg.closereg;
reg.free;
--------------------------------------------------------
◇报错函数
procedure ErrMsg(sMsg:String; sPrompt:String='出错信息');//出错信息显示框
begin
Application.MessageBox(PChar(sMsg), PChar(sPrompt), MB_ICONERROR or MB_OK)
end;
----------------------------------------------------------
◇出错信息
try
except
on E: Exception do begin
ErrMsg(Format('登录[%s]数据库失败,回退操作将失效;'#13#10, [Server]) + E.Message);
Result := False;
end;
end;
-------------------------------------------------------------------
◇中文提示框
Application.MessageBox('无法打开指定文件', '提示', MB_OK);
---------------------------------------------------------------------
◇转换时间的函数
formatdatetime('yyyy"年"mm"月"dd"日"', UnccSysDate);UnccSysDate 为TDATATIME类型
-----------------------------------------------------------------------
◇定死小数点后的位数
Format('%*.*n', [10, 2, FieldByName('syje').AsFloat]
---------------------------------------------------------------------
◇类型转换函数
inttostr(); 将数字转换为字符串
ord(); 返回一个字符的序号(ASCII码)
Char(); 把一个整型数转化成相应序号的字符
UpCase(); 把小写转化为大写
--------------------------------------------------------------------
◇字符串处理函数
concat(); 与(+)功能相同,将多个字符串组合在一起
copy(); 会返回一个字符串中的子字符串
delete(); 在一个字符串中从一个指定位置起删除一定数字的字符()
insert(); 在一个字符串中插入一个字符串
length(); 返回字符串的长度
pos(); 返回一个子字符串在一个字符串中的位置
-------------------------------------------------------------------
◇载入文件的实现方法
var
ts:tstring;
begin
ts:tstinglist.creat;
ts.loadfromfile('文件的绝对路径'); //调用文件
----------------------------------------------------------------------
◇文件夹操作
uses filectrl;
procedure ForceDirectorys(dir:string)
//一次建立指定的多级文件夹
function DirectoryExists(Name: string): Boolean;
// 指定文件夹是否存在
function SelectDirectory(var Directory: string; Options: TSelectDirOpts; HelpCtx: Longint):Boolean;
// 打开一个选择文件夹的对话框(英文的)
----------------------------------------------------------------
◇var mytextfile:textfile;
begin assignfile(mytextfile,'mytextfile.exe');
reset(mytextfile);//rewrite()创建并打开文件(已有就覆盖),reset()以只读方式打开文件,append()以追加方式打开文件;
try
//可以加一句while nit eof(mytextfile) do;
{
//操作文件
for i:=1 to 5 do
begin s:='This is line #';
writeln(mytextfile,s,i);//结果被创建的文件中包含 this is line # 1……this is line # 5
//writeln()为往指定文件中写东西,还有readln(mytextfile,s,i)从指定的文件中读数据;
end;
}
finally
closefile(mytextfile);
end;
end;
------------------------------------------------------------------------
◇edit只能接收数字
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ((Key < '0') or (Key > '9'))
then Key := Chr(0);
end;
-----------------------------------------------------------------------
◇创建路径USES FileCtrl;
if not DirectoryExists(ExtractFilePath(paramstr(0)) + 'ElectronicBill') then
CreateDir(ExtractFilePath(paramstr(0)) + 'ElectronicBill');
fileexists();判断文件是否存在。
----------------------------------------------------------------------
◇选择一个路径 USES FileCtrl;
SelectDirectory('请选择存储路径!', '我的电脑', sSavePath);

Delphi经验总结(3)的更多相关文章

  1. Delphi经验总结(1)

    先人的DELPHI基础开发技巧 ◇[DELPHI]网络邻居复制文件 uses shellapi; copyfile(pchar('newfile.txt'),pchar('//computername ...

  2. Delphi经验总结(2)

    Q: 怎么来改变ListBox的字体呢?就修改其中的一行. A: 先把ListBox1.Style 设成lbOwnerDrawFixed 然后在 OnDrawItem 事件下写下如下代码 proced ...

  3. JNI 翻译 转 Delphi 的 经验 方法

    首发在 ①FireMonkey[移动开发] 16523232 欢迎使用 FMX 开发手机程序的高手来访. 注意:如果您看了本文,翻译了 JNI,请发布到本群共享一份.不同意本规定的,请立即删除本文.凡 ...

  4. Delphi调用WebService(通过SoapHeader认证)经验总结

    项目(Delphi开发)需要调用另一个系统的WebService.走了不少弯路,现记录总结一下经验.以下是WebService要求: 1.WebService概述 营销Webservice接口采用Ap ...

  5. delphi 升级到xe7后的一些个人经验

    http://blog.csdn.net/span12/article/details/42522091 你只要记住 字符串使用变了.VCL 下面所有的 char 改 ansichar string ...

  6. Delphi编程防止界面卡死的方法经验分享

    Delphi编程防止界面卡死的方法经验分享! 1.循环里面防止界面卡死的方法可以使用Application.ProcessMessages:  例如下列方法:    var      n: Integ ...

  7. Delphi 10.1.2 berlin开发跨平台APP的几点经验

    1.ios不允许app有退出功能,所以不能调用Application.Terminate. 2.info.plist文件的自定义:info.plist文件是由info.plist.TemplateiO ...

  8. (转: daifubing的博客 )Delphi二维码中文支持、分组、批量打印经验小结

    一直也没接触到什么复杂的报表,都是一些简单的报表,在DelphI下使用QuickReport一般也就能满足需要了,由于公司现在需求的变化,对条码扫描提出了新的要求,主要是扫码要包含更多地内容,以前的一 ...

  9. Delphi面向对象设计的经验原则(61条)

    (1)所有数据都应该隐藏在所在的类的内部. (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者. (3)尽量减少类的协议中的消息. (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深 ...

随机推荐

  1. Yii2.0 对数据库 查询的简单操作

    User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子): User::find()->w ...

  2. Java编程思想学习(十五) 注解

    注解Annotation又叫元数据,是JDK5中引入的一种以通用格式为程序提供配置信息的方式.使用注解Annotation可以使元数据写在程序源码中,使得代码看起来简洁,同时编译器也提供了对注解Ann ...

  3. BZOJ-1876 SuperGCD Python(欧几里德算法)

    第一次感觉Python艹题的快感 1876: [SDOI2009]SuperGCD Time Limit: 4 Sec Memory Limit: 64 MB Submit: 2461 Solved: ...

  4. IQ测试

    1.4个人过桥,只能两两过桥,且只有一盏灯,必须有灯才能过桥,4个人过桥时间分别为1,2,5,10分钟,最短多少时间可以过桥? 答案:1和2先走,1再返回,花3分钟.5和10走,2回去,花了3+10+ ...

  5. cf340 C. Watering Flowers

    C. Watering Flowers time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  6. POJ3070Fibonacci(矩阵快速幂+高效)

    Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11587   Accepted: 8229 Descri ...

  7. mvc中EditorFor TextBoxFor什么区别

    EditorFor 是映射到Model 属性上面,忽略用户自定义属性和样式 Model 可以为nullTextBoxFor是映射到Model 属性上面,可以用户自定义属性和样式 Model 不可以为n ...

  8. html5+监听设备加速度变化信息

    watchAcceleration 监听设备加速度变化信息 Number plus.accelerometer.watchAcceleration( successCB, errorCB, optio ...

  9. SQL Server中追踪器Trace的介绍和简单使用

    一.What is Trace? 对于SQL Profiler这个工具相信大家都不是很陌生,没用过的朋友可以在SQL Server Management Studio>工具>SQL Ser ...

  10. mysql 一个典型的数据库建表建用户过程

    cmd 命令不接 ";" mysql 命令后接 ";" 1.以管理员身份登录mysql mysql -u root –p 2.选择mysql数据库 use my ...