| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1458 人关注过本帖
标题:求助:控件数组问题
只看楼主 加入收藏
Domes
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-11-21
收藏
 问题点数:0 回复次数:2 
求助:控件数组问题
在vb6中,可以设计控件数组(可视化的控件,如button),在编程实际中很有用,请问如何在delphi2005中实现呢?
如:ommand1[i].text=“”(vb6)
搜索更多相关主题的帖子: 控件 
2008-02-09 09:26
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 
你说的是不是delphi的数组属性啊?
type
 TArrButton = array of TButton;

  TTestProperty = class(TObject)
  private
    fButton: TArrButton;
    function getaButton(i: Integer): TButton;
  public
    constructor Create(alength: Integer);
    destructor destroy(); override;
    property MyButton[index: Integer]: TButton read getaButton;
  end;

  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    fTestProperty: TTestProperty;
  public
    { Public declarations }
  end;



var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TTestProperty }

constructor TTestProperty.Create(alength: Integer);
var
  I: Integer;
begin
  SetLength(fButton, 10);
  for i := Low(fButton) to High(fButton) do
  begin
    fButton[i] := TButton.Create(nil);
    fButton[i].SetBounds(50*i, 50*i, 10*i, 10*i);
    fButton[i].Parent := Form1;
    fButton[i].Name := TButton.ClassName;
    fButton[i].Caption := IntToStr(i) + ' 什么啊 ';
  end;
end;

destructor TTestProperty.destroy;
var
  I: Integer;
begin
  for i := Low(fButton) to High(fButton) do
  begin
    FreeAndNil(fButton[i]);
  end;
  SetLength(fButton, 0);
  inherited destroy();
end;

function TTestProperty.getaButton(i: Integer): TButton;
begin
  if (i >= Low(fButton)) and (i <= High(fButton)) then
  begin
     Result := fButton[i];
  end
  else
  begin
    Result := nil;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  tempStr: string;
  index: Integer;
begin
  index := StrToIntDef(Edit1.Text, 0);
  tempStr := fTestProperty.MyButton[index].Caption;
  TButton(Sender).Caption := tempStr;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  fTestProperty := TTestProperty.Create(10);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  fTestProperty.Free();
end;

end.
2008-02-20 21:11
jgio
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-2-18
收藏
得分:0 
www. 慧都控件网,国内最大的专业控件代理商与技术支持商。
tel:023-66090381    QQ:903506412
2008-02-26 09:33
快速回复:求助:控件数组问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015638 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved