Q&A

  • 콘트롤 이름으로 콘트롤 제어하기
Label이 혹은 Edit 등 이런 콘트롤들이 각각 300개 정도 있습니다.

각 콘트롤들의 속성 중 하나를 변화시키려는데 반복문으로 수행하고 싶거든요

이름으로 제어를 하고 싶거든요 그래서 찾아보니 콘트롤 순서로 제어하는 것 밖에 검색을 못했어요

좋은 방법 좀 가르쳐 주세요 (초보니까 소스와 함께 아주 자세히 부탁드려요  감사합니다^^)


예)
Label1.Color := clWindow;
Label2.Color := clWindow;
......
Label30.Color := clWindow;  

이런것을

panel1.Controlsname['label1'].color := clwindow;
이런식으로요.

위에 controlsname 이런거 없나요?
2  COMMENTS
  • Profile
    [ROOKIE] 2003.03.04 18:58
    findcomponent 를 사용하세요.
  • Profile
    한영관 2003.03.01 04:41
    답변이 되었으면 합니다.

    var
      i : integer;
    begin
      for i := 0  to ComponentCount -1 do
        if Components[i] is TLabel then begin
          TLabel(components[i]).Font.Color := clRed;
          //
        end;
    /////////////  여기까지....

    예를 들어 VK 를 이용하실경우 form 의 keypreview 를  true 로 하시고
    keydownevent 에서 작업하세요....
    ex)
    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var
       i : integer;
    begin
      if  key = Vk_F1 then
    //위의 소스를 붙이세요

    즐거운 하루 되세요...