Delphi 面向对象的一个实现疑问
在Delphi中,我想创建一个自己的类。如何通过类似ListBox.items.Add增加一个item,然后通过数组ListBox.items[n]数组访问该索引的信息?...
在Delphi中,我想创建一个自己的类。如何通过类似ListBox.items.Add增加一个item,然后通过数组ListBox.items[n]数组访问该索引的信息?
比如 myclass.student[n].name 这样的,请问如何实现,或者有没有什么文章推荐的? 展开
比如 myclass.student[n].name 这样的,请问如何实现,或者有没有什么文章推荐的? 展开
3个回答
展开全部
有几种办法:
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:='张三';
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; 这里可以使用动态数组吗?
追答
可以。
只不过你要自己管理动态数组中元素的创建与释放。
2012-10-17 · 知道合伙人软件行家
关注
展开全部
编写示例如下:
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;
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; 这里可以使用动态数组吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
type
TCar=class
private
FLines: TStrings;
potected
procedure SetLines(Value: TStrings);
public
property Lines: TStrings read FLines write SetLines;
end;
再自己弄一个继承类,调用属性就可以使用了。
TCar=class
private
FLines: TStrings;
potected
procedure SetLines(Value: TStrings);
public
property Lines: TStrings read FLines write SetLines;
end;
再自己弄一个继承类,调用属性就可以使用了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询