Q&A

  • Component들을 배열처럼 사용하기?
아래에 101209 질문을 올렸던 사람인데요..

참, 답변올려주신 님께 우선 고맙다는 인사를 먼저 드릴께요.

그런데요.. Tag를 사용해서는 그 Component를 Access를 할 수가 없네요..

제가 사용하고자 하는 방법은요,

예를 들면 CheckBox1,CheckBox2..CheckBox45 이렇게 만든 CheckBox를

CheckBox[1],CheckBox[2]..CheckBox[45]처럼 배열같이 사용해서,

for 구문을 돌면서 CheckBox[N].Checked := False; 란 문장을 수행하는거죠

Component들을 배열화해서 사용하는 방법이 없는 것인가요?

고수님들 도와주세요~ ㅠ.ㅠ

만약 그렇게 할 수 없다면 없다는 사실만이라도 알려주세요.. ㅠ.ㅠ
4  COMMENTS
  • Profile
    백록화 2004.11.08 11:57

    var
    aCheckBox: Array Of TCheckBox;
    nI: Integer;
    begin

    SetLength(aCheckBox,3);
    aCheckBox[0]:= CheckBox1;
    ....

    For nI:= 0 To Length(aCheckBox)-1 Do
      aCheckBox[nI].Checked:= False;

    이런식으로 해당 콤포넌트를 배열로 만들어서 사용하셔도 되고요..
    FindComponent 로 콤포넌트를 찾아서 형변환(?) 하셔서 사용하셔도 됩니다.

    그럼...

  • Profile
    이두형 2004.11.09 22:46
    답변 감사드립니다!!
    정말 이렇게 하니 해결이 되었어요~ 감사감사!  복받으세요!! ^^
    그런데 FindComponent로 컴포넌트를 찾아서 형변환해서 사용하라는 것은
    어떤 말씀인가요?
    컴포넌트카운터랑, 탭오더랑 상관있는 것이죠?
    이걸 사용하면 aCheckBox[0] := CheckBox1; 이 부분도
    for구문을 사용해서 간단하게 만들 수 있을 것 같은데...
    시도는 해봤는데 type이 다르다면서 안되더라구요..
    그 형변환으로 해결할 수 있을 것 같은데 형변환이 정확히 무엇인가요?
    그리고 사용하는 방법도...
    헤헤.. 참 궁금한 것도 많죠? 죄송.. (__a)
  • Profile
    백록화 2004.11.10 05:58
    yo`

    우선 FindComponent 는...말 그대로 콤포넌트를 찾는것입니다. 자세한것은 에프원 아저씨 한테 물어보시구요.

    For nI:= 1 To 10 Do
    Begin
       TCheckBox( FindComponent('CheckBox'+IntToStr(nI))).Checked:= True;
    End;

    이런식으로 하셔도 됩니다. 어떻게 보변 배열을 만들어서 사용하는것 보다 훨씬 좋아보입니다. 흠 이것에 대한것은 강의실에서 '주정섭' 님의 게시글중에 관련된 글이 있을껍니다. 찾아서 한번 보시구요.

    TabOrder 는 아시겟지만 비주얼 콤포넌트에 있는것으로 Tab 을 사용했을때 해당 포커스를 주는 번호 입니다.

    ComponentCount 는 말 그대로 콤포넌트의 총갯수구요 논 비주얼, 비주얼 가리지 않고 전체 콤포넌트의 수를 리턴해줍니다.

    SetLength(aCheck,30);
    aCheck[0]:= CheckBox1;
    ...

    이부분을 좀더 쉽게 코딩 하고자 한다면....흐음..그냥 루프 돌면서 콤포넌트를 하나하나 조사해서 해당 콤포넌트인지 확인한후에 넣으면 될꺼 같은데요.

    For nI:= 0 To Form1.ComponentCount-1 Do
    Begin

    If Form1.Components[nI].ClassName = 'TCheckBox' Then
    aCheck[nI]:= Form1.Components[nI].Name;

    End;

    흠...Form1 위에 있는 모든 콤포넌트에 해당되니깐 콤포넌트의 갯수가 많다거나 아니면 포함시키지 않아야 할 CheckBox 가 있다면....^^

    다른 방법도 있을껍니다. 한번 연구를 해보시지요...

    그럼...

  • Profile
    이두형 2004.11.10 09:46
    정말 제가 원하던 명쾌한 답변입니다!!! +.+
    완벽하게 해결이 되었어요. 이런이런.. 감격의 눈물이.. ㅠ.ㅠ

    첫번째 말씀하신 방법으로 하니까 간단하게 코딩이 가능하였구요,

    두번째 방법은,

    아래와 같은 에러가 뜨네요.
    [Error] :Incompatible types: 'TCheckBox' and 'TComponentName'

    여튼 정말 감사합니다. 너무 고마우신 분.. ㅠ.ㅠ



    • 백록화
      2004.11.09 20:48
      yo Open 말고 ExecSQL 메소드를 사용해 보세요..
    • 박원용
    • 2004.11.09 16:21
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2004.11.09 19:21
    • 박원용
      2004.11.09 20:48
    • 모영철
      2004.11.09 22:31
    • 박원용
      2004.11.09 22:35
    • 박원용
      2004.11.09 23:06
    • 박원용
      2004.11.09 23:42
    • 김도형
    • 2004.11.09 06:43
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2004.11.19 19:43
      안녕하세요 하얀까마귀 입
    • 소원석
      2005.05.13 03:20
      답변 감사합니다.. 정확히 알려 드리겠습니다. 컴퓨터 외부에서 음성 소스가 들어옵니다.... 외부 장비...
    • 진돌
    • 2004.11.09 03:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • KDDG_BaSTaD
      2004.11.10 01:17
      ==> 안녕하세요 KDDG_BaSTaD 입니닷.. TVirtualStringTree.OnChecking 이벤트가 상태가 바뀌기 전에 ...
    • 최용일
      2004.11.09 02:38
      안녕하세요. 최용일입니다... 인디 데모에 있는 파일들을 한번씩 보세요. 대강 인디가 어떻게 작동하는...
    • 델피언
      2004.11.09 04:19
      죄송하지만 Indy 데모 어디서 구하나요?  델파이 데모에는 없습니다만..
    • 최용일
      2004.11.09 04:51
      안녕하세요. 최용일입니다. 아래 사이트에 있습니다. http://www.indyproject.org/ ^^ 항상 즐코...
    • 최용일
      2004.11.09 02:50
      안녕하세요. 최용일입니다. 흠... 질문내용이 답변을 하기엔 많이 부족한데.... typedef절에 선언되...
    • 가리
      2004.11.10 00:39
      답변 정말로 감사 드립니다. 저도 최용일님처럼 해서 해결을 할려고 했는데.... 초기 한번만 이벤트가 떨...
    • 유응철
    • 2004.11.09 00:56
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김형우
    • 2004.11.08 20:37
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 황법모
    • 2004.11.08 19:33
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이추형
      2004.11.09 02:43
      음성인식을 통한 혹은 필기내용(모니터가 터치스크린을 지원한다면)을 저장하는 메모장은 어떨까요?
    • 구창민
      2004.11.09 00:54
      안녕하세요.. 메모를 그림으로 남길 수 있도록 해 보는것은 어떨까요? ^_^; 다른 분들은 레포트라고 ...
    • 최용일
      2004.11.09 02:53
      안녕하세요. 최용일입니다. 자료실에 있는 ACM관련된 컴포넌트 사용해보세요... www.torry.net같은데...
    • 홍명기
      2004.11.09 06:09
      답변에 감사드립니다.. 그런데요.. acm.zip 을받아 압축을풀고 install component 하면요.. 자꾸 [Fatal ...
    • 최용일
      2004.11.09 06:43
      안녕하세요. 최용일입니다. 'SimpleTimer.dcu' ... 이 에러는 ACM컴포넌트하고 상관이 없습니다. 말...
    • 이두형
    • 2004.11.08 04:29
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 백록화
      2004.11.08 11:57
      var aCheckBox: Array Of TCheckBox; nI: Integer; begin SetLength(aCheckBox,3); aCheckBox...
    • 이두형
      2004.11.09 22:46
      답변 감사드립니다!! 정말 이렇게 하니 해결이 되었어요~ 감사감사!  복받으세요!! ^^ 그런데 ...
    • 백록화
      2004.11.10 05:58
      yo` 우선 FindComponent 는...말 그대로 콤포넌트를 찾는것입니다. 자세한것은 에프원 아저씨 한테 물...
    • 이두형
      2004.11.10 09:46
      정말 제가 원하던 명쾌한 답변입니다!!! +.+ 완벽하게 해결이 되었어요. 이런이런.. 감격의 눈물이.. ㅠ....
    • 채팅
      2004.11.08 19:47
      저희 제품(NetServer)을 한번 테스트해 보시죠. http://enserver.co.kr 오라클이랑 bde나 ADO등을 엮...
    • 일그니
      2004.11.07 06:18
      지금부터 제가 하는말은 무조건 저의 개인적인 경험들에 의거한것입니다. 다른분들이 저와는 정반대의 경...
    • KDDG_RNStone
      2004.11.06 20:33
      에러 구문으로만 보자면 until은 어떤 조건의 참, 거짓을 판단 할 수 있어야 하는데 지금 and 연산만 가지...
    • 앤디
    • 2004.11.06 12:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2004.11.23 03:00
      안녕하세요 하얀까마귀 입니다.. 말씀하신건 콤포넌트가 상당히 많은걸로 아는데요... 음.. 오래전에
    • 박원용
    • 2004.11.06 07:43
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 백록화
      2004.11.06 19:44
      yo` 흠...글쎄요...필요하신건 다 요청하세요 -,.ㅡ;;; . 업무분석및 흐름도(플로우차트?) . 테이...
    • 이두형
    • 2004.11.06 05:07
    • 1 COMMENTS
    • /
    • 0 LIKES
    • ㉳㉥ㅗ㉣ㅐ㉧ㅛ
      2004.11.06 18:06
      Component에 Tag 란 것이 있습니다... 예처럼 45개의 CheckBox가 있다고 가정하면 1~45까지의 숫자...
    • 최용일
      2004.11.06 04:39
      안녕하세요. 최용일입니다. 위에서 부터 차례대로 BOOL, PByte, DWORD, PDWORD, Word, Byte, LPSTR ...
    • Zamclub.com
      2004.11.06 06:27
      답변중에 c++의 bool이 델에서도 bool인데요.. c++로 만든 dll에서 bool _stdcall InitializeTem...
    • 최용일
      2004.11.06 07:10
      안녕하세요. 최용일입니다. 델파이 문법에 대한 책한권 사서 보세요... 델파이 함수는 C/C++에 비해 ...