• Delphi培训第四天学习笔记


    能定义成局部变量的不要定义成全局变量

    定义 自动初始化 存放位置 效率 作用域
    局部变量 定义在函数或过程中的变量 栈中 读写速度快 方法体内
    全局变量 定义在函数或过程外的变量 堆中 较慢 实现段:定义在implementation下面,作用于定义语句之后的整个实现段
    整个程序:定义在Implementation上面,作用范围最大,能作用于引用该单元的其它单元中

    引用其它单元:关键字--uses + 单元名
    uses只能紧跟在Interface关键字或Implementation关键字后,否则会报错。
    一般放在Implementation后

    Delphi中Integer的范围是 -232 ~ 232 - 1; Extended的范围是 3.6 * 10-4951 ~ 1.1 * 104932
    所以可以考虑用Extended类型接收Integer类型运算的结果

    Exe文件包含两个部分,一部分是编译后的程序指令,另一部分是程序运行所需的资源库。
    const定义的字符串常量保存需要编译,而ResourceString定义的字符串保存在程序资源中,不需要编译,由windows管理。
    汉化一般就是汉化ResourseString声明的字符串
    如果和UI或语言相关的字符串,都用ResourceString声明

    Forward声明:
    过程类型:函数式编程的关键,用于向一个方法中传递另一个方法

    --例:根据参数计算两个Integer的值
    --定义过程类型
    type
      coculateType = function(Value1, Value2:Integer):Integer; --定义了一个有两个Integer参数并返回Integer结果的函数类型(感觉有点像类和实例的关系)
    
    --定义加法
    function AddNum(Num1, Num2: Integer): Integer;
    begin
      Result := a + b;
    end;
    --定义乘法
    function PlusNum(Num1, Num2: Integer): Integer;
    begin
      Result := a * b;
    end; 
    
    --使用过程类型
    function ProcTypeTest(Num1, Num2: Integer; ProcTest: coculateType):Integer;
    begin
      Result := ProcTest(Num1, Num2);
    end
    
    --用一个按钮显示结果
    procedure TfrmDetail.btn1Click(Sender: TObject);
    var
      a, b: Integer;
      funcName: coculateType;
    begin
      funcName := AddNum;  --函数名
      a := 1;
      b := 2;
      ShowMessage(IntToStr(ProcTypeTest(a, b, funcName)));
    end; 
    

    now(); 获取本地当前时间

    每个对象实际上是一个隐含的指针,传入方法时其实是传入了自己的引用,所以在方法体内能改变对象的属性

    带类型声明的全局数组常量:

    const
      arr: array of string = ('asad', 'bsad', 'csa');
    

    Xe4中Run按钮主要分两步:先编译,再执行生成的EXE
    编译时会先判断.pas文件是否有改变,没有改变的话不会编译。

    Delphi中常用的字符串函数:

    Copy(str: string, index, num: Integer): string;    --从str的第index个字符开始,截取num个字符;
    Length(str: string): Integer;  --返回str的长度
    Pos(sourceStr, TargetStr: string): Integer;   --返回sourceStr中第一次出现TargetStr的开始位置,没有找到则返回0(string下标从1开始)
    Delete(str, index, num);   --从index开始,删除str的num个字符
    
    
  • 相关阅读:
    CF827D Best Edge Weight
    克鲁斯卡尔重构树总结
    模拟赛 提米树 题解 (DP+思维)
    luogu P4781 【模板】拉格朗日插值
    luogu P5826 【模板】子序列自动机
    子序列自动机
    luogu P1368 工艺 /【模板】最小表示法
    最小表示法
    SP1812 LCS2
    FZOJ 3602 T2
  • 原文地址:https://www.cnblogs.com/wuchangxing/p/15234958.html
Copyright © 2020-2023  润新知