Delphi中建议使用的语句

楼主zswang(伴水清清)(专家门诊清洁工)2002-05-15 13:37:54 在 Delphi / VCL组件开发及应用 提问

No.1   判断逻辑类型  
  var   B:   Boolean;  
  begin  
      B   :=   Boolean(2);   //这样只是为了调试//B   :=   True;  
      if   B   =   True   then   ShowMessage('B   =   True');   //不建议//不安全  
  ///  
      if   B   then   ShowMessage('B');   //建议//简短  
  end;  
   
  var   B:   Boolean;  
  begin  
      if   Edit1.Text   =   '是'   then   //不建议//烦琐  
          B   :=   True  
      else   B   :=   False;  
  ///  
      B   :=   Edit1.Text   =   '是';   //建议//简短  
  end;  
   
  No.2   临时SQL查询  
  begin  
      QueryTemp.Close;  
      QueryTemp.SQL.Text   :=   'SELECT   SUM(金额)   AS   合计   FROM   销售表';  
      QueryTemp.Open;   //不建议//数据没有关闭造成资源浪费  
      ShowMessage(Query1.FieldByName('合计').AsString);  
  /  
      QueryTemp.SQL.Text   :=   'SELECT   SUM(金额)   AS   合计   FROM   销售表';  
      QueryTemp.Open;  
      ShowMessage(Query1.FieldByName('合计').AsString);  
      QueryTemp.Close;   //建议用//使用完就关闭  
  end;  
   
  No.3   获取记录数  
  var  
      vRecordCount:   Integer;  
  begin  
      Query1.SQL.Text   :=   'SELECT   *   FROM   Table1';   //不建议//严重浪费资源,会取得很多不必要得信息  
      Query1.Open;  
      vRecordCount   :=   Query1.RecordCount;  
      Query1.Close;  
  /  
      Query1.SQL.Text   :=   'SELECT   COUNT(*)   AS   记录数   FROM   Table1';   //建议//快速有效、只处理一条记录  
      Query1.Open;  
      vRecordCount   :=   Query1.FieldByName('记录数').AsInteger;  
      Query1.Close;  
   
      ShowMessage(IntToStr(vRecordCount));  
  end;  
   
  No.4   字段赋值  
  begin  
      Table1.Edit;  
      Table1.FieldByName('姓名').AsString   :=   Edit1.Text;   //不建议  
      Table1.FieldByName('日期').AsDateTime   :=   Date;  
  /  
      Table1['姓名']   :=   Edit1.Text;   //建议//简短、扩充性好  
      Table1['日期']   :=   Date;  
  end;  
   
  No.5   使用Self指针  
  begin  
      Edit1.Parent   :=   Form1;   //不建议//Form1只是一个变量//如果没有分配资源怎么办?  
  ///  
      Edit1.Parent   :=   Self;   //建议  
  end;  
   
  No.6   遍历数据集  
  var  
      I:   Integer;  
  begin  
      Query1.First;  
      for   I   :=   0   to   Query1.RecordCount   -   1   do   begin   //不建议//容易被影响  
          Query1.Next;  
          {};  
      end;  
  /  
      Query1.First;  
      while   not   Query1.Eof   do   begin   //建议  
          {     }  
          Query1.Next;  
      end;  
  end;  
   
  No.7   利用Sender参数,使代码通用  
  procedure   TForm1.Edit1Change(Sender:   TObject);  
  begin  
      if   Edit1.Text   =   ''   then   //不建议  
          Edit1.Color   :=   clRed;  
  ///  
      if   TEdit(Sender).Text   =   ''   then   //建议//复制到EditXChange中很方便  
          TEdit(Sender).Color   :=   clRed;  
  end;  
   
  No.8   使用默认转换函数  
  var  
      I:   Integer;  
  begin  
      I   :=   StrToInt(Edit1.Text);   //不建议  
  ///  
      I   :=   StrToIntDef(Edit1.Text,   0);//建议//参考StrToFloatDef,StrToDateDef....不过这些只有Delphi6才有  
  end;  
   
  No.9   遍历数组  
  var  
      I:   Integer;  
      A:   array[0..9]   of   Integer;  
  begin  
      for   I   :=   0   to   9   do   //不建议  
          A[I]   :=   I;  
  ///  
      for   I   :=   Low(A)   to   High(A)   do   //建议//扩充性好  
          A[I]   :=   I;  
  end;  
   
  No.10   利用MaxInt常量  
  begin  
      Caption   :=   Copy(Edit1.Text,   3,   Length(Edit1.Text)   -   3   +   1);   //不建议  
  ///  
      Caption   :=   Copy(Edit1.Text,   3,   MaxInt);   //建议//嘻嘻,少计算一次  
  end;

