Q&A

  • 스트링그리드 행삭제???질문
안녕하세요..



스트링그리드에 모두 10행이 있습니다...

그중에 3번째 행을 삭제하고 싶거든요

삭제후에는 모두 9행이되고,



그렇게 할려고 하는데 어떻게 해야되나요?????



꼭!!!! 가르쳐주세요????



감사합니다...즐거운하루되세요...

1  COMMENTS
  • Profile
    hyup 1999.10.16 03:13
    memogi wrote:

    > 안녕하세요..

    >

    > 스트링그리드에 모두 10행이 있습니다...

    > 그중에 3번째 행을 삭제하고 싶거든요

    > 삭제후에는 모두 9행이되고,

    >

    > 그렇게 할려고 하는데 어떻게 해야되나요?????

    >

    > 꼭!!!! 가르쳐주세요????

    >

    > 감사합니다...즐거운하루되세요...





    이 함수를 사용해 보시죠..

    부족하나마 제가 예전에 작성했던 Routine인데..



    Sender에는 String Grid Name을 넘겨주시면 됩니다.





    procedure sgLineDelete(Sender: TObject);

    var

    i,j: Integer;

    begin

    with (Sender as TStringGrid) do

    begin

    // String Grid를 일반모드로 전환

    Options := [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine];



    // String Grid의 내용이 3열이상인 경우

    if RowCount > 2 then

    begin

    // 삭제하고자 하는 열다음의 내용부터 마지막 열의 내용을

    // 삭제하고자 하는 열 위치까지 1줄씩 옮긴다.

    // (결과적으로 한줄씩 당겨올려진 형태가 되겠죠.)

    for i := Row to RowCount - 2 do

    for j := 0 to ColCount - 1 do

    Cells[j,i] := Cells[j, i+1];

    // String Grid의 마지막 열 삭제

    RowCount := RowCount - 1;

    // 마지막 열의 문자열 Clear

    Rows[RowCount].Clear;

    // 마지막 열의 문자열에 '' Set

    Rows[RowCount].Add('');

    end

    // String Grid의 내용이 2열이하인 경우

    else

    begin

    // 마지막 열의 문자열 Clear

    Rows[RowCount-1].Clear;

    // 마지막 열의 문자열에 '' Set

    Rows[RowCount-1].Add('');

    end;



    // String Grid를 편집모드로 전환

    Options := [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine,

    goEditing, goAlwaysShowEditor];

    // String Grid 재표시

    Repaint;

    end;

    end;