Q&A

  • DBComboBox에있는인덱스값을 Edit 란에 표시해주는거에대해서질문드립니다.
안녕하세요.

현재 델파이로 작업하는 하는데요..맨위스샷이 실행하면인데.보시는바와 같이 DBGrid에있는 컬럼셀을 클릭하면 밑에 상세부분이 바뀌어야하는데.다른거는 다바뀌는데.edit부분이 바뀌지않네요.
맨밑에 스샷은 DBComboBox의아이템인덱스값을 edit에 지정하는소스입니다.
DBComboBox의 인스팩터란에서 아이템속성에 번호1,2 로 지정했고요.
도와주시면 정말 감사드립니다.
1  COMMENTS
  • Profile
    김병윤 2008.03.25 01:37



    잠시..델파이가 똑똑해서 그냥 바껴졌으면 하는 생각을 해봤습니다.

    DBComboBox1Change 이벤트를 사용하면 실제로 그 콤보박스를 마우스로 건들여줘야 이벤트가 일어나죠.
    실제로 DB콤보박스를 클릭하면 ItemIndex값이 변경되지만
    그냥 테이블이랑 연결되어 내역이 변경될 때는 DB콤보박스의 값은 변경되어 보여지지만
    ItemIndex값은 변하지 않더군요.
    그래서...DBComboBox1Change 이벤트를 강재로 발생시켜줘도...무..반..응..이구요

    그러므로 테이블의 내역을 변경할 때
    DBComboBox의 ItemIndex값도 변경하고
    OnChange이벤트도 처리해주면 되지 않을까 합니다...

    무슨 테이블이나 쿼리의AfterScroll 이벤트에
    <!--CodeS-->
    DBComboBox1.ItemIndex := DataSet.FieldByName('대상필드').AsInteger - 1;
    DBComboBox1Change(Self);
    <!--CodeE-->
    이렇게

    대상필드가 ItemIndex랑 잘 안맞으면...
    무식하게...-_-;;
    IF DataSet.FieldByName('대상필드').AsString = '뭘까?' Then DBComboBox1.ItemIndex = 0;
    ...
    IF DataSet.FieldByName('대상필드').AsString = 'OK' Then DBComboBox1.ItemIndex = 9;

    뭐 이렇게...;;