zoukankan      html  css  js  c++  java
  • Delphi中建议使用的语句

    { 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.Fieldvalues['姓名'] := Edit1.Text; //Borland建议的方法。以及Paramvalues[]
    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;

    { No.11 Result函数指针 }
    function FuncName: Boolean;
    begin
    FuncName := True; //不建议//并且放在赋值号右边不能当普通变量
    ///////
    Result := True; //建议//扩充性好
    end;

    function FuncSum(A: array of Integer): Integer;
    var I: Integer;
    begin
    Result := 0;
    for I := Low(A) to High(A) do
    Result := Result + A[I]; //可不能用 FuncSum := FuncSum + A[I];
    end;

    { No.12 必须执行的代码、使用try ... finally ... end语句 }
    var
    vStringList: TStringList;
    begin
    vStringList := TStringList.Create;
    vStringList.LoadFromFile('c:\temp.txt');
    ShowMessage(vStringList.Text);
    vStringList.Free; //不建议//如果出现异常资源将无法释放
    ///////
    vStringList := TStringList.Create;
    try
    vStringList.LoadFromFile('c:\temp.txt');
    ShowMessage(vStringList.Text);
    finally //建议//即使出现Exit都会执行
    vStringList.Free;
    end;
    end;

    //其他情况1
    begin
    Screen.Cursor := crHourGlass;
    try
    { 耗时操作 }
    finally
    Screen.Cursor := crDefault;
    end;
    end;
    //其他情况2
    begin
    Query1.DisableControls;
    try
    { 操作数据集 }
    finally
    Query1.EnableControls;
    end;
    end;
    http://www.cnblogs.com/dingjie/articles/193199.html
  • 相关阅读:
    python 并发编程 多线程 event
    python 并发编程 多线程 定时器
    python 并发编程 多线程 信号量
    linux top 查看CPU命令
    python 并发编程 多线程 GIL与多线程
    python 并发编程 多线程 死锁现象与递归锁
    python 并发编程 多线程 GIL与Lock
    python GIL全局解释器锁与互斥锁 目录
    python 并发编程 多线程 GIL全局解释器锁基本概念
    执行python程序 出现三部曲
  • 原文地址:https://www.cnblogs.com/ghd2004/p/1265540.html
Copyright © 2011-2022 走看看