Q&A

  • 델에는 컨트롤 배열이 없나요?
황당한 질문이 될지 모르겠지만... ^^;

Visual Basic의 경우에는 동일한 컨트롤명을 사용하여

컨트롤을 배치할 수가 있는데,

예)
Label1(0) ~ Label1(9)까지 컨트롤을 생성 후,

for i=0 to 9
  Label1(i).caption = i
next
이러한 코딩이 가능한데

델파이에서는 이러한 기능을 지원하지 않는지요?

혹은, 지원은 되나 넘 복잡해서 일반적으로 사용하지를 않는지여?

ps : 부분별 컨트롤명을 통일하여 작업을 편하게 할려고 하는데,

      이러한 기능을 찾지를 못하고 있습니다. ^^;
3  COMMENTS
  • Profile
    신현웅 2003.06.13 20:57
    아래 답변처럼 콤포넌트를 찾아서 해도 되구요

    아니면 동적으로 생성하셔도 됩니다

    type
      TForm1 = class.....
        ...
        private
           Label : array[0..255] of TLabel;
        public
          ...
      end;

    procedure TForm1.FormCreate(Sender:TObject);
    var
       i : Integer;
    begin
      for i := 0 to 255 do
      begin
        Label[i] := TLabel.Create(self);
        Label[i].Caption := 'LABEL'+IntToStr(i);
      end;
    end;

    procedure TForm1.FormDestroy(Sender:TObject);
    var
       i : Integer;
    begin
      for i := 0 to 255 do
        Label[i].Free;
    end;

    이렇게 사용도 가능하죠...
  • Profile
    문태용 2003.06.13 05:34
    앞에분도 말씀하셨지만...
    예를 하나 들어드리죠..

    procedure Form1.InitCaption;
    var
      iLoop : Integer;
      sTemp
    begin
      for iLoop := 0 to ComponentCount - 1 do
      begin
           TLabel(FindComponent('Label' + IntToStr(iLoop))).Caption := IntToStr(iLoop);
      end;

    end;


  • Profile
    이종규 2003.06.13 04:18
    델파이에는요 FindComponent  이란게 있어요