1、取得可文件路径

Path := ExtractFilePath(Application.ExeName); //取得可执行文件路径 TXMLDocument.Create(ExtractFilePath(Application.ExeName)+ '001.xml')

2、DisableControls EnableControls

ClientDataSet.DisableControls;

...

for I := 0 to 10000 do

begin

ClientDataSet.Append;

...

ClientDataSet.Post;

end;...

ClientDataSet.EnableControls

3、XML的解析

<?xml version="1.0" encoding="utf-"?>
<root>
<info id="id1" name="name1" />
<info id="id2" name="name2" />
</root> var
XMLDoc: TXMLDocument;
iNode, tmpNode: IXMLNode;
begin
with ClientDataSet1 do
begin
FieldDefs.Add('id',ftString,);
FieldDefs.Add('name',ftString,);
CreateDataSet;
end; XMLDoc:= TXMLDocument.Create(Owner);
XMLDoc.FileName:='E:\1.xml';
XMLDoc.Active:=True;
iNode := XMLDoc.DocumentElement.ChildNodes.First;
while iNode<> nil do
begin
ClientDataSet1.AppendRecord([iNode.Attributes['id'],iNode.Attributes['name']]);
iNode:= iNode.NextSibling;
end;
XMLDoc.Free;
end;

3、DelPhi 动态给ComBoBox赋值,从ComBoBox中取值

、把数据库中的项目信息(项目名称、项目编号)动态赋给ComBoBox

 cbProjectName.Items.Clear;
with adoQryProject do
begin
First;
while not Eof do
begin
ProjectNameStr := fieldByName('ProjectName').AsString;
if Trim(ProjectNameStr) <> '' then
cbProjectName.Items.AddObject(ProjectNameStr, TObject(fieldByName('ProjectID').AsInteger));
Next;
end;
end; 、读取ComBoBox中的值 ProjectID:= IInteger(cbProjectName.Items.Objects[cbProjectName.ItemIndex]);
ProjectName:= cbProjectName.Text; 、快速定位到某个字段或数据: >、设置Combobox控件的AutoComplete属性为true即可; >、combobox1.ItemIndex := Combobox1.Items.IndexOf(trim(edit1.text));

4、图片的存取

、存图片到数据库
var
PicStream: TMemoryStream; if imgBugPic.Picture.Graphic <> nil then
begin
PicStream := TMemoryStream.Create; // 创建内存流
imgBugPic.Picture.Graphic.SaveToStream(PicStream);
TBlobField(FieldByName('BUGPic')).LoadFromStream(PicStream);
PicStream.Free;
end; 、从数据库中读取图片并显示
var
PicStream: TMemoryStream;
if not FieldByName('BUGPic').IsNull then
begin
try
PicStream := TMemoryStream.Create;
TBlobField(FieldByName('BUGPic')).SaveToStream(PicStream);
PicStream.Position := ;
imgBugPic.Picture.Bitmap.LoadFromStream(PicStream);
PicStream.Free;
except
ShowMessage('对不起,图片有问题.');
end;
end;

5、动态创建窗体

//第一种方式
procedure TForm1.btn1Click(Sender: TObject);
begin
With TForm2.Create(Application) do
Try
   ShowModal;
finally
   free;
end;
end;
 
//第二种方式
procedure TForm1.btn2Click(Sender: TObject);
begin
  if not assigned(Form2) then
  begin
    Form2:=TForm2.Create(nil);
    Form2.Show;
  end
end;
 
//第二种方式创建的的窗体需要在FORM2里释放资源
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   Form2:=nil;           //Form对象指向空地址
  Action := cafree;     //Form关闭后释放占用的内存
end;

6、错误 抛出异常

try
     ....(需要执行的代码)
except
  on e:exception do
     application.MessageBox(pchar(e.Message), '错误提示', );
end;

7、本月的第一和最后一天

USER :DateUtils
procedure TForm1.btn1Click(Sender: TObject);
begin
     mmo1.Lines.Add(FormatDateTime('yyyy-mm-dd',StartOfTheMonth(Now)));
     mmo1.Lines.Add(FormatDateTime('yyyy-mm-dd',EndOfTheMonth(Now)));
   //mmo1.Lines.Add(DateTimeToStr(StartOfTheMonth(Now)));
   //mmo1.Lines.Add(DateTimeToStr(EndOfTheMonth(Now)));
end;

8、判断文件夹,没有创建

procedure TForm1.Button1Click(Sender: TObject);
var
Pach:string;
begin
Pach:='E:\123\223';                //定义目录地址
if not DirectoryExists(pach) then  //查找文件夹是否存在
  begin
  //建立文件夹(ForceDirectories可建立多级目录,创建单级目录用:CreateDirectory)
  ForceDirectories(Pach);
  end
