-------------------------------------------------------
◇删掉程序自己的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. myeclipse-建立webservice服务端和客户端

    一.建立webservice服务端: 1.新建一个web service project,名称为webservice_server截图如下,点击finish. 2.选择工程,点击右键,选择new-&g ...

  2. The big deffrence between ($(du * )) and $(du *)

    Infolist=($(du *))echo "Get the list one $Infolist"This has formed a array after quating t ...

  3. [NOIP2011] 提高组 洛谷P1312 Mayan游戏

    题目描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个 7 行5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指在规定 ...

  4. POJ2253 Frogger

    Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 34865   Accepted: 11192 Descrip ...

  5. Model1模式的学生信息增删改查

    Student.java package entity; public class Student { private int stuid; private String stuname; priva ...

  6. Python序列的切片操作与技巧

    切片操作 对于具有序列结构的数据来说,切片操作的方法是:consequence[start_index: end_index: step]. start_index: 表示是第一个元素对象,正索引位置 ...

  7. 织梦(dedecms) 5.7 /plus/car.php sql注入0day

    测试方法: @Sebug.net   dis本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负! <?php $host=$argv[1]; $path=$argv[2]; $ ...

  8. SQL 基本语句

    1.修改sa账户密码 在查询分析器中执行如下语句: sp_password Null,'teracypwd','sa' 把SA的密码设为"teracypwd" 执行成功后有&quo ...

  9. C++中虚函数的作用浅析

    虚函数联系到多态,多态联系到继承.所以本文中都是在继承层次上做文章.没了继承,什么都没得谈. 下面是对C++的虚函数这玩意儿的理解. 一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你 ...

  10. ZLIB 库

    zlib 编辑 zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发,初版0.9版在1995年5月1日发表.zlib使用DEFLATE算法,最初是为libp ...