Delphi第二天学习笔记

string类型可以看成一个Char数组,但是这个数组的下标是从1开始的。
动态数组的下标默认是从0开始的,而自定义数组的下标是用户自定义的。
如:

  var 
      arr : array of Integer;  -- 动态数组
      arr1 : array[4..100] of Integer;  --自定义数组(下标也可能是字符等其它有序类型)
  begin
    SetLength(arr, 10);
    ShowMessage(IntToStr(Low(arr)));  --结果为0
    ShowMessage(IntToStr(Low(arr1)));  --结果为4
  end;

const声明参数值不可改变
var声明的参数,传进来的不是该参数的值,而是该参数的引用,故该参数值改变了就是原变量的值改变了
Length(数组名):求数组长度
raise Exception.Create('Error Message'):抛出错误,并显示错误信息
Low(arr):求数组下标的最小值;High(arr):求数组下标的最大值
Inc(P):令P自增加1, P要是有序数据类型;Dec(P):自减,类似Inc
Delete(s, startIndex, count):从s的第startIndex个字符开始,删除count个字符
Nil:空指针。
A Div B:A / B,取整(A、B都是整型)
A Mod B:A % B,求余
Not:单目运算,逻辑或按位取反
xor:逻辑异或,按位异或:相同为0,不同为1
And:逻辑与,按位与:全部为1才为1,否则为0
or:逻辑或,按位或:只要有一个1就为1,否则为0
多条件要用()包裹各个条件

With语句是一种简写方式,见下例:

  With label1, edit1 Do   --不推荐在with中使用多个控件,容易出现歧义
  begin
    Caption := 'label';  --edit1没有caption属性,故是对label1进行的赋值
    font.color := clRed; --就近原则,edit1和lable1都有font属性,因为edit最后定义,离这句代码最近,所以是对edit1的赋值
  end

if ... then ... else ...; 算一行代码,故在else前不许加';'

 Case 表达式 Of    --表达式的值必须是有序数据类型
        值1: ....;    --用begin end包裹多句代码
        值2:....;
        值3..值4:...;  --在值3到4的范围内触发
  end;

delphi中的函数和过程只有返回值不同(函数有返回值,过程没有返回值),其它都相同
delphi中,不建议在公共函数或过程中引用某个对象的子组件。

    --声明属于某个对象(设为Object)的函数或方法
    Procedure  Object.ProcName();

delphi中写完函数或过程后,光标点击到代码体内,按下 Ctrl + Shift + C,会自动生成该函数和过程的声明。
函数中默认有一个变量Result,它用于返回函数的返回值。
不推荐用函数名来返回结果

Delphi中默认是值传递,引用传递要用var声明。
值传递和参数传递:值传递指只将参数的值传进来,不改变原参数的值;引用传递是将该参数的引用传递进来,会改变原参数的值。
表达式(如常量表达式、a-6等)可以做为函数或过程的值传递参数,但不可以作为引用参数传递进来。

    --小数转整数
    Round(float); --对小数部分四舍五入
    trunc(float); --直接截取整数部分

    --格式化
    FormatFloat(FormatStr, float);    --格式化字符串中0代表有数就填。没数就用0代替;#代表有数就填,没有就不填;如果有一个或多个',',代表千位分隔符,整数部分每有三位就会自动加一个
    Format(formatStr, ParamList);    --带占位符的格式化
    --例:
    FormatFloat('#,0.00', 1234567.89111);  --结果为1,234,567.89
    Format('我有%f 元, 可以买 %d 本书', [200.35, 5]); --结果为 我有200.35 元, 可以买 5 本书
    
    
    --弹出输入框:inputQuery和InputBox
    function InputQuery(const ACaption, APrompt: string; var Value: string): Boolean; 
    --InputQuery返回值为是否点了OK 输入的字符串放在了变量Value中 

    function InputBox(const ACaption, APrompt, ADefault: string): string; 
    --inputBox返回值是字符串,也就是输入的字符串

    --尝试将字符串s转换成Integer类型的数据,如果转换成功,则将转换后的整数值赋给value变量,并返回True;否则value变量的值不变,返回false。
    tryStrToInt(Const s: string; out Value: Integer);


原文地址:https://www.cnblogs.com/wuchangxing/p/15222118.html