else
  begin
  showmessage('目录已经存在');
  end;
end;

9、对Edit 循环赋值

var
  i:Integer;
  control:TComponent;
begin
  for i := to do
  begin
    control := FindComponent('Edit'+IntToStr(i));
    if control <> nil then
    begin
      TEdit(control).Text := IntToStr(i);
    end;
  end;
end;

10、画曲线

TeeChart 动态建曲线

var
  i:Integer;
  Series:array of TFastLineSeries;    //这里最好写在全局变量中
begin
  SetLength(Series,MyTHead.Count);
  Chart1.SeriesList.Clear;
  for i:= to MyTHead.Count- do  //MyTHead是一个Tstringlist,根据MyTHead来动态创建曲线的数量
  begin
    Series[i]:=TFastLineSeries.Create(nil);
    Series[i].ParentChart:= Chart1; //在名为CHART1的组件上建曲线
    Series[i].Title:= MyTHead[i];
  end;
end;

11、释放判断

XML := TNativeXml.Create(nil);

if assigned(XML)then
begin
FreeAndNil(XML);
end;

12、锁定控件 CDS内存表 XML赋值

 with ClientDataSet1 do
begin
//EmptyDataSet;
//Close;
if FieldDefs.Count<= then
begin
FieldDefs.Clear;
FieldDefs.Add('id',ftInteger,);
FieldDefs.Add('cname',ftString,);
FieldDefs.Add('contact',ftString,);
FieldDefs.Add('phone',ftString,);
FieldDefs.Add('addr',ftString,);
FieldDefs.Add('remark',ftString,);
//IndexDefs.Add('PK', 'id', [ixPrimary, ixUnique]);
CreateDataSet;
end;
DisableControls; // XML.Clear;
if not assigned(XML) then
XML := TNativeXml.CreateName('companies'); H := TAuthHeader.Create;
H.UserName := '' ; //这里只是举个例子
H.PassWord := '';
Headers := WebServer as ISOAPHeaders;
Headers.Send(H); retStr :=WebServer.findCompany ;
XML.ReadFromString(retStr);
XML.XmlFormat := xfReadable;
//XML.SaveToFile('D:\com'); // showmessage(IntToStr(list.Count));
if not assigned(list) then list:=TList.Create
else list.Clear; XML.Root.NodesByName('company', list);
//showmessage('2');
// ClientDataSet1.r
MergeChangeLog;
EmptyDataSet;
listcount := list.Count;
for i := to listcount - do
begin
node := list[i];
if node.ReadInteger('id')> then
begin
Append;
FieldByName('id').AsInteger := node.ReadInteger('id');
FieldByName('cname').AsString := node.ReadString('cname');
FieldByName('addr').AsString := node.ReadString('addr');
FieldByName('contact').AsString := node.ReadString('contact');
FieldByName('phone').AsString := node.ReadString('phone');
FieldByName('remark').AsString := node.ReadString('remark');
Post;
end;
//DisPose(list[i]);
end;
EnableControls;
Open; end;

13、窗体拖动

procedure TMain_Frm.imgbdMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (ssleft in shift) then
begin
releasecapture;
perform(wm_syscommand, $f012, );
end;
end;

14、删除提示

if Application.MessageBox('删除不能恢复,确认删除吗?', '删除提示', MB_OKCANCEL + MB_ICONQUESTION)=mrOk then
begin
  ShowMessage('你选择的OK!');
end;

15、生成GUID guid

function GetGUID: string;
var
Guid: TGUID;
begin
CreateGUID(Guid);
Result := GUIDToString(Guid);
end;

16、检测电话号码

function TMain_frm.IsMobileNumber(num: string): boolean;
begin
Result := False;
if length(trim(Num)) <> then
Exit;
if ((copy(num, , ) <> '') and (copy(num, , ) <> '')) and (copy(num, 1, 2) <> '18') and (copy(num, 1, 2) <> '14') and (copy(num, 1, 2) <> '17'))
)
)
then Exit; try StrToInt(copy(num, , )); Result := True; except end; end;

17、改变DBGrid显示的内容

