Q&A

  • 마우스를 갖다댔을때.. 정보 보이게하는 방법

마우스에 대한 질문입니다.

Lable에 마우스를 갖다댔을때 그 Lable에 대한 정보창(ShowMessage)이 뜨게 하고
싶은데요..
문제는... Lable 전체가 아니구요...
Lable01_11 , Lable02_12, Lable01_22, Lable03_11 ...
이런식으로 Lable의 이름이 있다구 하면요...
Lable01 이란 이름이 있는곳에만.. 마우스가 위와 같은 동작을 하게 하고 싶은데여...

음.. Lable01 이름을 포함한 Lable가 10개있구.. Lable03 을 포함한 Lable이 5개 있으면
Lable01 을 포함한 Lable 10개만 그 Lable에 마우스를 갖다댔을때.. 거기에 대한 정보가 보이게 하는거죠..


아참 위에 꺼랑 비슷한 질문 하나 더 할께요..
Lable 이 100개가 화면 있다구 하면요... 음.. 가로 세로 10줄씩여...
거기에서 어떠한 버튼을 눌렀을때그 100개 중에 10개만 Lable에 써있는 caption이
보이게 하고 나머지 Lable 90개는 그 모든 Lable들이 클리어 되게 하고싶은데요..
이렇게 하려면 어떻게 해야하는지요...
이걸 하나하나 코딩하는것 말구 딴 방법이 있을꺼 같은데요..

