procedure Tfrmmas001.s_mediam_gubunChange(Sender: TObject);
var
c_gubun : string;
begin
s_mediam_name.Clear;
if s_mediam_gubun.ItemIndex < 0 then
Exit;
c_gubun := copy(s_mediam_gubun.text,1,2);
with t_q do
begin
while not eof do
begin
if c_gubun = (copy(string_name.Text ,1,2)) then
s_mediam_name.Items.Add('string_gubun[1]');
end;
end;
end;
procedure Tfrmmas001.FormCreate(Sender: TObject);
begin
try
t_q.Open;
string_gubun := TStringList.Create; // 메체구분
string_name := TStringList.Create; // 메체명
with t_q do
begin
first;
while Not Eof do
begin
string_gubun.Add(Trim(fields[2].AsString));
string_name.Add(Trim(fields[8].AsString));
Next;
end;
first;
mas_message.text := string_gubun[0];
end;
except
showmessage('코드정보 읽기에러');
end;
end;
procedure Tfrmmas001.C_mediam_gubunClick(Sender: TObject);
begin
with t_q do
begin
first;
while not eof do
begin
s_mediam_gubun.Items.Add(string_gubun[0]) ;
next;
end;
first;
end;
end;
이것은 s_mediam_gubun(콤보박스)의 내용이 바뀔때 s_mediam_name(콤보박스)의 내용이 바뀌게할려는 program입다..
군데 이상한값만 나오고 내가원하는 값은 안나오는군여..
알켜주세여
청개구리 남기석( http://www.delphitravel.com )입니다.
소스를 보니까....
테이블에서 구분코드와 이름을 가져와서 코드가 입력되어 있는 콤보가 변경되면
옆에 있는 콤보에 해당 이름을 보여주는 것 같군요?
맞나요?
맞다면 이런 방법을 사용해보세요...
StringList 에 코드와 이름을 Add하지 마시고...
2개의 콤보박에 직접 Add해 주시고...( 같은 인덱스에다가 )
코드 콤보박스의 인덱스가 변경되면 이름 콤보박스의 인덱스를
변경해 주면됩니다.
간단히 예를 들어볼께요...
procedure Tfrmmas001.FormCreate(Sender: TObject);
begin
try
t_q.Open;
t_q.first;
with t_q do
begin
while Not Eof do
begin
s_mediam_gubun.Items.Add( Trim(fields[2].AsString) ); //코드콤보
s_mediam_name.Items.Add( Trim(fields[8].AsString) ); //이름콤보
Next;
end;
end;
s_mediam_gubun.itemindex := 0; // 코드 콤보를 첫번째 값으로...
s_mediam_name.ItemIndex := 0; // 이름 콤보를 첫번째 값으로...
except
showmessage('코드정보 읽기에러');
end;
end;
procedure Tfrmmas001.s_mediam_gubunChange(Sender: TObject);
begin
// 구분콤보가 바뀌면 이름콤보의 인덱스를 구분콤보의 인덱스로
s_mediam_name.ItemIndex := s_mediam_gubun.itemindex;
end;
procedure Tfrmmas001.s_mediam_nameChange(Sender: TObject);
begin
// 이름콤보가 바뀌면 구분콤보의 인덱스를 이름콤보의 인덱스로
s_mediam_gubun.itemindex := s_mediam_name.ItemIndex;
end;
행복하세요..
=============================================================================
김지수 wrote:
> procedure Tfrmmas001.s_mediam_gubunChange(Sender: TObject);
> var
> c_gubun : string;
> begin
> s_mediam_name.Clear;
> if s_mediam_gubun.ItemIndex < 0 then
> Exit;
> c_gubun := copy(s_mediam_gubun.text,1,2);
> with t_q do
> begin
> while not eof do
> begin
> if c_gubun = (copy(string_name.Text ,1,2)) then
> s_mediam_name.Items.Add('string_gubun[1]');
> end;
> end;
> end;
>
> procedure Tfrmmas001.FormCreate(Sender: TObject);
> begin
> try
> t_q.Open;
> string_gubun := TStringList.Create; // 메체구분
> string_name := TStringList.Create; // 메체명
> with t_q do
> begin
> first;
> while Not Eof do
> begin
> string_gubun.Add(Trim(fields[2].AsString));
> string_name.Add(Trim(fields[8].AsString));
> Next;
> end;
> first;
> mas_message.text := string_gubun[0];
> end;
> except
> showmessage('코드정보 읽기에러');
> end;
> end;
>
> procedure Tfrmmas001.C_mediam_gubunClick(Sender: TObject);
> begin
> with t_q do
> begin
> first;
> while not eof do
> begin
> s_mediam_gubun.Items.Add(string_gubun[0]) ;
> next;
> end;
> first;
> end;
> end;
> 이것은 s_mediam_gubun(콤보박스)의 내용이 바뀔때 s_mediam_name(콤보박스)의 내용이 바뀌게할려는 program입다..
> 군데 이상한값만 나오고 내가원하는 값은 안나오는군여..
> 알켜주세여