ex)
while not ComboDouble.Eof do
begin
ComboDouble.Items.Add(qryAll.FieldByName('name').AsString);
--> 보여주는 부분
ComboDouble.DoubleItems.Add(qryAll.FieldByName('coode').AsString);
--> 내부적으로 코드값을 갖는 부분
qryAll.Next;
end;
코드값
ComboDouble.DoubleItems[ComboDouble.ItemIndex]
을 이용하여 코드를 처리하면 될것 같습니다.
ComboBox 와 TstringList 를 사용하시면 될거같네여...
이름과 사번을 query로 읽어온 다음에
콤보박스와 스트링리스트에 넣어주고..
with query1 Do
Begin
//여기에 자료를 가져오는 sql
Close;
SQL.Clear;
SQL.Add(' SELECT sabun,name FROM USERLIST');
Open;
First;
while Not EOF Do
Begin
sa_bun.Add(FieldByName('sabun').AsString); //사번
Cbo_name.Items.Add(FieldByName('name').AsString); //이름
Next;
end;
end;
콤보박스의 change 이벤트에 다음과 같은 코딩을....
sabun.text := sa_bun.Strings[Cbo_name.ItemIndex];
스트링리스트는 전역변수로 선언하고 form create시에 생성...
sa_bun : TStringList;
sa_bun := TStringList.Create;
조회버튼 클릭시에 콤보박스와 스트링리스트 클리어...
Cbo_name.Items.Clear;
sa_bun.Clear;
제가 사용하는 방법을 알려드릴께요..
약간의 편법을 사용하는 거지요..
일단 두개의 ComboBox를 화면상에 올려놓으세요..
하나는 이름이 들어가고 하나는 사번이 들어갑니다..
사번이 들어가는 ComboBox의 Visible을 FALSE로 주세요..
Query와 EditBox, 버튼을 화면상에 올려놓으시면 모든준비끝..
Query1.SQL.Add('select UserName, EmpNo from UserList');
Query1.Open;
Query1.First;
while not Query1.Eof do
begin
//이름이 들어가구요..
ComboBox1.Items.Add(Query1.Fields.Fields[0].AsString);
//사번이 들어갑니다...
ComboBox2.Items.Add(Query1.Fields.Fields[1].AsString);
Query1.Next;
end;
end;
procedure TForm1.ComboBox1Click(Sender: TObject);
begin
//이름과 사번을 동기화 시켜줍니다..
ComboBox2.ItemIndex := ComboBox1.ItemIndex;
//선택된 이름에 해당되는 사번을 EditBox에 뿌려줍니다..
Edit1.Text := ComboBox2.Text;
end;
간단히 설명하면
comboBox에 DoubleItems라는 TStringlist 프라퍼티를 추가한 것입니다.
설치하면 Samples파레트에 ComboDouble라는 콤포넌트가 생성됩니다.
ex)
while not ComboDouble.Eof do
begin
ComboDouble.Items.Add(qryAll.FieldByName('name').AsString);
--> 보여주는 부분
ComboDouble.DoubleItems.Add(qryAll.FieldByName('coode').AsString);
--> 내부적으로 코드값을 갖는 부분
qryAll.Next;
end;
코드값
ComboDouble.DoubleItems[ComboDouble.ItemIndex]
을 이용하여 코드를 처리하면 될것 같습니다.