Q&A

  • 콤보박스의 아이템을 선택할때마다 ...

콤보박스에서 대분류를 선택하면 추출이 되어서 다른 콤보박스에 내용이 들어가게 했는데 딱 한번만 되니 이게 어떻게 된건지 모르겠네여..
한번은 제대로 들어가는데 다시 대분류에서 다른 아이템을 선택하면 그내용 그대로이니 부탁드립니다.

다음은 쏘스입니다.

//시작할때 대분류에 아이템을 뿌려줍니다.
procedure TTradeF.FormCreate(Sender: TObject);
begin
  DateTimePicker1.Date := date;
  with qryLarge do begin
    close;
    sql.Clear;
    sql.Add('select LargeName');
    sql.Add('from LargeCode');
    open;
    while not EOF do begin
      cblarge.Items.add(FieldByName('largeName').AsString);
      next;
    end;
  end;

end;

//대분류 콤보박스의 아이템을 바꿀때마다 중분류 아이템이 바뀝니다.
procedure TTradeF.cblargeChange(Sender: TObject);

begin
if cblarge.itemindex > 0 then

  with qryMiddle do begin
    Case  cblarge.ItemIndex  of
   0 :   begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''A%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin
   1:  begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''B%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin
    2 : begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''C%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin
    3 : begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''D%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin
    4 : begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''E%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin
    5 : begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''F%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin
    6 : begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''G%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin
    7 :  begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''H%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin
    8 : begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''I%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin
    9 : begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''J%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin
    10: begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''K%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin
    11: begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''L%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin
    12: begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''M%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin
    13: begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''N%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin
    14: begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''O%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin
    15: begin
         Close;
         sql.Clear;
         sql.add('select MiddleName');
         sql.add('from middlecode');
         sql.add('where 중코드 like ''P%''');
         open;
           While not EOF do begin
             cbmiddle.Items.add(FieldByName('middleName').AsString);
             next;
           end; //while
         end;//begin

    end;//case

    Close;
    Open;
    
  end; //with의 끝
