Q&A

  • StringGrid에서 FixedCols 로 설정된 칼럼을 에디트 가능하게 할수는 없나요?
FixedCols로 설정해놓은 칼럼에 에디트도 가능한지...
설정해 놓구 보니까 커서로 선택조차 안되더라구요.

엑셀의 틀고정같은 기능을 하도록 구현 할 수 있는 콤포넌트나.. 아니면 스트링 그리드에서 그런 것이 가능하도록 해주는 방법이 있을런지 궁금합니당.
3  COMMENTS
  • Profile
    홍성락 2002.05.09 23:54
    hsr///////////////////////////////////////////////////////////////
    고정된 셀에서 EditorMode := True로하면 이상한현상이 일어나거든요.
    그래서 아래 한 예는 정답은 아니지만 근사치로해보겁니다.
    1.초기 전역변수에 고정 컬럼수를 기억합니다.
    procedure TForm1.FormShow(Sender: TObject);
    begin
        orgcol := StringGrid1.Fixedcols;
        orgrow := StringGrid1.FixedRows;
    end;
    2.마우스다운에서 임시로 고정컬럼을 없애버렸다 생기게합니다
    procedure TForm1.StringGrid1MouseDown(Sender: TObject;
    Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    var
    S_row , S_col : integer;
    begin
       StringGrid1.MouseToCell(x,Y,S_col,S_row);
       StringGrid1.FixedRows := orgrow;
       StringGrid1.FixedCols := orgcol;
       if (S_col<0)or(S_row<0) then exit;

       if (StringGrid1.Fixedcols > S_col)
          or(StringGrid1.FixedRows > S_row) then begin
          if (StringGrid1.Fixedcols > S_col) then
             StringGrid1.FixedCols := 0;
          if (StringGrid1.FixedRows > S_row) then
             StringGrid1.FixedRows := 0;

          StringGrid1.Row := S_row;
          StringGrid1.Col := S_col;
          StringGrid1.EditorMode := True;
       end;
       StringGrid1.Row := S_row;
       StringGrid1.Col := S_col;
    end;

    3.DrawCell이벤트에서 색깔은 유지하도록 약간손보면될겁니다.
  • Profile
    장태원 2002.05.09 01:05
    fixedcol 로 사용하시지..말고..첫 row를 색깔만 바꿔서 사용하셈..ㅡㅡ;


  • Profile
    이윤주 2002.05.09 01:13
    칼럼이 너무 많아서 스크롤이 생기는데.. 스크롤을 해두 앞에 세 칼럼은 고정적으루 보여주게 해줄려구 한 거거든요.
    그런데 입력이나 수정도 하게 해야 해서요...
    그런 방법은 없어요?