Q&A

  • stringgrid에서 gorowselect와..goediting 기능
안녕하세여...

stringgrid option 에서여

로우셀렉트와 에디팅이 있자나여..

그걸 같이 쓸려고 하는데 어떻게 해야 해여?

두게다 true로 해놓고 했더니....로우셀렉트만 돼고 에디팅이 안돼여...

한번 클릭할때는..로우셀렉트...한번클릭을 더했을 경우에는..

클릭한 셀에 editing 할수 있게여...

제발 갈켜주세염

1  COMMENTS
  • Profile
    홍성락 2001.08.14 07:13
    쭈바리 wrote:

    > 안녕하세여...

    > stringgrid option 에서여

    > 로우셀렉트와 에디팅이 있자나여..

    > 그걸 같이 쓸려고 하는데 어떻게 해야 해여?

    > 두게다 true로 해놓고 했더니....로우셀렉트만 돼고 에디팅이 안돼여...

    > 한번 클릭할때는..로우셀렉트...한번클릭을 더했을 경우에는..

    > 클릭한 셀에 editing 할수 있게여...

    > 제발 갈켜주세염

    //////////////////////////////////////////////////////

    저는 2가지 방법으로 생각해봤습니다.

    1방법 : 로우셀렉트는 선택하지 않고 한번클릭시 스트링그리드 Canvas에 전체 ROW에 색을 칠했다, 더블클릭시 지우고 에디팅 상태로 하는 방법이 있고요

    2방법은 전역변수사용으로 아래처럼 코딩하시면되고요

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

    2방법의

    1.전역변수선언

    DblClick :boolean;

    2.FormShow나 선언시 초기값

    DblClick := false;

    3.스트링그리드 더블클릭이벤트에 코딩

    procedure TForm1.StringGrid1DblClick(Sender: TObject);

    begin

    DblClick := True;

    StringGrid1.Options := [goFixedVertLine,goFixedHorzLine,goVertLine

    ,goHorzLine,goRangeSelect,goEditing];

    end;

    4.스트링그리드 마우스다운에 코딩

    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;