DevExpress사의 퀀텀그리드중 TcxImageComboBox 사용하기

TcxImageComboBox는 ComboBox를 대체할수 있는 훌륭한 컴포넌트입니다.

TcxImageComboBox는 사용법이 일반 ComboBox와 비슷하지만 몇가지 장점이 존재 합니다.

1. 콤보에 ImageList와 연결하여 이미지를 그릴 수 있습니다.

2. 실제 value값과 화면에 표시하는 값을 별개로 표시할수 있습니다.

예 > DB1

Code  Display_Text
 1  전체
 2  중학교
 3  고등학교

위와 같은 디비가 존재 할 경우 아래와 같이 코딩한다.

  while not Query1.Eof do
  begin
    with cxImageComboBox1.Properties.Items.Add do
    begin
      Description := Query1.FieldByName('Name').AsString;
      Value       := Query1.FieldByName('Display_Text').AsInteger;
    end;
    Query1.Next;
  end;
...

procedure TForm1.cxImageComboBox1PropertiesChange(Sender: TObject);
begin
  Label1.Caption := cxImageComboBox1.EditText;
  Label2.Caption := cxImageComboBox1.EditValue;
end;

 

위와 같이 코딩하고 콤보의 값을 ‘중학교’로 선택한경우 실제 값은 아래와 같이 설정됩니다.

cxImageComboBox1.EditValue := 2;  <– 와 같이 설정됩니다.

응용해서 TcxGridTableView의 Column의 Properties의 내용을 TcxImageComboBoxProperties로 설정하면 컬럼의 값과는 별도로 화면에 코드와 일치하는 내용이 출력되므로 쿼리등이 간편(Code에 따른 Join이 줄어든다.)해지고 쉽게 처리 가능하다.

TcxLookupCombo와 비슷하게 처리 되기 때문에 두 Combo의 사용 빈도가 아주 높은 편이다.

Author: yyjksw