易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi 中将对象作为参数传递的使用

Delphi 中将对象作为参数传递的使用 举例分析
2009-07-24 13:40
 
下面的单击事件,将要调用一个以对象为参数的方法,并将结果显示出来。
procedure TForm1.btn1Click(Sender: TObject);
var
lStrings: TStrings;
begin
lStrings:= TStringList.Create;
try
    lStrings.Add('chen');
    GetOperatorAllDeptIDs(lStrings);
    ShowMessage(lStrings.Text);
finally
    lStrings.Free;
end;
 
调用方法一:
function GetOperatorAllDeptIDs( AStrings: TStrings):String;
begin
//注释 AStrings:= TStringList.Create;
AStrings. Add('zhi');
end;
返回结果为:chen zhi
分析:此时传递的AStrings 为lStrings对象的对象引用副本,即也指向对象lStrings,所以当执行AStrings. Add('zhi');时操作为lStrings对象添加‘zhi’。
 
调用方法二:
function GetOperatorAllDeptIDs( var AStrings: TStrings):String;
begin
//注释 AStrings:= TStringList.Create;
AStrings. Add('zhi');
end;
返回结果为:chen zhi
分析:此时传递的AStrings 为lStrings对象的对象引用,当执行AStrings. Add('zhi');时操作的对象为lStrings对象。
 
调用方法三:
function GetOperatorAllDeptIDs( AStrings: TStrings):String;
begin
AStrings:= TStringList.Create;
AStrings. Add('zhi');
end;
返回结果为:chen
分析:此时传递的AStrings 为lStrings对象引用的副本,当方法中执行AStrings:= TStringList.Create;又将对象引用副本 的引用指向了此时新建的一个对象,所以此时对AStrings的任何操作已经不会影响lStrings对象。
 
调用方法四:
function GetOperatorAllDeptIDs( var AStrings: TStrings):String;
begin
AStrings:= TStringList.Create;
AStrings. Add('zhi');
end;
返回结果为:zhi
分析:此时传递的AStrings 为lStrings对象的对象引用,当方法中执行AStrings:= TStringList.Create;时, lStrings这个对象引用指向了新建的AStrings对象。所以,lString的值为’Zhi’


相关文档:

delphi保存读取utf 8的文本文件

delphi保存读取utf-8的文本文件
给客户做了一个批量识别图像并合成双层pdf的程序,最后客户需要生成的同时附带一份记事本文件,就是OCR过后的文本,并指定utf-8格式的。在处理utf-8时出现了点小问题,现在总结如下
首先 利用delphi自带的UTF8Encode函数,将普通字符转换为utf-8编码
创建一个流,MemoryStream或FileStr ......

Delphi开发人员的编程习惯

关开发习惯的一些想法,如鲠在喉,不吐不快。究其发贴动机,当然不排除有骗取参与分的可能,但另一方面,也希望能给同行(念Xing)者提供一些建议,或者参考(希望不是误人子弟)。同时,也希望各位能够就我的这些陋习,发表一点看法,给出批评和指正的意见。谢谢。
一.建立工程目录
     &nbs ......

Delphi中窗体响应按键步骤

1.因为KeyPreview默认是 False;我们这里需要响应键盘事件的话,需要将其修改为True;
所以KeyPreview:=True; 这对一些快捷键会有用。
在窗体属性上修改KeyPreview := True;
2.在窗体的FormKeyDown函数里写:
if KeyPreview then
    Form将先响应键盘事件(在TEdit等控件之前)
else
    除非Fo ......

Delphi 类与对象内存结构浅析(附件2)

*类的公开属性(代码)
示例:访问类的published属性
说明:vmtFieldTable(Published Field表)指向Published Field表有序排列,只存储当前类的PublishedField表,得到父类的Published Field表需要往上遍历。
注意:只有类型是类或接口的数据成员才可定义为published的访问级别
代码:
type
    TMyO ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号