procedure TAppInterface_frm.dbgrd1DrawColumnCell(Sender: TObject;   const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
str:string;
begin
if (Column.Field <>nil) and (Column.FieldName = 'isencrypt') then
begin
if Column.Field.IsNull then exit;
case integer(Column.Field.value) of
:str:='公开';
:str:='传值';
:str:='Header';
end;
(Sender as TDBGrid).Canvas.TextRect(Rect,Rect.Left,Rect.Top,str);
end; end;
procedure TMaindlg.ADOQueryDisplayIsUsedGetText(Sender: TField; var Text: String; DisplayText: Boolean);
beginif ADOQueryDisplay.FieldByName('Sex').AsString='' then
text:='女'
else
text:='男';
end;

DrawDataCell(ARect, DrawColumn.Field, AState);//是单元格 Dbgrid中填充数据时触发该事件
DrawColumnCell(ARect, ACol, DrawColumn, AState);//是列 Dbgrid生成每一列的时候触发该事件

18、Label自动换行 先将Autosize=false; 再设WordWrap=true;

19、ListBox基本使用方法:

一)添加
ListBox1.Add(EditBox1.Text);//添加到末尾 Items.Append('Append');//同Add ListBox1.insert(,EditBox1.Text);//添加到开头 //TcxImageList 参数 序号 内容 图标序号
lbxAppSupply.InsertItem(i,node.ReadString('mname')+' '+node.ReadString('name'),Random());
//对应的values值
lbxAppSupply.Values[i] := node.ReadString('id'); imglist1.Items[imglist1.ItemIndex];//内容
imglist1.Values[imglist1.ItemIndex];//值 //支持多选
for I := to imglist1.Count - do
begin
if imglist1.Selected[I] then
begin
mmo1.Text := mmo1.Text+'Selected[i]:'+imglist1.Items[i]+##;
mmo1.Text := mmo1.Text+'Values[i]:'+imglist1.Values[i]+##;
end;
end; 二)删除 ListBox1.DeleteSelected;//删除选择项 包括多选 imglist1.Items.Delete(imglist1.ItemIndex);//删除选择项 三)选定 //TcxImageList
imglist1.Selected[imglist1.Items.IndexOf('学生管理系统')]:= True; ShowMessage(imglist1.Items[imglist1.ItemIndex]); List为单选的取值 )ItemIndex:为选中的list序列号从0开始,没有选时为- )imglist1.Items[imglist1.ItemIndex]:为当前选中的内容 )Items.Strings[imglist1.ItemIndex]=Items[imglist1.ItemIndex] )GetCount为当前记录 因为从0开始,所以可以作为插入序号

20、Query字段属性 显示 添加

procedure TfrmYiSheng.qry1isUploadGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
inherited;
if Sender.AsInteger = then
Text := '是 '
else
Text := '否 ';
end; procedure TfrmYiSheng.qry1isUploadSetText(Sender: TField; const Text: string);
begin
inherited;
if Text = '是 ' then
Sender.AsInteger :=
else
Sender.AsInteger := ;
end;

21、inc() dec()

inc有两种用法:
一个是inc(integer),就是加1
比如
i := ;
inc(i);
就是i变为101 另一个是inc(integer,integer)就是加n
比如
i:=;
inc(i,);
就是i变成150
---------------------------------
Dec是递减函数
i:=;
dec(i);
i就变成99了,如果是dec(i,)的话,那么i=-=

22、 ChangeFileExt

function ChangeFileExt(const FileName, Extension: string): string;
var
I: Integer;
begin
I := LastDelimiter('.' + PathDelim + DriveDelim,Filename);
if (I = ) or (FileName[I] <> '.') then I := MaxInt;
Result := Copy(FileName, , I - ) + Extension;
end; 比如:
s:=changefileext('f:\123.txt','.ini');
showmessage(s);//f:\123.ini

23、Ini 文件读写

procedure TfrmMain.FormCreate(Sender: TObject);
var
S: string;
Ini: TIniFile;
begin
S := ChangeFileExt(Application.ExeName,'.ini');
Ini := TIniFile.Create(S);
try
edReadFilename.Text := Ini.ReadString('Files','Read','');
edWriteFilename.Text := Ini.ReadString('Files','Write','');
finally
Ini.Free;
end;
end; procedure TfrmMain.FormDestroy(Sender: TObject);
var
S: string;
Ini: TIniFile;
begin
S := ChangeFileExt(Application.ExeName,'.ini');
Ini := TIniFile.Create(S);
try
Ini.WriteString('Files','Read',edReadFilename.Text);
Ini.WriteString('Files','Write',edWriteFilename.Text);
finally
Ini.Free;
end;
end;

24、有序类型

Dec 将例程中的参数值递减1或一个特定的值,其中特定值可在
第二个可选参数中定义
Inc 将例程中的参数值增加1或一个特定的值
Odd 如果参数为奇数返回真
Pred 根据参数在其数据类型定义中的序列,返回参数值的前驱值
Succ 返回参数值的后继值
Ord 返回参数值在其数据类型值集合中的序号
Low 返回参数对应的有序数据类型的最小取值
High 返回参数对应的有序数据类型的最大取值

