Delphi 面向对象的一个实现疑问

在Delphi中,我想创建一个自己的类。如何通过类似ListBox.items.Add增加一个item,然后通过数组ListBox.items[n]数组访问该索引的信息?... 在Delphi中,我想创建一个自己的类。如何通过类似ListBox.items.Add增加一个item,然后通过数组ListBox.items[n]数组访问该索引的信息?

比如 myclass.student[n].name 这样的,请问如何实现,或者有没有什么文章推荐的?
展开
 我来答
景茹炜L8
2012-10-17 · TA获得超过481个赞
知道小有建树答主
回答量:617
采纳率:0%
帮助的人:379万
展开全部
有几种办法:
1、如果你的数组是字符串形式的,只要从TStringList继承即可。这是一个字符串数组,并且提供了相应的函数。
2、如果你的数组想实现Delphi中某具体组件同样的功能,比如ListBox,你也可以直接继承相应的组件,如TListBox。
3、如果是任意数组,你可以用泛型容器:比如TList等。(需要Delphi2009以上的版本才支持)
4、特定的(对象)数组。就像你所提到的。比如:
type
TStudent=class(TObject)
name:String;
end;

TMyClass=Class(TObject)
student: array[0..100] of TStudent;
......
end;

......
这样,你就可以使用了:
var
myclass:TMyclass;
......
myclass.studnet[1].name:='张三';
追问
student: array[0..100] of TStudent; 这里可以使用动态数组吗?
追答
可以。
只不过你要自己管理动态数组中元素的创建与释放。
windblast
2012-10-17 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13622
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部
编写示例如下:

type
TStudent = record
name: string;
age: integer;
end;
TMyclass = class
student: array[0..10] of TStudent;
procedure ShowStudent(id:Integer);
end;

procedure TMyclass.ShowStudent(id: Integer);
begin
ShowMessage(Format('姓名:%s 年龄:%d',[Self.student[id].name,Self.student[id].age]));
end;

procedure TForm2.Button5Click(Sender: TObject);
var
my: TMyclass;
begin
my := TMyclass.Create;
my.student[0].name := '张三';
my.student[0].age := 20;
my.ShowStudent(0);
end;
追问
student: array[0..100] of TStudent; 这里可以使用动态数组吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mit1208
2012-10-17 · TA获得超过2347个赞
知道大有可为答主
回答量:2743
采纳率:0%
帮助的人:1858万
展开全部
type
TCar=class
private
FLines: TStrings;
potected
procedure SetLines(Value: TStrings);
public
property Lines: TStrings read FLines write SetLines;
end;

再自己弄一个继承类,调用属性就可以使用了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式