Q&A

  • StringGrid에서 Column Exit기능 구현방법은 없을까요?
주말인데도 불구하고 수고들 많으십니다.

다름이 아니오라 해당 테이블에서 자료를 가져와서 스트링그리드에 각 칼럼의 합계(Row의 합)와 세부 데이타 그리고, 입력받을 수 있는 최대값을 뿌려준후 수정할 수 있습니다.

그런데 데이타 수정시 칼럼의 합계보다 입력받을 수 있는 최대값 보다 큰경우 체크하여 다음 cell로 가지않게 하려는데 마땅히 구현할 수 있는 방법이 없어서 도움을 청합니다.

OnSellecSell 이벤트에서 구현하면 해당 컬럼에서 Row의 이동시 CanSelect를 false로 하면 row의 이동은 막을 수 있는데.......

DBGrid에서는 OnColExit 이벤트가 있어서 가능하겠지만 2차원 배열을 이용하여 Collumn과 Row가 코드테이블에서 가져오는 거라 DBGrid를 사용 할 수 없습니다.

제발 도움을....

----------------------------------

구분/종류 cd1 cd2 cd3 cd4 cd5

----------------------------------

최대값 10 10 10 10 10

----------------------------------

합계 5 5 6 3 2

----------------------------------

rcd1 (5) <===요부분에서 5보다 큰 값을 입력시 cd2로 가지

rcd2 5 않게 하렵니다.

rcd3 6 3

rcd4 2 2

rcd5 3



2  COMMENTS
  • Profile
    김광섭 2001.03.17 21:13
    최성우 wrote:

    > 주말인데도 불구하고 수고들 많으십니다.

    > 다름이 아니오라 해당 테이블에서 자료를 가져와서 스트링그리드에 각 칼럼의 합계(Row의 합)와 세부 데이타 그리고, 입력받을 수 있는 최대값을 뿌려준후 수정할 수 있습니다.

    > 그런데 데이타 수정시 칼럼의 합계보다 입력받을 수 있는 최대값 보다 큰경우 체크하여 다음 cell로 가지않게 하려는데 마땅히 구현할 수 있는 방법이 없어서 도움을 청합니다.

    > OnSellecSell 이벤트에서 구현하면 해당 컬럼에서 Row의 이동시 CanSelect를 false로 하면 row의 이동은 막을 수 있는데.......

    > DBGrid에서는 OnColExit 이벤트가 있어서 가능하겠지만 2차원 배열을 이용하여 Collumn과 Row가 코드테이블에서 가져오는 거라 DBGrid를 사용 할 수 없습니다.

    > 제발 도움을....

    > ----------------------------------

    > 구분/종류 cd1 cd2 cd3 cd4 cd5

    > ----------------------------------

    > 최대값 10 10 10 10 10

    > ----------------------------------

    > 합계 5 5 6 3 2

    > ----------------------------------

    > rcd1 (5) <===요부분에서 5보다 큰 값을 입력시 cd2로 가지

    > rcd2 5 않게 하렵니다.

    > rcd3 6 3

    > rcd4 2 2

    > rcd5 3

    >

    procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,

    ARow: Integer; var CanSelect: Boolean);

    SelectCell 셀 인자로 ACol, ARow가 인자로 넘오온다면 ColExit과 같은 기능을 수행할것같은데요. 현재 선택한 컬럼과 로를 안다면 해당 컬럼과 로에서 엔터를 누른경우 조건비교해서 다음 컬럼으로 이동하지 못하게 하면되겠는데요.



  • Profile
    최성우 2001.03.19 19:25
    주말엔 급한 일이 있어서 작업을 못하게 되어 답변이 좀 늦어졌네요

    님께서 말씀하신대로 SelectCell 셀 인자인 ACol, ARow 를 OnKeyPress 이벤트 수행시 값을 넘겨 받은 후 조건이 참이면 #13을 수행하고 거짓이면 abort하니까 행과 열로의 이동을 막을 수 있었습니다.

    오늘도 즐거운 하루되시고요, 즐코하세요.....



    김광섭 wrote:

    > procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,

    > ARow: Integer; var CanSelect: Boolean);

    > SelectCell 셀 인자로 ACol, ARow가 인자로 넘오온다면 ColExit과 같은 기능을 수행할것같은데요. 현재 선택한 컬럼과 로를 안다면 해당 컬럼과 로에서 엔터를 누른경우 조건비교해서 다음 컬럼으로 이동하지 못하게 하면되겠는데요.

    >