Q&A

  • 스트링그리드 속의 콤보박스를 선택 한후 엔터를 치면 저장하기
급한데 아시면 꼭 글을 남겨 주셨으면 합니다.
두번씩 올려 죄송함다.....
찌송



스트링 그리드에서 geteditortype 이벤트중 콤보박스 를 넣었습니다.
원래는 스트링그리드 특정 셀에서 엔터키가 들어 오면 저장되도록 했었는데
이번에는 스트링그리드 속에 콤보박스 내용을 선택 한후 엔터를 치면 저장이 되어야 하는데..하위 루틴속으로진행이 되지 않군요.
부탁좀 드립니다.
keydown 이벤트에
var
  icor  : integer;
  irow : integer;
begin
  case key of
  VK_RETURN : begin
                         case icol of
                            3 : begin
                                   case irow of
                                     3 : begin
                                            save;
(*save  저장 프로시져*)                                          
                                         end;        
                                   end;
                                end;
                         end;
  end;
end;


좋은 답이있으시면 점갈켜주세요....  
글고 착안 사항은 꼭 키보드를 사용 해야 한다는 것입니다.
마우스로 할려면 combochange 이벤트에서 되거든여...
키보드로여 꼭 키보드로여.
1  COMMENTS
  • Profile
    양석용 2002.02.24 15:48
    전에 비슷한걸 만든적이 있어서 걍 카피 붙이기루 옮겨또용
    정답은 아닌듯한데 참조만 하세여

    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    begin
      if ( gdFocused in State ) then begin
        with ComboBox1 do begin
            Left    := Rect.Left   + StringGrid1.Left+3;
            Top     := Rect.Top    + StringGrid1.Top+5;
            Width   := Rect.Right  - Rect.Left;
            Visible := True;
            ComboBox1.SetFocus;
        end;
      end;
    end;

    procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
    begin
        if key=#13 then begin
           with StringGrid1 do begin
               Cells[Col,Row]:=ComboBox1.Text;
               ComboBox1.Visible:=false;
         //      저장(Col, Row, Cells[Col,Row]);
           end;
        end;
    end;