급합니다..
빠른 답변 부탁드립니다.
2  COMMENTS
  • Profile
    하얀까마귀 2002.06.18 20:42
    안녕하세요 하얀까마귀 입니다.

    음. 님이 말씀하신건 그냥 이름으로 찾으면 되겠네요...

    findComponent 라는 함수가 있습ㄴ다. 이넘은 콤포넌트의 이름으로

    해당 클래스 Tcomponent형을 리턴하는 함수입니다. 아주 강력하게 쓸수있는

    거죠..

    그냥 간단하게 특정 문자를 포함하고 있으면 정보 표시

    var
      CompoName : String;
      SearchName : String;
      i : Integer;
    begin
      // 현재 콤포넌트 이름을 가져온다.
      CompoName := (Sender as TLabel).Name;
      //찾을 문자
      SearchName := 'aaa';
      // aaa 란 문자를 포함하면 내용을 표시한다.
      i := pos( SearchName, CompoName );
      if i >  0 then ShowMessage( (Sender as TLabel).Name )
    end;
      
    이걸 이용하면 두번째도 간단히 해결됩니다.

    이름을 정하실때 규칙을 만드시던지 아니면 위에 글남기신분의
    말씀대로 테그를 입력해두는거죠...

    테그를 입력해두면.. 테그를 1-10 까지 입력했다고 하구요..
    var
      i : Integer;
      compo : TComponent;
      tempLabel : TLabel;
    begin
      // 이건 테그가 1인넘만 보이게
      for i := 0 to ComponentCount -1 do
    begin
      compo := ComponentIndex[i];
      if Compo is TLabel then
      begin
       tempLabel := Compo as TLabel;
       if tempLabel.Tag = 1 then
       begin
         tampLabel.Visible :=  true;
       end else begin
         tempLabel.visible := false;
       end;
      end;
    end;
    end;
    오타나 버그가 있을지 모르니... 그냥 참고 하세요. 그럼.

    - 하얀까마귀 -

  • Profile
    정종필 2002.06.18 03:37
    많은 label 중에 일부분만 보이게 하는 방법은 여러가지가 있겠죠..

    1. Panel 을 이용하는 방법
       - 보이고자 하는 그룹단위로 Panel 한개 위에 10개의 Label 을 올리는
         겁니다. 그래서 Panel 단위로 Visible 을 True/False 하면 되겠죠..
    2. Frame 을 이용하는 방법
       - Frame Component 를 갖다놓고 여기다가 마찬가지로 Label 을 10개씩
        올리는 겁니다. 그렇게 해 놓고.. Visible T/F
    3. Tag 를 이용하는 방법
       - 거의 대부분(?) 의 Component 에는 Tag 라고 하는 속성이 있죠..
        도움말에도 나와 있듯이 이건 프로그래머가 지 맘대로(?) 써 먹을 수
        있는 속성이죠..
        각 Label 에다가 적당한 범위의 Tag 를 부여하고 Runtime 시에
        특정 버튼이 눌리면 Form 상의 모든 Component 를 검사해서
        Tag 가 특정 범위대 인것을 골라 Visible  T/F 하는 방법...

    쩝..~~ 맞나 몰것네요..  도움이 되셨길...

    • 이현철
      2002.06.18 20:55
      부서코드가 어짜피 db 에 있다면, 부서명을 콤보박스에 넣었던 식으로 똑같이 넣으면 되지 않을까여? ...
    • 하얀까마귀
      2002.06.18 19:32
      안녕하세요 하얀까마귀 입니다. 예전에 디비를 하다보면 님의 말씀처럼 코드를 쓰기 때문에 그런경우가 ...
    • 블루스알림☞
      2002.06.18 18:47
      좀 꽁수인데요.. deptcode가 크기가 같다면 부서코드와 부서명을 같이 불러서 Combobo2 에 집어넣고 ...
    • 하기
      2002.06.18 19:12
         With query3 do begin     query3.sql.clear;    &nbs...
    • 곰다방~미스김
      2002.06.18 22:48
      부서명을 선택했을 경우 해당 부서코드값을 가져오는 문제인가요? 그렇다면 DBLookUpComboBox를 사용하세...
    • 최우영
      2002.06.19 00:36
      두개의 콤보박스를 사용하는 방법도 고맙습니다. 그런데 결국은 DBLOOKUPCOMBOBOX로 했습다.. 그럼 다들 ...
    • 김승태
    • 2002.06.18 18:34
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이현철
      2002.06.18 22:58
      아래와 같이 API를 써보세요.. 폼을 항상 맨 위에 위치하기(Stay On Top) with MyForm do SetWindowP...
    • 신복호
    • 2002.06.18 11:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 블루스알림☞
      2002.06.18 18:43
      unit Unit1; interface uses   Windows, Messages, SysUtils, Classes, Graphics, Co...
    • 박상윤
      2002.06.18 13:59
      showModal을 지원을 못한다는 이야기지여... 제가 보기에는  앞의 글자를 자못 쓰셨거나 ...
    • 최용일
      2002.06.18 19:37
      안녕하세요. 최용일입니다. 레지스트리에 제대로 등록이 안되었네요... HKEY_CLASS_ROOT에 .를 포함...
    • 하얀까마귀
      2002.06.18 19:59
      안녕하세요 하얀까마귀 입니다. 음.. 소스내용을 제대로 이해를 못하신것 같네요... 위에 최용일님 ...
    • 조건일
      2002.06.18 10:14
      저의경우는 이런 경우 Application.ProcessMessage; 라는 함수를 프로그램 실행시나 이런 경우가 발생되는 ...
    • 최용일
      2002.06.18 19:19
      안녕하세요. 최용일입니다. 매크로군요... 그냥 함수로 만들어 쓰시면 될것같네요... function GetYe...
    • 신현빈
      2002.06.18 20:35
      최용일님 정말 감사드립니다~~ 저희 델코인들의 횃불~ ^^;
    • 호롱불
    • 2002.06.18 03:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정종구
      2002.06.20 02:08
    • jslove
    • 2002.06.18 03:15
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2002.06.18 20:42
      안녕하세요 하얀까마귀 입니다. 음. 님이 말씀하신건 그냥 이름으로 찾으면 되겠네요... findCompone...
    • 정종필
      2002.06.18 03:37
      많은 label 중에 일부분만 보이게 하는 방법은 여러가지가 있겠죠.. 1. Panel 을 이용하는 방법  ...
    • 어린왕자A
      2002.07.09 20:36
      웹브라우저Dll을 사용하는 방법이 있습니다. 팁 어디엔가 있는 거 같습니다. 벌써 찾으셨겠죠? ㅋㅋ
    • 이현철
      2002.06.28 20:45
      가장 확실하고 간단한 방법은 프로그램 내부에서 유명 사이트에 ping 을 해보는 것입니다. empas.co.kr...
    • 김문식
    • 2002.06.18 02:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2002.06.18 04:12
      -   Update 수행시 update 테이블명      set 필드명 = null where ...
    • 박경록
    • 2002.06.18 02:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김문식
      2002.06.22 20:23
      #13을 <br>로 replace 해보세요.
    • 머슴
      2002.06.18 02:14
      야후정보통신사전에서 보면 체크섬은 수신자가 같은 수의 비트가 도착했는지를 확인 할 수 있도록 전...
    • 김문식
      2002.06.18 02:08
      어디서 보신 건가요. 체크섬은 일반적으로 통신을 할 경우에 많이 쓰입니다. 다운받은 파일이 정상적으로...
    • 하기
      2002.06.18 00:44
      참고가 될지 모르겠군요...  Group Band 를 쓰신다면 Group Band의 Expression을 참고 하세요.....
    • 김대훈
      2002.06.18 00:33
      파라독스는 잘모르는데..   MS-SQL의경우 날짜필드를 char(10) 잡구  SQL에서 그냥...
    • 버섯
    • 2002.06.17 22:35
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김수경
      2002.06.18 02:11
      선언된 Unit 명이나 Class명 또는 Object명 뒤에 지정해 주면 되는 걸로 알고 있는데.... 맞는지 모...
    • 김수경
      2002.06.18 02:15
      컴퍼넌트는 모르겠구여~ Windows API중 HANDLE CreateFile(     LPCTSTR lpFi...
    • 박준열
      2002.06.17 21:59
      광배님의 말씀대로   if DG_BrwBom.Fields[0].AsString = 'ENGDIC' then    ...
    • 홍성락
      2002.06.17 21:53
      hsr//////////////////////////////////////////////////////// DrawDataCell이벤트를 사용하셔도 됩니...
    • 박준열
      2002.06.17 22:02
      Source그대로 사용할수 있어서 넘 감사합니다.
    • 최광배
      2002.06.17 21:50
      DBGRID의 DBGrid1DrawColumnCell 이벤에 아래와 같이 작성하세요..   if 분류코드='ENGDIC' the...
    • 박준열
      2002.06.17 21:35
      1. Form에 Database 콤포넌트를 지정하고요 2. Database 콤포넌트의 마우스 오른쪽버튼의 팝업창에서 &...
    • 머슴
      2002.06.17 21:27
      TDatabase에서 TTable로 연결되게 하세요.. (트랜잭션관리등 이방법이 좋습니다..) Database 컴퍼넌...
    • 변선희
      2002.06.18 19:14
      ㅋㅋ 답변해주신 분들.. 감사합니다~ 이제 안나오네요...  아~ 기뿌당. 근데 꼭 Database를 ...
    • 김문식
      2002.06.17 21:20
      TDatabase 콤포넌트를 쓰시고 loginPrompt 프로퍼티를 false로 설정하세요.