Delphi 复习代码的更多相关文章

  1. delphi 动态绑定代码都某个控件

    delphi 动态绑定代码都某个控件 http://docwiki.embarcadero.com/CodeExamples/Berlin/en/Rtti.TRttiType_(Delphi)Butt ...

  2. DIOCP组件(Delphi IOCP)代码阅读之ADO内存表

    DIOCP组件(Delphi IOCP)代码阅读之ADO内存表 代码中有 class procedure TADOTools.loadFromStream(pvDataSet: TCustomADOD ...

  3. 奖学金评分系统(系统分析与设计版与Delphi实现代码)

    一.系统规划 1.1 项目背景介绍 在奖学金评比过程中,学生综合测评是学校普遍采用的评比手段.对学生实施综合素质测评的目的在于正确评价学生的综合素质,为评奖学金提供依据,实现学生教育管理工作的标准化. ...

  4. delphi 修改代码补全的快捷键(由Ctrl+Space 改为 Ctrl + alt + Space)(通过修改OpenTool生效)

    delphi 的IDE快捷键与输入法切换键中突,以往的解决方法是下载一个ImeTool修改 windows 系统的快捷键 在 xp win7 都好使,但在win 10经常是修改完后,重启又失效了. 本 ...

  5. delphi 修改代码补全的快捷键(由Ctrl+Space 改为 Ctrl + alt + Space)

    delphi 的IDE快捷键与输入法切换键中突,以往的解决方法是下载一个ImeTool修改 windows 系统的快捷键 在 xp win7 都好使,但在win 10经常是修改完后,重启又失效了. 本 ...

  6. delphi HTML代码

    ################################属性 设置################################################字体设置{//-------- ...

  7. delphi中用代码实现注册Ocx和Dll(有点怪异,使用CallWindowProc来调用指定函数DllRegisterServer)

    在windows系统中,可以通过Regsvr32来实现注册ocx或者dl, 编程时,调用Regsvr32来注册,却不能正常执行.尤其是在Win7系统中,需要管理员身份才能运行. 使用下面的代码则能正常 ...

  8. delphi 在代码中 添加 TO-DO 并且 管理

    TO-DO List是一项非常好用的功能.采用她可以让我们很清楚的了解以前完成了那些任务,还有哪些任务需要做,由谁负责完成,是不是比较紧急的任务等.今天来不及完成的,明天上班就可以很快的找到任务所在的 ...

  9. javascript 复习代码

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. linux下搭建svn版本控制软件

    svn作为曾经流行的版本控制控制软件,它优异的版本控制功能在有意无意间已经深入IT人的工作了.然而虽然有后起之秀的git,但现在使用svn的项目并不在少数.最近有个项目需要协同开发,由于对svn用得比 ...

  2. ubuntu下java环境变量配置

    转自:http://blog.csdn.net/tenpage/article/details/7215810 如果是配置java环境,请参照这篇,更简单:在Ubuntu 12.04 LTS上安装JD ...

  3. cc.game

    概述 使用cc.game单例代替了原有的cc.Application以及cc.AppControl. cc.game是Cocos2d-JS的游戏对象,主要职责包括,配置的读取,引擎的加载,游戏脚本的加 ...

  4. August 3rd, 2016, Week 32nd, Wednesday

    I am looking for someone to share in an adventure. 我在找能和我一起分享冒险之旅的人. We are all looking for someone ...

  5. Maven类包冲突终极解决方案

    本文转自:http://ian.wang/106.htm 举例A依赖于B及C,而B又依赖于X.Y,而C依赖于X.M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,Maven可通过 ...

  6. java 基本数据类型

    long 是长整型,在怎么长本身也是整型,12.10的整形部分是12,当然结果是12, byte: 八位整数 -128——127,可用来节省内存的使用.short: 16位整数 -32768——32, ...

  7. svn 创建

    1.ps aux | grep svn 杀掉进程 2.svnadmin create /svnrepertory/SVNwangping 创建svn仓库; 3.修改3个文件 4.svnserve -d ...

  8. SQLite中DML DDL DML命令的区别[转]

    总体解释: DML(data manipulation language):       它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数 ...

  9. ***PHP中empty()和isset()的区别

    对于初学php的人来说,empty()和和isset()用法的区别是很难搞清楚的,他们的用法的差别不仔细去琢磨的话确实很难弄清楚. 先说一下他们的共同点: 都可以判定一个变量是否为空: 都返回bool ...

  10. 实现开启和关闭android移动网络(转)

    开启和关闭移动数据网络有两种方法:一种是通过操作系统的数据库改变APN(网络接入点),从而实现开启和关闭移动数据网络,另一种是通过反射调用系统(ConnectivityManager)的setMobl ...