Delphi中建议使用的语句相关推荐

  1. 转:delphi异常捕获try except语句 和 try finally语句用法

    转:http://www.java123.net/v/936977.html      2015-06-24 09:27:48 一直写程序都没管他们,也尽量很少用,今天终于想把他给弄个明白,在网上找来 ...

  2. DELPHI中操作ACCESS数据库

    DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库) 以下代码在WIN2K,D6,MDAC2.6下测试通过, 编译好的程序在WIN98第二版无ACCESS环境下运行成功. //在之前u ...

  3. Delphi中实现多线程同步查询

    优秀的数据库应用应当充分考虑数据库访问的速度问题.通常可以通过优化数据库.优化 查询语句.分页查询等途径收到明显的效果.即使是这样,也不可避免地会在查询时闪现一个带有 SQL符号的沙漏,即鼠标变成了查 ...

  4. delphi中的单元

    Object Passal的程序结构很特殊,与其它语言如C++,Object Windows等结构都不同.一个Delphi程序由多个称为单元的源代码模块组成.使用单元可以把一个大型程序分成多个逻辑相关 ...

  5. DELPHI 中 Window 消息大全使用详解

    Window 消息大全使用详解 导读: Delphi是Borland公司的一种面向对象的可视化软件开发工具. Delphi集中了Visual C++和Visual Basic两者的优点:容易上手.功能 ...

  6. Delphi中的线程类

    Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchr ...

  7. Delphi中使用ListView和TreeView的Item中的Data可能被忽略的内存泄漏

    Delphi中大家在使用 ListView和TreeView时,一般都会使用到Item的Data属性来保存大家自己的内部数据,这个Data的声明如下: property Data: Pointer; ...

  8. Delphi中多线程用Synchronize实现VCL数据同步显示

    概述: VCL实现同步的另一种方法就是调用线程类的Synchronize的过程,此过程需要一个无参数的procedure,故在此procedure中无法传递参数值,但可以通过类的成员来实现.在类的Ex ...

  9. delphi中exit,abort,break,continue,halt,runerro 的区别

    delphi中表示跳出的有break,continue, exit,abort, halt, runerror. 1.break 强制退出循环(只能放在循环中),用于从For语句,while语句或re ...

最新文章

  1. selenium 浏览器driver地址
  2. 查询高考成绩2021一分一段表,一分一段表查询2021 如何查询一分一段表
  3. k8s之二进制安装etcd集群
  4. linux 代码统计工具,Shell脚本实现的基于SVN的代码提交量统计工具
  5. php document.write,在JS中有关document.write()的用法(详细教程)
  6. python中那纠结的os.system()与空格处理
  7. nginx解析php失败,为什么nginx不能解析php?
  8. mysql 热块_MySQL分布式集群之MyCAT(三)rule的分析【转】
  9. Scikit-Learn机器学习入门
  10. RK平台ubuntu安装vbox
  11. 计算机网络技术专业的规划,计算机网络技术专业建设规划
  12. python ndarray append_9-Python-NumPy数组元素的添加与删除
  13. 3gpp协议_春天工作室lt;3GPP规范翻译系列gt;1:TS37340协议翻译(导读)第一部分...
  14. 超经典实用APP UI产品界面设计模板
  15. SELECT INTO和INSERT INTO SELECT的区别 类似aaa?a=1b=2c=3d=4,如何将问号以后的数据变为键值对 C# 获取一定区间的随即数 0、1两个值除随机数以外...
  16. 小鹏汽车首批量产车下线,未来将进军L4级别自动驾驶
  17. (一)spring Boot菜鸟教程-搭建开发环境
  18. Origin画甘特图-II
  19. PPT文字怎样做断开效果和穿透效果
  20. 堪萨斯州立大学计算机科学,堪萨斯州立大学有哪些专业?

热门文章

  1. 人生何为苦何为乐何为幸福
  2. VMware View 与 Citrix Xendesktop 管理大比拼
  3. hdu 5636 Shortest Path(Floyd最短路)
  4. hdu 5155(DP+排列组合)
  5. Ant Design Vue select下拉列表设置默认值
  6. spring mvc + freemarker 整合
  7. BZOJ3626 LNOI2014 LCA 树链剖分
  8. C程序中常见的内存操作错误
  9. JAVA Io 缓冲输入输出流
  10. [LeetCode] Decode Ways