Delphi经验总结(3)
-------------------------------------------------------
◇删掉程序自己的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)的更多相关文章
- Delphi经验总结(1)
先人的DELPHI基础开发技巧 ◇[DELPHI]网络邻居复制文件 uses shellapi; copyfile(pchar('newfile.txt'),pchar('//computername ...
- Delphi经验总结(2)
Q: 怎么来改变ListBox的字体呢?就修改其中的一行. A: 先把ListBox1.Style 设成lbOwnerDrawFixed 然后在 OnDrawItem 事件下写下如下代码 proced ...
- JNI 翻译 转 Delphi 的 经验 方法
首发在 ①FireMonkey[移动开发] 16523232 欢迎使用 FMX 开发手机程序的高手来访. 注意:如果您看了本文,翻译了 JNI,请发布到本群共享一份.不同意本规定的,请立即删除本文.凡 ...
- Delphi调用WebService(通过SoapHeader认证)经验总结
项目(Delphi开发)需要调用另一个系统的WebService.走了不少弯路,现记录总结一下经验.以下是WebService要求: 1.WebService概述 营销Webservice接口采用Ap ...
- delphi 升级到xe7后的一些个人经验
http://blog.csdn.net/span12/article/details/42522091 你只要记住 字符串使用变了.VCL 下面所有的 char 改 ansichar string ...
- Delphi编程防止界面卡死的方法经验分享
Delphi编程防止界面卡死的方法经验分享! 1.循环里面防止界面卡死的方法可以使用Application.ProcessMessages: 例如下列方法: var n: Integ ...
- Delphi 10.1.2 berlin开发跨平台APP的几点经验
1.ios不允许app有退出功能,所以不能调用Application.Terminate. 2.info.plist文件的自定义:info.plist文件是由info.plist.TemplateiO ...
- (转: daifubing的博客 )Delphi二维码中文支持、分组、批量打印经验小结
一直也没接触到什么复杂的报表,都是一些简单的报表,在DelphI下使用QuickReport一般也就能满足需要了,由于公司现在需求的变化,对条码扫描提出了新的要求,主要是扫码要包含更多地内容,以前的一 ...
- Delphi面向对象设计的经验原则(61条)
(1)所有数据都应该隐藏在所在的类的内部. (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者. (3)尽量减少类的协议中的消息. (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深 ...
随机推荐
- C语言中常用的string.h的字符函数
strcmp 字符串比较函数 原型: int strcmp(char *str1, char *str2); 例子: ) printf("buffer 1 is greater than b ...
- bzoj 3437 斜率优化DP
写题解之前首先要感谢妹子. 比较容易的斜率DP,设sum[i]=Σb[j],sum_[i]=Σb[j]*j,w[i]为第i个建立,前i个的代价. 那么就可以转移了. /**************** ...
- Erlang练习-UDP
贴一下代码,例子是从别人那里直接抄来的: -module(myudp). -export([start/0, client/1]). %% Server start() -> spawn(fun ...
- jprofiler安装与使用
1: 修改/etc/profile 增加以下内容: JPROFILER_HOME=/opt/jprofiler9/bin/linux-x64export LD_LIBRARY_PATH=$LD_LIB ...
- php多态设计
原文:http://www.cnblogs.com/tecs27/archive/2012/03/13/2394028.html 多态性是指相同的操作或函数.过程可作用于多种类型的对象上并获得不同的结 ...
- xss实例-什么都没过滤的情况
1. XSS的存在,一定是伴随着输入,与输出2个概念的. 2. 要想过滤掉XSS,你可以在输入层面过滤,也可以在输出层面过滤. 3. 如果输入和输出都没过滤. 那么漏洞将是显而易见的. 4. 作为第一 ...
- Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下fina ...
- 在命令行中运行eclipse中创建的java项目
在命令行中运行eclipse中创建的java项目 博客分类: java相关 javaeclipse命令行 由于项目要求,需要对eclipse中的项目进行打包,似的可以在客户机上不装eclipse的情 ...
- PHP array_intersect() 函数
PHP Array 函数 定义和用法 array_intersect() 函数返回两个或多个数组的交集数组. 结果数组包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变. 注释 ...
- [转] Android开发者必备的42个链接
下面收集了42个帮助大家学习Android的内容链接,部分内容是面向初学者的,帮助大家从头开始学习Android开发,其他则面向较高级的开发者.希望推荐的这些内容对你有帮助. 官方网站 1.谷歌And ...