Q&A

  • stringgrid에서 특정 셀만 입력모드로 하려면?
stringgrid의
property에 보면 Options에 goEditing을 하면 그리드에 데이터 값을

입력할 수 있습니다.

그런데 특정한 셀만 입력할수 있게하고 나머지는 입력할 수 없도록 하는 방법이

뭘까요? 한수 지도 바랍니다.
3  COMMENTS
  • Profile
    홍성락 2002.10.12 21:44
    아래 예제를 참조해보세요.
    로우선택까지 검한것이므로, 로우선택이 아니면 더 단순해집니다.

    //전역변수
    DblClick :boolean;

    //초기값
    procedure TForm1.FormShow(Sender: TObject);
    begin
        DblClick := false;
    end;

    //마우스 이벤트들
    procedure TForm1.StringGrid1DblClick(Sender: TObject);
    begin
       DblClick := True;
       StringGrid1.Options :=  [goFixedVertLine,goFixedHorzLine,goVertLine
                                ,goHorzLine,goRangeSelect,goEditing];
    end;
    procedure TForm1.StringGrid1MouseDown(Sender: TObject;
    Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    var
    S_row , S_col : integer;
    begin
       if (DblClick = false) then begin

          StringGrid1.Options := [goFixedVertLine,goFixedHorzLine,goVertLine
                                  ,goHorzLine,goRangeSelect,goEditing,goRowSelect];
       end
       else  begin

          StringGrid1.MouseToCell(x,Y,S_col,S_row);
          StringGrid1.Row := S_row;
          StringGrid1.Col := S_col;
          StringGrid1.EditorMode := True;
          DblClick := false;
       end;
    end;
    hsr////////////////////////////////////
  • Profile
    서영대 2002.10.12 23:24
    ...
    비슷한데요...
    마우스 클릭이벤트가 아니라
    SelectCell 이벤트에서 하믄 더 쉽거던요.

    에디트를 원하는 셀이면 옵션에 goEditing 을 추가해주고....
    아님 goEditing 을 빼주면 됩니다.

    .... 애구 부끄러...

  • Profile
    오승호 2002.10.14 17:58
    .