S smilecat Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-08 #1 delphi中指针的用法,我能看懂,但不会用,能否给我代码,并加上注释,多谢!!
K Kang Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-08 #2 一般就不要用指针了 简单的例子从帮助里找,复杂的例子我写不来
S smilecat Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-08 #4 可是指针有时很方便,而且我很想掌握他,请帮帮我!!!
T tanglu Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-08 #5 type PRec = ^Rec;//指向记录的指针 Rec = Record//记录的定义 Rec1 : Integer; Rec2 : String; Rec3 : Integer; end; var CRec : PRec;//定义指针类型变量 在程序中,使用New(CRec)建立该指针。 赋值: CRec^.Rec1 := 1; CRec^.Rec2 := 'test'; CRec^.Rec3 := 2; 访问: x := CRec^.Rec1;则x=1 最后用dispose(CRec)释放。
type PRec = ^Rec;//指向记录的指针 Rec = Record//记录的定义 Rec1 : Integer; Rec2 : String; Rec3 : Integer; end; var CRec : PRec;//定义指针类型变量 在程序中,使用New(CRec)建立该指针。 赋值: CRec^.Rec1 := 1; CRec^.Rec2 := 'test'; CRec^.Rec3 := 2; 访问: x := CRec^.Rec1;则x=1 最后用dispose(CRec)释放。
S smilecat Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-08 #6 如果谁有现成的代码,加上注释(稍微难一点的),或者有OBject pascal 关于指针 的详细的资料的,告诉我或发Email: whb_li@china.net 多谢了!!
O OpuBF Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-09 #7 type PButton = ^TButton; var pb: PButton; begin new(pb); pb^ := TButton.Create (Self); pb.Caption := 'New Button'; ………… pb.Free; dispose (pb); 要是你用惯了C++,一定会奇怪的^-^
type PButton = ^TButton; var pb: PButton; begin new(pb); pb^ := TButton.Create (Self); pb.Caption := 'New Button'; ………… pb.Free; dispose (pb); 要是你用惯了C++,一定会奇怪的^-^
W wrench Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-09 #8 是啊 delphi中的指针怎么看怎么奇怪 pb^.Caption 和 Pb.Caption 怎么好象没区别啊 不清楚 还有所谓的类引用 好混乱啊
S SuperMMX Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-09 #9 最好不要那样搞,那样即使你会了,过几天又忘了, 还是用到什么学什么,哪里不懂问哪里。 to wrench: 不会吧, 你不知道?
B beta Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-09 #10 wrench,你的 pb 虽然说就是一个指针,但是对于对象,不需要撤销引用(即不需要加^) /~~~~~~~ 这种说法我是从书上看来的
S SuperMMX Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-09 #11 我这句话说了很多遍了: delphi 已经简化了指针,比如一个记录指针,也可以不加 ^ 就可 引用其中的域, 当用 with 时,必须加 ^, 这与 类 又不同, 类什么时候都不需要。所以,beta 的说法我也不知道什么意思, 撤销引用? 没有听说过。
我这句话说了很多遍了: delphi 已经简化了指针,比如一个记录指针,也可以不加 ^ 就可 引用其中的域, 当用 with 时,必须加 ^, 这与 类 又不同, 类什么时候都不需要。所以,beta 的说法我也不知道什么意思, 撤销引用? 没有听说过。
H hsw Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-09 #14 本来想说上一段,但这么多的 高手……我也不好意思了 说纤细一些,指针非常好用, type Rec = Record//记录的定义 Rec1 : Integer; Rec2 : String[30];//字符串应该指定长度,默认是255 Rec3 : Integer; end; TPRec = ^Rec; //指向记录的指针 ,我这里与tanglu的顺序不一样…… //下面是TFORM类的声明 ……………… ……………… var pRec : TPRec;//定义指针类型变量 在程序中,使用New(CRec)建立该指针。 赋值: pRec^.Rec1 := 1; pRec^.Rec2 := 'test'; pRec^.Rec3 := 2; 访问: x := pRec^.Rec1;则x=1 最后用dispose(CRec)释放。 复杂的例子太复杂,怕你……
本来想说上一段,但这么多的 高手……我也不好意思了 说纤细一些,指针非常好用, type Rec = Record//记录的定义 Rec1 : Integer; Rec2 : String[30];//字符串应该指定长度,默认是255 Rec3 : Integer; end; TPRec = ^Rec; //指向记录的指针 ,我这里与tanglu的顺序不一样…… //下面是TFORM类的声明 ……………… ……………… var pRec : TPRec;//定义指针类型变量 在程序中,使用New(CRec)建立该指针。 赋值: pRec^.Rec1 := 1; pRec^.Rec2 := 'test'; pRec^.Rec3 := 2; 访问: x := pRec^.Rec1;则x=1 最后用dispose(CRec)释放。 复杂的例子太复杂,怕你……
H hsw Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-09 #15 new(ps1); ps1^.FieldCode:=fields[1].asstring; ps1^.SBDM := Edit1.Text ; li1.Data:=ps1;
I iambest Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-03 #16 我同意SuperMMX的说法,但还要加一句,在delphi ,c++builder 中尽量少用 指针和数组,因为封装的类基本上都是指针,数组的用途也不是很大。
A Another_eYes Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-04 #17 瞎说, 指针的用处大着呢. 用指针可以免去很多麻烦. 数组嘛, 我只用字符串. 其它需要用数组的地方我基本都用TList代替了(hehehehe, 看到指针的用处了吧? TList和指针配合才能实现复杂的数组).
瞎说, 指针的用处大着呢. 用指针可以免去很多麻烦. 数组嘛, 我只用字符串. 其它需要用数组的地方我基本都用TList代替了(hehehehe, 看到指针的用处了吧? TList和指针配合才能实现复杂的数组).
Y yongkw Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-22 #18 首先声明:我是今天才开始主动去了解delphi的指针的用法的,原因是在 一个优化算法中须用到类似链表的结构。 其次,我下面的程序本人是从本版上拷贝下来的,所谓现炒现买,还热乎呢!(鉴于此 本人可以不要分) 其实我认为,指针的用法也不过上面所述的一些内容,实际用到的也不过如此,再加上 一些关于类、对象或控件的一些与指针有关的属性等。下面贴给你的是我认为今天 找到的比较有用的东西: pascal 中有两种指针的声明方法, 用途不同, (1) pMyType = ^MyType; MyType = record a: Integer; next: pMyType; end; (2) MyType = record a: Integer; b: String; end; pMyType = MyType^; 第一种解决了递归的问题, 第二种是通常写法, (也许两个 ^ 位置相反, 忘了, 没法测试)
首先声明:我是今天才开始主动去了解delphi的指针的用法的,原因是在 一个优化算法中须用到类似链表的结构。 其次,我下面的程序本人是从本版上拷贝下来的,所谓现炒现买,还热乎呢!(鉴于此 本人可以不要分) 其实我认为,指针的用法也不过上面所述的一些内容,实际用到的也不过如此,再加上 一些关于类、对象或控件的一些与指针有关的属性等。下面贴给你的是我认为今天 找到的比较有用的东西: pascal 中有两种指针的声明方法, 用途不同, (1) pMyType = ^MyType; MyType = record a: Integer; next: pMyType; end; (2) MyType = record a: Integer; b: String; end; pMyType = MyType^; 第一种解决了递归的问题, 第二种是通常写法, (也许两个 ^ 位置相反, 忘了, 没法测试)