END;
4  COMMENTS
  • Profile
    나두초보!! 2002.01.10 22:42
    우선.. 이소스를 보면 예전 선택되어 추가된 아이템을 클리어를 하지 않는군요.
    혹시 추가 되어 들어간거 아닌가염..?
    그리고 제 나름대로 좀 고쳐 봤어염.. (지송)


    procedure TTradeF.FormCreate(Sender: TObject);
    begin
      DateTimePicker1.Date := date;
      with qryLarge do begin
        close;
        sql.Clear;
        sql.Add('select distinct LargeName');
        sql.Add('from LargeCode');
        open;
        cblarge.Items.clear;
        while not EOF do begin
          cblarge.Items.add(FieldByName('largeName').AsString);
          next;
        end;
      end;

    end;

    //대분류 콤보박스의 아이템을 바꿀때마다 중분류 아이템이 바뀝니다.
    procedure TTradeF.cblargeChange(Sender: TObject);
    var select_result : string;
    begin

        Case  cblarge.ItemIndex  of
          0: select_result := 'A%';
          1: select_result := 'B%';
          2: select_result := 'C%';
          3: select_result := 'D%';
          4: select_result := 'E%';
          5: select_result := 'F%';
          6: select_result := 'G%';
          7: select_result := 'H%';
          8: select_result := 'I%';
          9: select_result := 'J%';
          10: select_result := 'K%';
          12: select_result := 'L%';
          13: select_result := 'M%';
          14: select_result := 'N%';
          15: select_result := 'O%';
           end else begin
            MessageDlg('검색할 조건이 아닌데염..?',
                        MtWarning, [mbok], 0);
            exit;
            end;
      
      
       with qryMiddle do begin
        close;
        sql.clear;
        sql.add('select MiddleName from middlecode where 중코드 like :중코드');
        parambyname('중코드').value := select_result;
        open;

           cbmiddle.Items.clear;
           while not qrymiddle.eof do begin
           cbmiddle.Items.add(FieldByName('middleName').AsString);
           qrmiddle.next;
           end;
         close;
         end;
    end;

  • Profile
    고상범 2002.01.10 23:54
    감사합니다.

    요 간단한 코딩을  3일을 끌었네요...

    아직까정 자유자재루 함수 맨들어 쓰는 수준이 아니라서 쏘스보니깐

    아 이렇게도 되는구나 하구 감만 잡구 있습니다.

    그럼 담에도 아주 초보적인 질문 올리면 답해 주세여..

    꾸벅...

  • Profile
    최용일 2002.01.10 22:37
    안녕하세요. 최용일입니다.

    그 내용 그대로가 아닐거 같은데요... 제 생각에는 이전의 내용을 그대로 가지고 있으면서 새로 추가된 내용들은 맨끝에 있을거 같네요...

    새로운 내용을 추가하기전에 콤보박스의 아이템을 비우세요..

    cbmiddle.Clear;

    while문 돌기전에 넣어두세요,...

    그리고 case문에서 중복되는 코드들은 밖으로 빼시는 것이 더 효율적인거 같네요... 아래처럼...

    with qryMiddle do
    begin
        Close;
        sql.Clear;
        sql.add('select MiddleName');
        sql.add('from middlecode');
        case  cblarge.ItemIndex  of
            0 : sql.add('where 중코드 like ''A%''');
            1 : sql.add('where 중코드 like ''B%''');
            2 : sql.add('where 중코드 like ''C%''');
            3 : sql.add('where 중코드 like ''D%''');
            4 : sql.add('where 중코드 like ''E%''');
            5 : sql.add('where 중코드 like ''F%''');
            6 : sql.add('where 중코드 like ''G%''');
            7 : sql.add('where 중코드 like ''H%''');
            8 : sql.add('where 중코드 like ''I%''');
            9 : sql.add('where 중코드 like ''J%''');
            10: sql.add('where 중코드 like ''K%''');
            11: sql.add('where 중코드 like ''L%''');
            12: sql.add('where 중코드 like ''M%''');
            13: sql.add('where 중코드 like ''N%''');
            14: sql.add('where 중코드 like ''O%''');
            15: sql.add('where 중코드 like ''P%''');
        end;//case

        open;
        cbmiddle.Clear;
        While not EOF do
        begin
            cbmiddle.Items.add(FieldByName('middleName').AsString);
            next;
        end; //while
    end;//begin

    ^^ 항상 즐코하세요...

  • Profile
    고상범 2002.01.10 23:57
    최용일 님의 간결한 코딩을 보고 혼자 얼굴이 빨개졌습니다.

    어째여 프로젝트 첨 하는걸 더 팔려야 그나마 좀 나아지겠지요.

    확인해 보니까 뒤에 붙어 있었습니다.^^

    감사합니다.

    초보 냄새 되게 심하져?

    죄송합니다.
    • 공성환
      2002.01.11 03:39
      [답변] db가 오라클이면 dual table을 이용해서 쿼리를 이용하면 않될까요...     &n...
    • 초보임당
      2002.01.11 22:24
      답변감사합니다. 이제 알겠네여.... query를 써서 여... 그런데...oracle function 의 파라미터를 지...
    • 이추형
      2002.01.12 17:59
      문제들을 읽고 몇자 적습니다. 오라클의 프로시져는 하나의 pl/sql 프로그램이라고 보시기 바랍니다. 호...
    • 양달승
    • 2002.01.11 02:55
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 델초보
    • 2002.01.11 02:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.01.11 03:55
      안녕하세요. 최용일입니다. HTTP의 Get메소드를 쓰세요... 아래는 인디의 TIdHTTP컴포넌트를 이용해...
    • 버섯
      2002.01.11 02:53
      sqltxt := 'Insert into table(aa,bb)values(:aa,:bb)'; qq.sql.clear; qq.sql.add(sqltxt); qq.param...
    • 꿈의대화
      2002.01.11 01:22
      .
    • 장영철
      2002.01.11 01:53
      우선 친절한 답변 감사드립니다. 알려주신대로 "tdump 실행파일명" 을 프롬프트 모드에서 해...
    • 꿈의대화
      2002.01.11 18:53
      .
    • 장영철
      2002.01.11 20:43
      감사합니다... 열심히 한번 해 보겠습니다. 저도 Fighting Korea World Cup!!!!!!!!!
    • 버섯
      2002.01.11 00:45
      alignment 프로퍼티가 있는 Edit 가 아마 뒤져 보면 있을겁니다. 그거 등록해서 쓰셔도 되는데.. 그러면...
    • 최용일
      2002.01.11 03:39
      안녕하세요. 최용일입니다. 붙인거나 안붙인거나 똑같이 실행이되게 하는 거라면 무조건 끝에다가 붙인...
    • 장기륜
      2002.01.11 05:01
      에구..답변감사드립니다... 지금부터.. 검색을 시작 해보겠습니다 RIFF 요놈으로 ^^;;;; 근디..만약 제...
    • 델파이탐크루즈
      2002.01.11 00:51
      [답변] 구체적으로 모르는 부분을 말씀하세요...워낙 쓸내용이 많아서... ^^; 참고로 저는 인스톨쉴드로...
    • 버섯
      2002.01.11 00:22
      델파이에서 데이터베이스랑 연동을 하려면.. Tdataset 을 이용해야만 가능합니다.. Tdataset 은 여러종...
    • 황현우
    • 2002.01.10 23:52
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 윤일영
      2002.01.15 04:57
      음..저와 같은 문제에 ...헐..기쁩당. 그나저나 정보있음..서로 좀 도와주죠 ..답변이 아니라 죄송합다
    • 강철구
      2002.02.02 01:48
      저는 오래되서 잘 기억이 나지를 않습니다. 아니 사용을 하지 않아서 설정을 못하겠군요 일단 이렇습니...
    • 박준홍
    • 2002.01.10 23:39
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김종길
    • 2002.01.10 23:01
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 고상범
    • 2002.01.10 22:19
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 나두초보!!
      2002.01.10 22:42
      우선.. 이소스를 보면 예전 선택되어 추가된 아이템을 클리어를 하지 않는군요. 혹시 추가 되어 들어간거 ...
    • 고상범
      2002.01.10 23:54
      감사합니다. 요 간단한 코딩을  3일을 끌었네요... 아직까정 자유자재루 함수 맨들어 쓰는...
    • 최용일
      2002.01.10 22:37
      안녕하세요. 최용일입니다. 그 내용 그대로가 아닐거 같은데요... 제 생각에는 이전의 내용을 그대로 가...
    • 고상범
      2002.01.10 23:57
      최용일 님의 간결한 코딩을 보고 혼자 얼굴이 빨개졌습니다. 어째여 프로젝트 첨 하는걸 더 팔려야 그나...
    • 이영주
    • 2002.01.10 21:55
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 나두초보!!
      2002.01.10 22:56
      간단하게.. ini파일을 이용해 보시는 것이..?
    • 이영주
      2002.01.10 23:32
      저겨~ 더 자세히... ini파일을 쓰라는게 어케 하는건지...
    • 나두초보!!
      2002.01.10 23:35
      --; 이전 게시판 가셔서 ini 로 검색하시면 사용방법 나올거에여.. 메뉴.exe에서.. 로그인시 ini파일...
    • 김규억
      2002.01.10 22:53
      메뉴.exe 인수1 인수2..... 모 이렇게 쓰시면 되겠지요... 가끔 보시죠??? 이런 명령 주는거,... ...
    • 김규억
      2002.01.10 22:55
      지송합니다...  무슨 질문인지 잘 모르겠네요... html에서 activex에 값을 넘기는것...
    • 박경원
    • 2002.01.10 21:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 홍동기
      2002.01.24 02:46
      홍동기 입니다. 먼저 간단한 답을 드린다면 될수도 있고 안될수도 있다 입니다. 답이 너무 웃기죠... 하...
    • 버섯
      2002.01.10 23:18
      제가알기론... 비동기통신(232,422,485) 을 제어하는 방법에 차이는 없는거 같은데요.. 단지.. 422,485...
    • 나영민
    • 2002.01.10 21:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김규억
      2002.01.10 23:02
      조용히라는 말이 무슨 뜻인지 모르겠는데요... ^^; BDE를 수동으로 쉴드에 포함시키는 방법은요... ...
    • 최유순
    • 2002.01.10 20:08
    • 0 COMMENTS
    • /
    • 0 LIKES