프로그래밍/Etc

[Delphi]스트링 그리드 열(Row)삭제하기

가라멜 2018. 4. 27. 11:38
반응형

이번 프로젝트 기간 중 편의를 위해 스트링그리드를 많이 사용하였다.
하나의 스트링 그리드에 동적으로 여러가지 데이터가 입력 되었다가 삭제되었다 하다 보니
스트링그리드 내의 데이터를 초기화 시킬 필요가 있었는데..
Row 가 삭제되면 자동으로 Row가 Shift 되는 함수는 기본적으로 제공해주고 있지 않은 듯하다..
(있으면 가르쳐주세요...)
해서 찾은 방법.



첫번째. StringGrid 타입의 선언
먼저 가장 상단에 Type TSGrid = class(TStringGrid); 를 선언한 후 삭제하려는 부분에서 TSGrid(sGrid_SelectMenu).DeleteRow(해당Row); 의 방법으로 삭제

위의 방법은 델마당 '캐슬'님의 예전 답변에서 찾았다.


그리고 위의 것과는 다른 방법.

2. Row.Clear의 활용
procedure TfrmQReport.stgrInit; var i : integer; begin for i := 0 to _stgrData.RowCount do _stgrData.Rows[i].Clear; end;

난 이 방법으로 했는데..
이방법이 가능했던 이유는 아마도 스트링그리드에 들어온 데이터를 받을 때
그때마다 동적으로 스트링그리드의 RowCount를 동적으로 조절해줘서 인듯 하다.
(한마디로 야매인듯..?)

뭐 어쨌거나 과부화 걸릴 일은 아니라서
이렇게도~ 처리가 가능했다.